diff --git a/.fern/metadata.json b/.fern/metadata.json
index 579b5ae..da44bf6 100644
--- a/.fern/metadata.json
+++ b/.fern/metadata.json
@@ -23,6 +23,6 @@
}
]
},
- "originGitCommit": "19a8fcdbf337712bf0986b27208cf2ebc85ef98a",
+ "originGitCommit": "5315b1ba06c9c71f00ac501c3e7ea3092701cd7b",
"sdkVersion": "1.2.0"
}
\ No newline at end of file
diff --git a/poetry.lock b/poetry.lock
index eadb8dc..25e2811 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
[[package]]
name = "aiohappyeyeballs"
@@ -6,8 +6,6 @@ version = "2.6.1"
description = "Happy Eyeballs for asyncio"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"},
{file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"},
@@ -19,8 +17,6 @@ version = "3.13.5"
description = "Async http client/server framework (asyncio)"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:02222e7e233295f40e011c1b00e3b0bd451f22cf853a0304c3595633ee47da4b"},
{file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bace460460ed20614fa6bc8cb09966c0b8517b8c58ad8046828c6078d25333b5"},
@@ -155,7 +151,7 @@ propcache = ">=0.2.0"
yarl = ">=1.17.0,<2.0"
[package.extras]
-speedups = ["Brotli (>=1.2) ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "backports.zstd ; platform_python_implementation == \"CPython\" and python_version < \"3.14\"", "brotlicffi (>=1.2) ; platform_python_implementation != \"CPython\""]
+speedups = ["Brotli (>=1.2)", "aiodns (>=3.3.0)", "backports.zstd", "brotlicffi (>=1.2)"]
[[package]]
name = "aiosignal"
@@ -163,8 +159,6 @@ version = "1.4.0"
description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"},
{file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"},
@@ -180,7 +174,6 @@ version = "0.7.0"
description = "Reusable constraint types to use with typing.Annotated"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
@@ -195,7 +188,6 @@ version = "4.5.2"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f"},
{file = "anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b"},
@@ -209,7 +201,7 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
[package.extras]
doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
-test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21.0b1) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -218,8 +210,6 @@ version = "5.0.1"
description = "Timeout context manager for asyncio programs"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
-markers = "python_version >= \"3.9\" and python_full_version < \"3.11.3\""
files = [
{file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"},
{file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"},
@@ -231,8 +221,6 @@ version = "26.1.0"
description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309"},
{file = "attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32"},
@@ -240,14 +228,13 @@ files = [
[[package]]
name = "certifi"
-version = "2026.2.25"
+version = "2026.4.22"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
- {file = "certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa"},
- {file = "certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7"},
+ {file = "certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a"},
+ {file = "certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580"},
]
[[package]]
@@ -256,8 +243,6 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-groups = ["dev"]
-markers = "sys_platform == \"win32\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -269,8 +254,6 @@ version = "1.3.1"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
-groups = ["main", "dev"]
-markers = "python_version < \"3.11\""
files = [
{file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"},
{file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"},
@@ -288,7 +271,6 @@ version = "2.1.2"
description = "execnet: rapid multi-Python deployment"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec"},
{file = "execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd"},
@@ -303,8 +285,6 @@ version = "1.8.0"
description = "A list-like structure which implements collections.abc.MutableSequence"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011"},
{file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565"},
@@ -444,7 +424,6 @@ version = "0.16.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"},
{file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"},
@@ -456,7 +435,6 @@ version = "1.0.9"
description = "A minimal low-level HTTP client."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"},
{file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"},
@@ -478,7 +456,6 @@ version = "0.28.1"
description = "The next generation HTTP client."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
{file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
@@ -491,7 +468,7 @@ httpcore = "==1.*"
idna = "*"
[package.extras]
-brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
+brotli = ["brotli", "brotlicffi"]
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
http2 = ["h2 (>=3,<5)"]
socks = ["socksio (==1.*)"]
@@ -499,19 +476,17 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "idna"
-version = "3.11"
+version = "3.13"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.8"
-groups = ["main", "dev"]
files = [
- {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"},
- {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"},
+ {file = "idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3"},
+ {file = "idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242"},
]
-markers = {dev = "python_version >= \"3.9\""}
[package.extras]
-all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
[[package]]
name = "importlib-resources"
@@ -519,8 +494,6 @@ version = "6.4.5"
description = "Read resources from Python packages"
optional = true
python-versions = ">=3.8"
-groups = ["main"]
-markers = "extra == \"datastream\" or extra == \"rulesengine\""
files = [
{file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"},
{file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"},
@@ -530,7 +503,7 @@ files = [
zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""}
[package.extras]
-check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
enabler = ["pytest-enabler (>=2.2)"]
@@ -543,7 +516,6 @@ version = "2.1.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"},
{file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"},
@@ -555,8 +527,6 @@ version = "6.7.1"
description = "multidict implementation"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5"},
{file = "multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8"},
@@ -715,7 +685,6 @@ version = "1.13.0"
description = "Optional static typing for Python"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"},
{file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"},
@@ -769,7 +738,6 @@ version = "1.1.0"
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"},
{file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"},
@@ -781,7 +749,6 @@ version = "26.1"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f"},
{file = "packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de"},
@@ -793,7 +760,6 @@ version = "1.5.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
@@ -809,8 +775,6 @@ version = "0.4.1"
description = "Accelerated property cache"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db"},
{file = "propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8"},
@@ -942,7 +906,6 @@ version = "2.10.6"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"},
{file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"},
@@ -955,7 +918,7 @@ typing-extensions = ">=4.12.2"
[package.extras]
email = ["email-validator (>=2.0.0)"]
-timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
+timezone = ["tzdata"]
[[package]]
name = "pydantic-core"
@@ -963,7 +926,6 @@ version = "2.27.2"
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
@@ -1076,8 +1038,6 @@ version = "2.12.1"
description = "JSON Web Token implementation in Python"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.10\""
files = [
{file = "pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c"},
{file = "pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b"},
@@ -1098,7 +1058,6 @@ version = "7.4.4"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.7"
-groups = ["dev"]
files = [
{file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"},
{file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"},
@@ -1121,7 +1080,6 @@ version = "0.23.8"
description = "Pytest support for asyncio"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"},
{file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"},
@@ -1140,7 +1098,6 @@ version = "3.6.1"
description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"},
{file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"},
@@ -1161,7 +1118,6 @@ version = "2.9.0.post0"
description = "Extensions to the standard Python datetime module"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
-groups = ["dev"]
files = [
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
@@ -1176,8 +1132,6 @@ version = "5.3.1"
description = "Python client for Redis database and key-value store"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
-markers = "python_version >= \"3.10\""
files = [
{file = "redis-5.3.1-py3-none-any.whl", hash = "sha256:dc1909bd24669cc31b5f67a039700b16ec30571096c5f1f0d9d2324bff31af97"},
{file = "redis-5.3.1.tar.gz", hash = "sha256:ca49577a531ea64039b5a36db3d6cd1a0c7a60c34124d46924a45b956e8cf14c"},
@@ -1197,7 +1151,6 @@ version = "0.11.5"
description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
-groups = ["dev"]
files = [
{file = "ruff-0.11.5-py3-none-linux_armv6l.whl", hash = "sha256:2561294e108eb648e50f210671cc56aee590fb6167b594144401532138c66c7b"},
{file = "ruff-0.11.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac12884b9e005c12d0bd121f56ccf8033e1614f736f766c118ad60780882a077"},
@@ -1225,7 +1178,6 @@ version = "1.17.0"
description = "Python 2 and 3 compatibility utilities"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
-groups = ["dev"]
files = [
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
@@ -1237,7 +1189,6 @@ version = "1.3.1"
description = "Sniff out which async library your code is running under"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
@@ -1249,8 +1200,6 @@ version = "2.4.1"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
-markers = "python_version < \"3.11\""
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"},
@@ -1307,7 +1256,6 @@ version = "2.9.0.20241206"
description = "Typing stubs for python-dateutil"
optional = false
python-versions = ">=3.8"
-groups = ["dev"]
files = [
{file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"},
{file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"},
@@ -1319,7 +1267,6 @@ version = "4.13.2"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
-groups = ["main", "dev"]
files = [
{file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"},
{file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"},
@@ -1331,8 +1278,6 @@ version = "25.0.0"
description = "A WebAssembly runtime powered by Wasmtime"
optional = true
python-versions = ">=3.8"
-groups = ["main"]
-markers = "extra == \"datastream\" or extra == \"rulesengine\""
files = [
{file = "wasmtime-25.0.0-py3-none-any.whl", hash = "sha256:22aa59fc6e01deec8a6703046f82466090d5811096a3bb5c169907e36c842af1"},
{file = "wasmtime-25.0.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:13e9a718e9d580c1738782cc19f4dcb9fb068f7e51778ea621fd664f4433525b"},
@@ -1355,8 +1300,6 @@ version = "13.1"
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
optional = true
python-versions = ">=3.8"
-groups = ["main"]
-markers = "extra == \"datastream\""
files = [
{file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"},
{file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"},
@@ -1452,8 +1395,6 @@ version = "1.22.0"
description = "Yet another URL library"
optional = false
python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version >= \"3.9\""
files = [
{file = "yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e"},
{file = "yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f"},
@@ -1598,19 +1539,17 @@ version = "3.20.2"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = true
python-versions = ">=3.8"
-groups = ["main"]
-markers = "(extra == \"datastream\" or extra == \"rulesengine\") and python_version < \"3.10\""
files = [
{file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"},
{file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"},
]
[package.extras]
-check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
enabler = ["pytest-enabler (>=2.2)"]
-test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
+test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
type = ["pytest-mypy"]
[extras]
@@ -1618,6 +1557,6 @@ datastream = ["wasmtime", "websockets"]
rulesengine = ["wasmtime"]
[metadata]
-lock-version = "2.1"
+lock-version = "2.0"
python-versions = "^3.8"
content-hash = "7f8cd32f6180e0e5180d40c7376b4ba77af39b5647c1c2e9b93f49aea5eb3ac3"
diff --git a/reference.md b/reference.md
index cbbbe3f..f87be82 100644
--- a/reference.md
+++ b/reference.md
@@ -1,122 +1,4 @@
# Reference
-client.put_plan_audiences_plan_audience_id(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from schematic import Schematic
-from schematic.environment import SchematicEnvironment
-
-client = Schematic(
- api_key="",
- environment=SchematicEnvironment.DEFAULT,
-)
-
-client.put_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**plan_audience_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.delete_plan_audiences_plan_audience_id(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from schematic import Schematic
-from schematic.environment import SchematicEnvironment
-
-client = Schematic(
- api_key="",
- environment=SchematicEnvironment.DEFAULT,
-)
-
-client.delete_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**plan_audience_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
## accounts
client.accounts.list_account_members(...) -> ListAccountMembersResponse
@@ -2979,6 +2861,14 @@ client.billing.upsert_billing_price(
-
+**nickname:** `typing.Optional[str]`
+
+
+
+
+
+-
+
**package_size:** `typing.Optional[int]`
@@ -9539,7 +9429,7 @@ client.companies.list_plan_traits(
-client.companies.create_plan_trait(...) -> CreatePlanTraitResponse
+client.companies.get_plan_trait(...) -> GetPlanTraitResponse
-
@@ -9560,10 +9450,8 @@ client = Schematic(
environment=SchematicEnvironment.DEFAULT,
)
-client.companies.create_plan_trait(
- plan_id="plan_id",
- trait_id="trait_id",
- trait_value="trait_value",
+client.companies.get_plan_trait(
+ plan_trait_id="plan_trait_id",
)
```
@@ -9580,23 +9468,7 @@ client.companies.create_plan_trait(
-
-**plan_id:** `str`
-
-
-
-
-
--
-
-**trait_id:** `str`
-
-
-
-
-
--
-
-**trait_value:** `str`
+**plan_trait_id:** `str` — plan_trait_id
@@ -9616,7 +9488,7 @@ client.companies.create_plan_trait(
-client.companies.get_plan_trait(...) -> GetPlanTraitResponse
+client.companies.update_plan_traits_bulk(...) -> UpdatePlanTraitsBulkResponse
-
@@ -9629,7 +9501,7 @@ client.companies.create_plan_trait(
-
```python
-from schematic import Schematic
+from schematic import Schematic, UpdatePlanTraitTraitRequestBody
from schematic.environment import SchematicEnvironment
client = Schematic(
@@ -9637,8 +9509,15 @@ client = Schematic(
environment=SchematicEnvironment.DEFAULT,
)
-client.companies.get_plan_trait(
- plan_trait_id="plan_trait_id",
+client.companies.update_plan_traits_bulk(
+ apply_to_existing_companies=True,
+ plan_id="plan_id",
+ traits=[
+ UpdatePlanTraitTraitRequestBody(
+ trait_id="trait_id",
+ trait_value="trait_value",
+ )
+ ],
)
```
@@ -9655,7 +9534,23 @@ client.companies.get_plan_trait(
-
-**plan_trait_id:** `str` — plan_trait_id
+**apply_to_existing_companies:** `bool`
+
+
+
+
+
+-
+
+**plan_id:** `str`
+
+
+
+
+
+-
+
+**traits:** `typing.List[UpdatePlanTraitTraitRequestBody]`
@@ -9675,7 +9570,7 @@ client.companies.get_plan_trait(
-client.companies.update_plan_trait(...) -> UpdatePlanTraitResponse
+client.companies.count_plan_traits(...) -> CountPlanTraitsResponse
-
@@ -9696,10 +9591,17 @@ client = Schematic(
environment=SchematicEnvironment.DEFAULT,
)
-client.companies.update_plan_trait(
- plan_trait_id="plan_trait_id",
+client.companies.count_plan_traits(
+ ids=[
+ "ids"
+ ],
plan_id="plan_id",
- trait_value="trait_value",
+ trait_id="trait_id",
+ trait_ids=[
+ "trait_ids"
+ ],
+ limit=1000000,
+ offset=1000000,
)
```
@@ -9716,7 +9618,7 @@ client.companies.update_plan_trait(
-
-**plan_trait_id:** `str` — plan_trait_id
+**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
@@ -9724,7 +9626,31 @@ client.companies.update_plan_trait(
-
-**plan_id:** `str`
+**plan_id:** `typing.Optional[str]`
+
+
+
+
+
+-
+
+**trait_id:** `typing.Optional[str]`
+
+
+
+
+
+-
+
+**trait_ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
+
+
+
+
+
+-
+
+**limit:** `typing.Optional[int]` — Page limit (default 100)
@@ -9732,7 +9658,7 @@ client.companies.update_plan_trait(
-
-**trait_value:** `str`
+**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -9752,7 +9678,7 @@ client.companies.update_plan_trait(
-client.companies.delete_plan_trait(...) -> DeletePlanTraitResponse
+client.companies.upsert_user_trait(...) -> UpsertUserTraitResponse
-
@@ -9773,8 +9699,11 @@ client = Schematic(
environment=SchematicEnvironment.DEFAULT,
)
-client.companies.delete_plan_trait(
- plan_trait_id="plan_trait_id",
+client.companies.upsert_user_trait(
+ keys={
+ "key": "value"
+ },
+ trait="trait",
)
```
@@ -9791,7 +9720,7 @@ client.companies.delete_plan_trait(
-
-**plan_trait_id:** `str` — plan_trait_id
+**request:** `UpsertTraitRequestBody`
@@ -9811,7 +9740,7 @@ client.companies.delete_plan_trait(
-client.companies.update_plan_traits_bulk(...) -> UpdatePlanTraitsBulkResponse
+client.companies.list_users(...) -> ListUsersResponse
-
@@ -9824,7 +9753,7 @@ client.companies.delete_plan_trait(
-
```python
-from schematic import Schematic, UpdatePlanTraitTraitRequestBody
+from schematic import Schematic
from schematic.environment import SchematicEnvironment
client = Schematic(
@@ -9832,15 +9761,15 @@ client = Schematic(
environment=SchematicEnvironment.DEFAULT,
)
-client.companies.update_plan_traits_bulk(
- apply_to_existing_companies=True,
- plan_id="plan_id",
- traits=[
- UpdatePlanTraitTraitRequestBody(
- trait_id="trait_id",
- trait_value="trait_value",
- )
+client.companies.list_users(
+ company_id="company_id",
+ ids=[
+ "ids"
],
+ plan_id="plan_id",
+ q="q",
+ limit=1000000,
+ offset=1000000,
)
```
@@ -9857,7 +9786,7 @@ client.companies.update_plan_traits_bulk(
-
-**apply_to_existing_companies:** `bool`
+**company_id:** `typing.Optional[str]` — Filter users by company ID (starts with comp_)
@@ -9865,7 +9794,7 @@ client.companies.update_plan_traits_bulk(
-
-**plan_id:** `str`
+**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter users by multiple user IDs (starts with user_)
@@ -9873,7 +9802,7 @@ client.companies.update_plan_traits_bulk(
-
-**traits:** `typing.List[UpdatePlanTraitTraitRequestBody]`
+**plan_id:** `typing.Optional[str]` — Filter users by plan ID (starts with plan_)
@@ -9881,268 +9810,16 @@ client.companies.update_plan_traits_bulk(
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+**q:** `typing.Optional[str]` — Search for users by name, keys or string traits
-
-
+
+-
-
-
-
-
-client.companies.count_plan_traits(...) -> CountPlanTraitsResponse
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from schematic import Schematic
-from schematic.environment import SchematicEnvironment
-
-client = Schematic(
- api_key="",
- environment=SchematicEnvironment.DEFAULT,
-)
-
-client.companies.count_plan_traits(
- ids=[
- "ids"
- ],
- plan_id="plan_id",
- trait_id="trait_id",
- trait_ids=[
- "trait_ids"
- ],
- limit=1000000,
- offset=1000000,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
-
-
-
-
-
--
-
-**plan_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**trait_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**trait_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.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.upsert_user_trait(...) -> UpsertUserTraitResponse
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from schematic import Schematic
-from schematic.environment import SchematicEnvironment
-
-client = Schematic(
- api_key="",
- environment=SchematicEnvironment.DEFAULT,
-)
-
-client.companies.upsert_user_trait(
- keys={
- "key": "value"
- },
- trait="trait",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `UpsertTraitRequestBody`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.list_users(...) -> ListUsersResponse
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from schematic import Schematic
-from schematic.environment import SchematicEnvironment
-
-client = Schematic(
- api_key="",
- environment=SchematicEnvironment.DEFAULT,
-)
-
-client.companies.list_users(
- company_id="company_id",
- ids=[
- "ids"
- ],
- plan_id="plan_id",
- q="q",
- limit=1000000,
- offset=1000000,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**company_id:** `typing.Optional[str]` — Filter users by company ID (starts with comp_)
-
-
-
-
-
--
-
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter users by multiple user IDs (starts with user_)
-
-
-
-
-
--
-
-**plan_id:** `typing.Optional[str]` — Filter users by plan ID (starts with plan_)
-
-
-
-
-
--
-
-**q:** `typing.Optional[str]` — Search for users by name, keys or string traits
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` — Page limit (default 100)
-
+**limit:** `typing.Optional[int]` — Page limit (default 100)
+
@@ -10856,7 +10533,7 @@ client.entitlements.create_company_override(
-
-**metric_period:** `typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]`
+**metric_period:** `typing.Optional[MetricPeriod]`
@@ -10864,7 +10541,7 @@ client.entitlements.create_company_override(
-
-**metric_period_month_reset:** `typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]`
+**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -11055,7 +10732,7 @@ client.entitlements.update_company_override(
-
-**metric_period:** `typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]`
+**metric_period:** `typing.Optional[MetricPeriod]`
@@ -11063,7 +10740,7 @@ client.entitlements.update_company_override(
-
-**metric_period_month_reset:** `typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]`
+**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12267,7 +11944,7 @@ client.entitlements.create_plan_entitlement(
-
-**metric_period:** `typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]`
+**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12275,7 +11952,7 @@ client.entitlements.create_plan_entitlement(
-
-**metric_period_month_reset:** `typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]`
+**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12594,7 +12271,7 @@ client.entitlements.update_plan_entitlement(
-
-**metric_period:** `typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]`
+**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12602,7 +12279,7 @@ client.entitlements.update_plan_entitlement(
-
-**metric_period_month_reset:** `typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]`
+**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -12940,7 +12617,7 @@ client.entitlements.upsert_plan_entitlement_for_billing_product(
-
-**metric_period:** `typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]`
+**metric_period:** `typing.Optional[MetricPeriod]`
@@ -12948,7 +12625,7 @@ client.entitlements.upsert_plan_entitlement_for_billing_product(
-
-**metric_period_month_reset:** `typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]`
+**metric_period_month_reset:** `typing.Optional[MetricPeriodMonthReset]`
@@ -13473,6 +13150,210 @@ client.plans.update_company_plans(
+
+
+
+
+client.plans.list_custom_plan_billings(...) -> ListCustomPlanBillingsResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```python
+from schematic import Schematic
+from schematic.environment import SchematicEnvironment
+
+client = Schematic(
+ api_key="",
+ environment=SchematicEnvironment.DEFAULT,
+)
+
+client.plans.list_custom_plan_billings(
+ company_id="company_id",
+ plan_id="plan_id",
+ status="active",
+ statuses=[
+ "active"
+ ],
+ limit=1000000,
+ offset=1000000,
+)
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**company_id:** `typing.Optional[str]` — Filter by company ID
+
+
+
+
+
+-
+
+**plan_id:** `typing.Optional[str]` — Filter by plan ID
+
+
+
+
+
+-
+
+**status:** `typing.Optional[CustomPlanBillingStatus]` — Filter by billing status
+
+
+
+
+
+-
+
+**statuses:** `typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]` — Filter by multiple billing statuses
+
+
+
+
+
+-
+
+**limit:** `typing.Optional[int]` — Page limit (default 100)
+
+
+
+
+
+-
+
+**offset:** `typing.Optional[int]` — Page offset (default 0)
+
+
+
+
+
+-
+
+**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+
+
+
+
+
+
+
+
+
+
+
+client.plans.retry_custom_plan_billing(...) -> RetryCustomPlanBillingResponse
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```python
+from schematic import Schematic, UpdatePayInAdvanceRequestBody
+from schematic.environment import SchematicEnvironment
+
+client = Schematic(
+ api_key="",
+ environment=SchematicEnvironment.DEFAULT,
+)
+
+client.plans.retry_custom_plan_billing(
+ custom_plan_billing_id="custom_plan_billing_id",
+ customer_email="customer_email",
+ pay_in_advance=[
+ UpdatePayInAdvanceRequestBody(
+ price_id="price_id",
+ quantity=1000000,
+ )
+ ],
+)
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**custom_plan_billing_id:** `str` — custom_plan_billing_id
+
+
+
+
+
+-
+
+**customer_email:** `str`
+
+
+
+
+
+-
+
+**pay_in_advance:** `typing.List[UpdatePayInAdvanceRequestBody]`
+
+
+
+
+
+-
+
+**activation_strategy:** `typing.Optional[CustomPlanActivationStrategy]`
+
+
+
+
+
+-
+
+**days_until_due:** `typing.Optional[int]`
+
+
+
+
+
+-
+
+**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+
+
+
+
+
+
+
@@ -13593,6 +13474,7 @@ client = Schematic(
client.plans.list_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -13632,6 +13514,14 @@ client.plans.list_plans(
-
+**exclude_company_scoped:** `typing.Optional[bool]` — Exclude plans that are scoped to a company (custom plans assigned to a company)
+
+
+
+
+
+-
+
**for_fallback_plan:** `typing.Optional[bool]` — Filter for plans valid as fallback plans (not linked to billing)
@@ -14371,6 +14261,7 @@ client = Schematic(
client.plans.count_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -14410,6 +14301,14 @@ client.plans.count_plans(
-
+**exclude_company_scoped:** `typing.Optional[bool]` — Exclude plans that are scoped to a company (custom plans assigned to a company)
+
+
+
+
+
+-
+
**for_fallback_plan:** `typing.Optional[bool]` — Filter for plans valid as fallback plans (not linked to billing)
@@ -16089,7 +15988,7 @@ client.features.create_feature(
-
-**maintainer_id:** `typing.Optional[str]`
+**maintainer_account_member_id:** `typing.Optional[str]`
@@ -16287,7 +16186,7 @@ client.features.update_feature(
-
-**maintainer_id:** `typing.Optional[str]`
+**maintainer_account_member_id:** `typing.Optional[str]`
@@ -16513,7 +16412,7 @@ client.features.upsert_feature_for_billing_product(
-
-**maintainer_id:** `typing.Optional[str]`
+**maintainer_account_member_id:** `typing.Optional[str]`
@@ -17069,7 +16968,7 @@ client.features.update_flag_rules(
CreateOrUpdateConditionGroupRequestBody(
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=[
"resource_ids"
@@ -17080,7 +16979,7 @@ client.features.update_flag_rules(
],
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=[
"resource_ids"
diff --git a/src/schematic/__init__.py b/src/schematic/__init__.py
index 8894934..7fae489 100644
--- a/src/schematic/__init__.py
+++ b/src/schematic/__init__.py
@@ -84,6 +84,7 @@
CompanyPlanWithBillingSubView,
CompanyResponseData,
CompanySubscriptionResponseData,
+ ComparableOperator,
CompatiblePlans,
CompatiblePlansResponseData,
ComponentCapabilities,
@@ -96,36 +97,24 @@
ComponentSettingsResponseData,
ComponentState,
Condition,
- ConditionConditionType,
ConditionGroup,
ConditionGroupResponseData,
ConditionGroupView,
- ConditionMetricPeriod,
- ConditionMetricPeriodMonthReset,
- ConditionOperator,
ConditionResponseData,
+ ConditionType,
ConditionView,
CountResponse,
CouponRequestBody,
CreateBillingPlanCreditGrantRequestBody,
CreateBillingPriceTierRequestBody,
CreateEntitlementInBundleRequestBody,
- CreateEntitlementInBundleRequestBodyMetricPeriod,
- CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset,
CreateEntitlementReqCommon,
- CreateEntitlementReqCommonMetricPeriod,
- CreateEntitlementReqCommonMetricPeriodMonthReset,
CreateEventRequestBody,
CreateFlagRequestBody,
CreateOrUpdateConditionGroupRequestBody,
CreateOrUpdateConditionRequestBody,
- CreateOrUpdateConditionRequestBodyConditionType,
- CreateOrUpdateConditionRequestBodyMetricPeriod,
- CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset,
- CreateOrUpdateConditionRequestBodyOperator,
CreateOrUpdateFlagRequestBody,
CreateOrUpdateRuleRequestBody,
- CreateOrUpdateRuleRequestBodyRuleType,
CreatePlanRequestBody,
CreatePriceTierRequestBody,
CreditAutoTopupAmountType,
@@ -198,8 +187,7 @@
FeatureCompanyUserResponseData,
FeatureDetailResponseData,
FeatureEntitlement,
- FeatureEntitlementMetricPeriod,
- FeatureEntitlementMonthReset,
+ FeatureInPlanResponseData,
FeatureLedgerResponseData,
FeatureLifecyclePhase,
FeatureResponseData,
@@ -210,6 +198,7 @@
FeatureUsageTimeSeriesResponseData,
FeatureView,
FlagDetailResponseData,
+ FlagInPlanResponseData,
FlagResponseData,
FlagType,
FlagView,
@@ -226,6 +215,8 @@
ManagePlanRequest,
ManagePlanResponseResponseData,
MeterRequestBody,
+ MetricPeriod,
+ MetricPeriodMonthReset,
OrderedPlansInGroup,
PaymentMethodRequestBody,
PaymentMethodResponseData,
@@ -281,31 +272,24 @@
RuleConditionResponseData,
RuleDetailResponseData,
RuleResponseData,
- RuleRuleType,
+ RuleType,
RuleView,
RulesDetailResponseData,
RulesEngineSchemaVersion,
RulesengineCheckFlagResult,
- RulesengineCheckFlagResultFeatureUsagePeriod,
- RulesengineCheckFlagResultRuleType,
RulesengineCompany,
RulesengineCompanyMetric,
- RulesengineCompanyMetricMonthReset,
- RulesengineCompanyMetricPeriod,
RulesengineCondition,
- RulesengineConditionConditionType,
RulesengineConditionGroup,
- RulesengineConditionMetricPeriod,
- RulesengineConditionMetricPeriodMonthReset,
- RulesengineConditionOperator,
+ RulesengineConditionType,
RulesengineEntitlementValueType,
RulesengineEntityType,
RulesengineFeatureEntitlement,
- RulesengineFeatureEntitlementMetricPeriod,
- RulesengineFeatureEntitlementMonthReset,
RulesengineFlag,
+ RulesengineMetricPeriod,
+ RulesengineMetricPeriodMonthReset,
RulesengineRule,
- RulesengineRuleRuleType,
+ RulesengineRuleType,
RulesengineSubscription,
RulesengineTrait,
RulesengineTraitDefinition,
@@ -334,8 +318,6 @@
UpdateBillingPlanCreditGrantRequestBody,
UpdateCreditBundleRequestBody,
UpdateEntitlementReqCommon,
- UpdateEntitlementReqCommonMetricPeriod,
- UpdateEntitlementReqCommonMetricPeriodMonthReset,
UpdatePayInAdvanceRequestBody,
UpdatePlanRequestBody,
UpdatePlanTraitTraitRequestBody,
@@ -464,13 +446,11 @@
CountUsersParams,
CountUsersResponse,
CreateCompanyResponse,
- CreatePlanTraitResponse,
CreateUserResponse,
DeleteCompanyByKeysResponse,
DeleteCompanyMembershipResponse,
DeleteCompanyParams,
DeleteCompanyResponse,
- DeletePlanTraitResponse,
DeleteUserByKeysResponse,
DeleteUserResponse,
GetActiveCompanySubscriptionParams,
@@ -503,7 +483,6 @@
LookupUserParams,
LookupUserResponse,
UpdateEntityTraitDefinitionResponse,
- UpdatePlanTraitResponse,
UpdatePlanTraitsBulkResponse,
UpsertCompanyResponse,
UpsertCompanyTraitResponse,
@@ -580,13 +559,7 @@
CountFeatureUsersResponse,
CountPlanEntitlementsParams,
CountPlanEntitlementsResponse,
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod,
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset,
- CreateCompanyOverrideRequestBodyMetricPeriod,
- CreateCompanyOverrideRequestBodyMetricPeriodMonthReset,
CreateCompanyOverrideResponse,
- CreatePlanEntitlementRequestBodyMetricPeriod,
- CreatePlanEntitlementRequestBodyMetricPeriodMonthReset,
CreatePlanEntitlementResponse,
DeleteCompanyOverrideResponse,
DeletePlanEntitlementResponse,
@@ -607,11 +580,7 @@
ListFeatureUsersResponse,
ListPlanEntitlementsParams,
ListPlanEntitlementsResponse,
- UpdateCompanyOverrideRequestBodyMetricPeriod,
- UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset,
UpdateCompanyOverrideResponse,
- UpdatePlanEntitlementRequestBodyMetricPeriod,
- UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset,
UpdatePlanEntitlementResponse,
UpsertPlanEntitlementForBillingProductResponse,
)
@@ -677,11 +646,14 @@
GetPlanResponse,
ListBillingProductMatchCompaniesParams,
ListBillingProductMatchCompaniesResponse,
+ ListCustomPlanBillingsParams,
+ ListCustomPlanBillingsResponse,
ListPlanIssuesParams,
ListPlanIssuesResponse,
ListPlansParams,
ListPlansResponse,
PublishPlanVersionResponse,
+ RetryCustomPlanBillingResponse,
UpdateCompanyPlansResponse,
UpdatePlanResponse,
UpsertBillingProductPlanResponse,
@@ -796,6 +768,7 @@
"CompanyPlanWithBillingSubView": ".types",
"CompanyResponseData": ".types",
"CompanySubscriptionResponseData": ".types",
+ "ComparableOperator": ".types",
"CompatiblePlans": ".types",
"CompatiblePlansResponseData": ".types",
"ComponentCapabilities": ".types",
@@ -808,14 +781,11 @@
"ComponentSettingsResponseData": ".types",
"ComponentState": ".types",
"Condition": ".types",
- "ConditionConditionType": ".types",
"ConditionGroup": ".types",
"ConditionGroupResponseData": ".types",
"ConditionGroupView": ".types",
- "ConditionMetricPeriod": ".types",
- "ConditionMetricPeriodMonthReset": ".types",
- "ConditionOperator": ".types",
"ConditionResponseData": ".types",
+ "ConditionType": ".types",
"ConditionView": ".types",
"CountApiKeysParams": ".accounts",
"CountApiKeysResponse": ".accounts",
@@ -881,13 +851,9 @@
"CouponRequestBody": ".types",
"CreateApiKeyResponse": ".accounts",
"CreateBillingCreditResponse": ".credits",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".entitlements",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements",
"CreateBillingPlanCreditGrantRequestBody": ".types",
"CreateBillingPlanCreditGrantResponse": ".credits",
"CreateBillingPriceTierRequestBody": ".types",
- "CreateCompanyOverrideRequestBodyMetricPeriod": ".entitlements",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".entitlements",
"CreateCompanyOverrideResponse": ".entitlements",
"CreateCompanyResponse": ".companies",
"CreateComponentResponse": ".components",
@@ -895,11 +861,7 @@
"CreateCustomPlanResponse": ".plans",
"CreateDataExportResponse": ".dataexports",
"CreateEntitlementInBundleRequestBody": ".types",
- "CreateEntitlementInBundleRequestBodyMetricPeriod": ".types",
- "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset": ".types",
"CreateEntitlementReqCommon": ".types",
- "CreateEntitlementReqCommonMetricPeriod": ".types",
- "CreateEntitlementReqCommonMetricPeriodMonthReset": ".types",
"CreateEnvironmentResponse": ".accounts",
"CreateEventBatchResponse": ".events",
"CreateEventRequestBody": ".types",
@@ -909,21 +871,13 @@
"CreateFlagResponse": ".features",
"CreateOrUpdateConditionGroupRequestBody": ".types",
"CreateOrUpdateConditionRequestBody": ".types",
- "CreateOrUpdateConditionRequestBodyConditionType": ".types",
- "CreateOrUpdateConditionRequestBodyMetricPeriod": ".types",
- "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset": ".types",
- "CreateOrUpdateConditionRequestBodyOperator": ".types",
"CreateOrUpdateFlagRequestBody": ".types",
"CreateOrUpdateRuleRequestBody": ".types",
- "CreateOrUpdateRuleRequestBodyRuleType": ".types",
"CreatePlanBundleResponse": ".planbundle",
- "CreatePlanEntitlementRequestBodyMetricPeriod": ".entitlements",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements",
"CreatePlanEntitlementResponse": ".entitlements",
"CreatePlanGroupResponse": ".plangroups",
"CreatePlanRequestBody": ".types",
"CreatePlanResponse": ".plans",
- "CreatePlanTraitResponse": ".companies",
"CreatePriceTierRequestBody": ".types",
"CreateScheduledCheckoutResponse": ".scheduledcheckout",
"CreateUserResponse": ".companies",
@@ -981,7 +935,6 @@
"DeleteFlagResponse": ".features",
"DeletePlanEntitlementResponse": ".entitlements",
"DeletePlanResponse": ".plans",
- "DeletePlanTraitResponse": ".companies",
"DeletePlanVersionParams": ".plans",
"DeletePlanVersionResponse": ".plans",
"DeleteProductPriceResponse": ".billing",
@@ -1022,8 +975,7 @@
"FeatureCompanyUserResponseData": ".types",
"FeatureDetailResponseData": ".types",
"FeatureEntitlement": ".types",
- "FeatureEntitlementMetricPeriod": ".types",
- "FeatureEntitlementMonthReset": ".types",
+ "FeatureInPlanResponseData": ".types",
"FeatureLedgerResponseData": ".types",
"FeatureLifecyclePhase": ".types",
"FeatureResponseData": ".types",
@@ -1034,6 +986,7 @@
"FeatureUsageTimeSeriesResponseData": ".types",
"FeatureView": ".types",
"FlagDetailResponseData": ".types",
+ "FlagInPlanResponseData": ".types",
"FlagResponseData": ".types",
"FlagType": ".types",
"FlagView": ".types",
@@ -1131,6 +1084,8 @@
"ListCreditBundlesResponse": ".credits",
"ListCreditEventLedgerParams": ".credits",
"ListCreditEventLedgerResponse": ".credits",
+ "ListCustomPlanBillingsParams": ".plans",
+ "ListCustomPlanBillingsResponse": ".plans",
"ListCustomersWithSubscriptionsParams": ".billing",
"ListCustomersWithSubscriptionsResponse": ".billing",
"ListEntityKeyDefinitionsParams": ".companies",
@@ -1189,6 +1144,8 @@
"ManagePlanResponse": ".checkout",
"ManagePlanResponseResponseData": ".types",
"MeterRequestBody": ".types",
+ "MetricPeriod": ".types",
+ "MetricPeriodMonthReset": ".types",
"NotFoundError": ".errors",
"OrderedPlansInGroup": ".types",
"PaymentMethodRequestBody": ".types",
@@ -1244,6 +1201,7 @@
"QuickstartResponse": ".accounts",
"RawEventBatchResponseData": ".types",
"RawEventResponseData": ".types",
+ "RetryCustomPlanBillingResponse": ".plans",
"Rule": ".types",
"RuleConditionDetailResponseData": ".types",
"RuleConditionGroupDetailResponseData": ".types",
@@ -1251,31 +1209,24 @@
"RuleConditionResponseData": ".types",
"RuleDetailResponseData": ".types",
"RuleResponseData": ".types",
- "RuleRuleType": ".types",
+ "RuleType": ".types",
"RuleView": ".types",
"RulesDetailResponseData": ".types",
"RulesEngineSchemaVersion": ".types",
"RulesengineCheckFlagResult": ".types",
- "RulesengineCheckFlagResultFeatureUsagePeriod": ".types",
- "RulesengineCheckFlagResultRuleType": ".types",
"RulesengineCompany": ".types",
"RulesengineCompanyMetric": ".types",
- "RulesengineCompanyMetricMonthReset": ".types",
- "RulesengineCompanyMetricPeriod": ".types",
"RulesengineCondition": ".types",
- "RulesengineConditionConditionType": ".types",
"RulesengineConditionGroup": ".types",
- "RulesengineConditionMetricPeriod": ".types",
- "RulesengineConditionMetricPeriodMonthReset": ".types",
- "RulesengineConditionOperator": ".types",
+ "RulesengineConditionType": ".types",
"RulesengineEntitlementValueType": ".types",
"RulesengineEntityType": ".types",
"RulesengineFeatureEntitlement": ".types",
- "RulesengineFeatureEntitlementMetricPeriod": ".types",
- "RulesengineFeatureEntitlementMonthReset": ".types",
"RulesengineFlag": ".types",
+ "RulesengineMetricPeriod": ".types",
+ "RulesengineMetricPeriodMonthReset": ".types",
"RulesengineRule": ".types",
- "RulesengineRuleRuleType": ".types",
+ "RulesengineRuleType": ".types",
"RulesengineSubscription": ".types",
"RulesengineTrait": ".types",
"RulesengineTraitDefinition": ".types",
@@ -1310,8 +1261,6 @@
"UpdateBillingCreditResponse": ".credits",
"UpdateBillingPlanCreditGrantRequestBody": ".types",
"UpdateBillingPlanCreditGrantResponse": ".credits",
- "UpdateCompanyOverrideRequestBodyMetricPeriod": ".entitlements",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".entitlements",
"UpdateCompanyOverrideResponse": ".entitlements",
"UpdateCompanyPlansResponse": ".plans",
"UpdateComponentResponse": ".components",
@@ -1319,8 +1268,6 @@
"UpdateCreditBundleRequestBody": ".types",
"UpdateCustomerSubscriptionTrialEndResponse": ".checkout",
"UpdateEntitlementReqCommon": ".types",
- "UpdateEntitlementReqCommonMetricPeriod": ".types",
- "UpdateEntitlementReqCommonMetricPeriodMonthReset": ".types",
"UpdateEntityTraitDefinitionResponse": ".companies",
"UpdateEnvironmentResponse": ".accounts",
"UpdateFeatureResponse": ".features",
@@ -1328,13 +1275,10 @@
"UpdateFlagRulesResponse": ".features",
"UpdatePayInAdvanceRequestBody": ".types",
"UpdatePlanBundleResponse": ".planbundle",
- "UpdatePlanEntitlementRequestBodyMetricPeriod": ".entitlements",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".entitlements",
"UpdatePlanEntitlementResponse": ".entitlements",
"UpdatePlanGroupResponse": ".plangroups",
"UpdatePlanRequestBody": ".types",
"UpdatePlanResponse": ".plans",
- "UpdatePlanTraitResponse": ".companies",
"UpdatePlanTraitTraitRequestBody": ".types",
"UpdatePlanTraitsBulkResponse": ".companies",
"UpdateRuleRequestBody": ".types",
@@ -1507,6 +1451,7 @@ def __dir__():
"CompanyPlanWithBillingSubView",
"CompanyResponseData",
"CompanySubscriptionResponseData",
+ "ComparableOperator",
"CompatiblePlans",
"CompatiblePlansResponseData",
"ComponentCapabilities",
@@ -1519,14 +1464,11 @@ def __dir__():
"ComponentSettingsResponseData",
"ComponentState",
"Condition",
- "ConditionConditionType",
"ConditionGroup",
"ConditionGroupResponseData",
"ConditionGroupView",
- "ConditionMetricPeriod",
- "ConditionMetricPeriodMonthReset",
- "ConditionOperator",
"ConditionResponseData",
+ "ConditionType",
"ConditionView",
"CountApiKeysParams",
"CountApiKeysResponse",
@@ -1592,13 +1534,9 @@ def __dir__():
"CouponRequestBody",
"CreateApiKeyResponse",
"CreateBillingCreditResponse",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset",
"CreateBillingPlanCreditGrantRequestBody",
"CreateBillingPlanCreditGrantResponse",
"CreateBillingPriceTierRequestBody",
- "CreateCompanyOverrideRequestBodyMetricPeriod",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"CreateCompanyOverrideResponse",
"CreateCompanyResponse",
"CreateComponentResponse",
@@ -1606,11 +1544,7 @@ def __dir__():
"CreateCustomPlanResponse",
"CreateDataExportResponse",
"CreateEntitlementInBundleRequestBody",
- "CreateEntitlementInBundleRequestBodyMetricPeriod",
- "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset",
"CreateEntitlementReqCommon",
- "CreateEntitlementReqCommonMetricPeriod",
- "CreateEntitlementReqCommonMetricPeriodMonthReset",
"CreateEnvironmentResponse",
"CreateEventBatchResponse",
"CreateEventRequestBody",
@@ -1620,21 +1554,13 @@ def __dir__():
"CreateFlagResponse",
"CreateOrUpdateConditionGroupRequestBody",
"CreateOrUpdateConditionRequestBody",
- "CreateOrUpdateConditionRequestBodyConditionType",
- "CreateOrUpdateConditionRequestBodyMetricPeriod",
- "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset",
- "CreateOrUpdateConditionRequestBodyOperator",
"CreateOrUpdateFlagRequestBody",
"CreateOrUpdateRuleRequestBody",
- "CreateOrUpdateRuleRequestBodyRuleType",
"CreatePlanBundleResponse",
- "CreatePlanEntitlementRequestBodyMetricPeriod",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"CreatePlanEntitlementResponse",
"CreatePlanGroupResponse",
"CreatePlanRequestBody",
"CreatePlanResponse",
- "CreatePlanTraitResponse",
"CreatePriceTierRequestBody",
"CreateScheduledCheckoutResponse",
"CreateUserResponse",
@@ -1692,7 +1618,6 @@ def __dir__():
"DeleteFlagResponse",
"DeletePlanEntitlementResponse",
"DeletePlanResponse",
- "DeletePlanTraitResponse",
"DeletePlanVersionParams",
"DeletePlanVersionResponse",
"DeleteProductPriceResponse",
@@ -1733,8 +1658,7 @@ def __dir__():
"FeatureCompanyUserResponseData",
"FeatureDetailResponseData",
"FeatureEntitlement",
- "FeatureEntitlementMetricPeriod",
- "FeatureEntitlementMonthReset",
+ "FeatureInPlanResponseData",
"FeatureLedgerResponseData",
"FeatureLifecyclePhase",
"FeatureResponseData",
@@ -1745,6 +1669,7 @@ def __dir__():
"FeatureUsageTimeSeriesResponseData",
"FeatureView",
"FlagDetailResponseData",
+ "FlagInPlanResponseData",
"FlagResponseData",
"FlagType",
"FlagView",
@@ -1842,6 +1767,8 @@ def __dir__():
"ListCreditBundlesResponse",
"ListCreditEventLedgerParams",
"ListCreditEventLedgerResponse",
+ "ListCustomPlanBillingsParams",
+ "ListCustomPlanBillingsResponse",
"ListCustomersWithSubscriptionsParams",
"ListCustomersWithSubscriptionsResponse",
"ListEntityKeyDefinitionsParams",
@@ -1900,6 +1827,8 @@ def __dir__():
"ManagePlanResponse",
"ManagePlanResponseResponseData",
"MeterRequestBody",
+ "MetricPeriod",
+ "MetricPeriodMonthReset",
"NotFoundError",
"OrderedPlansInGroup",
"PaymentMethodRequestBody",
@@ -1955,6 +1884,7 @@ def __dir__():
"QuickstartResponse",
"RawEventBatchResponseData",
"RawEventResponseData",
+ "RetryCustomPlanBillingResponse",
"Rule",
"RuleConditionDetailResponseData",
"RuleConditionGroupDetailResponseData",
@@ -1962,31 +1892,24 @@ def __dir__():
"RuleConditionResponseData",
"RuleDetailResponseData",
"RuleResponseData",
- "RuleRuleType",
+ "RuleType",
"RuleView",
"RulesDetailResponseData",
"RulesEngineSchemaVersion",
"RulesengineCheckFlagResult",
- "RulesengineCheckFlagResultFeatureUsagePeriod",
- "RulesengineCheckFlagResultRuleType",
"RulesengineCompany",
"RulesengineCompanyMetric",
- "RulesengineCompanyMetricMonthReset",
- "RulesengineCompanyMetricPeriod",
"RulesengineCondition",
- "RulesengineConditionConditionType",
"RulesengineConditionGroup",
- "RulesengineConditionMetricPeriod",
- "RulesengineConditionMetricPeriodMonthReset",
- "RulesengineConditionOperator",
+ "RulesengineConditionType",
"RulesengineEntitlementValueType",
"RulesengineEntityType",
"RulesengineFeatureEntitlement",
- "RulesengineFeatureEntitlementMetricPeriod",
- "RulesengineFeatureEntitlementMonthReset",
"RulesengineFlag",
+ "RulesengineMetricPeriod",
+ "RulesengineMetricPeriodMonthReset",
"RulesengineRule",
- "RulesengineRuleRuleType",
+ "RulesengineRuleType",
"RulesengineSubscription",
"RulesengineTrait",
"RulesengineTraitDefinition",
@@ -2021,8 +1944,6 @@ def __dir__():
"UpdateBillingCreditResponse",
"UpdateBillingPlanCreditGrantRequestBody",
"UpdateBillingPlanCreditGrantResponse",
- "UpdateCompanyOverrideRequestBodyMetricPeriod",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"UpdateCompanyOverrideResponse",
"UpdateCompanyPlansResponse",
"UpdateComponentResponse",
@@ -2030,8 +1951,6 @@ def __dir__():
"UpdateCreditBundleRequestBody",
"UpdateCustomerSubscriptionTrialEndResponse",
"UpdateEntitlementReqCommon",
- "UpdateEntitlementReqCommonMetricPeriod",
- "UpdateEntitlementReqCommonMetricPeriodMonthReset",
"UpdateEntityTraitDefinitionResponse",
"UpdateEnvironmentResponse",
"UpdateFeatureResponse",
@@ -2039,13 +1958,10 @@ def __dir__():
"UpdateFlagRulesResponse",
"UpdatePayInAdvanceRequestBody",
"UpdatePlanBundleResponse",
- "UpdatePlanEntitlementRequestBodyMetricPeriod",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"UpdatePlanEntitlementResponse",
"UpdatePlanGroupResponse",
"UpdatePlanRequestBody",
"UpdatePlanResponse",
- "UpdatePlanTraitResponse",
"UpdatePlanTraitTraitRequestBody",
"UpdatePlanTraitsBulkResponse",
"UpdateRuleRequestBody",
diff --git a/src/schematic/base_client.py b/src/schematic/base_client.py
index aafa8b0..0dbd075 100644
--- a/src/schematic/base_client.py
+++ b/src/schematic/base_client.py
@@ -7,9 +7,7 @@
import httpx
from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from .core.logging import LogConfig, Logger
-from .core.request_options import RequestOptions
from .environment import SchematicEnvironment
-from .raw_base_client import AsyncRawBaseSchematic, RawBaseSchematic
if typing.TYPE_CHECKING:
from .accesstokens.client import AccesstokensClient, AsyncAccesstokensClient
@@ -103,7 +101,6 @@ def __init__(
timeout=_defaulted_timeout,
logging=logging,
)
- self._raw_client = RawBaseSchematic(client_wrapper=self._client_wrapper)
self._accounts: typing.Optional[AccountsClient] = None
self._billing: typing.Optional[BillingClient] = None
self._credits: typing.Optional[CreditsClient] = None
@@ -124,79 +121,6 @@ def __init__(
self._accesstokens: typing.Optional[AccesstokensClient] = None
self._webhooks: typing.Optional[WebhooksClient] = None
- @property
- def with_raw_response(self) -> RawBaseSchematic:
- """
- Retrieves a raw implementation of this client that returns raw responses.
-
- Returns
- -------
- RawBaseSchematic
- """
- return self._raw_client
-
- def put_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> None:
- """
- Parameters
- ----------
- plan_audience_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_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
- )
- """
- _response = self._raw_client.put_plan_audiences_plan_audience_id(
- plan_audience_id, request_options=request_options
- )
- return _response.data
-
- def delete_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> None:
- """
- Parameters
- ----------
- plan_audience_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_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
- )
- """
- _response = self._raw_client.delete_plan_audiences_plan_audience_id(
- plan_audience_id, request_options=request_options
- )
- return _response.data
-
@property
def accounts(self):
if self._accounts is None:
@@ -420,7 +344,6 @@ def __init__(
timeout=_defaulted_timeout,
logging=logging,
)
- self._raw_client = AsyncRawBaseSchematic(client_wrapper=self._client_wrapper)
self._accounts: typing.Optional[AsyncAccountsClient] = None
self._billing: typing.Optional[AsyncBillingClient] = None
self._credits: typing.Optional[AsyncCreditsClient] = None
@@ -441,95 +364,6 @@ def __init__(
self._accesstokens: typing.Optional[AsyncAccesstokensClient] = None
self._webhooks: typing.Optional[AsyncWebhooksClient] = None
- @property
- def with_raw_response(self) -> AsyncRawBaseSchematic:
- """
- Retrieves a raw implementation of this client that returns raw responses.
-
- Returns
- -------
- AsyncRawBaseSchematic
- """
- return self._raw_client
-
- async def put_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> None:
- """
- Parameters
- ----------
- plan_audience_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_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.put_plan_audiences_plan_audience_id(
- plan_audience_id, request_options=request_options
- )
- return _response.data
-
- async def delete_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> None:
- """
- Parameters
- ----------
- plan_audience_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_plan_audiences_plan_audience_id(
- plan_audience_id="plan_audience_id",
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.delete_plan_audiences_plan_audience_id(
- plan_audience_id, request_options=request_options
- )
- return _response.data
-
@property
def accounts(self):
if self._accounts is None:
diff --git a/src/schematic/billing/client.py b/src/schematic/billing/client.py
index db69452..5faffeb 100644
--- a/src/schematic/billing/client.py
+++ b/src/schematic/billing/client.py
@@ -883,6 +883,7 @@ def upsert_billing_price(
product_external_id: str,
usage_type: BillingPriceUsageType,
meter_id: typing.Optional[str] = OMIT,
+ nickname: typing.Optional[str] = OMIT,
package_size: typing.Optional[int] = OMIT,
price_decimal: typing.Optional[str] = OMIT,
provider_type: typing.Optional[BillingProviderType] = OMIT,
@@ -914,6 +915,8 @@ def upsert_billing_price(
meter_id : typing.Optional[str]
+ nickname : typing.Optional[str]
+
package_size : typing.Optional[int]
price_decimal : typing.Optional[str]
@@ -966,6 +969,7 @@ def upsert_billing_price(
product_external_id=product_external_id,
usage_type=usage_type,
meter_id=meter_id,
+ nickname=nickname,
package_size=package_size,
price_decimal=price_decimal,
provider_type=provider_type,
@@ -2489,6 +2493,7 @@ async def upsert_billing_price(
product_external_id: str,
usage_type: BillingPriceUsageType,
meter_id: typing.Optional[str] = OMIT,
+ nickname: typing.Optional[str] = OMIT,
package_size: typing.Optional[int] = OMIT,
price_decimal: typing.Optional[str] = OMIT,
provider_type: typing.Optional[BillingProviderType] = OMIT,
@@ -2520,6 +2525,8 @@ async def upsert_billing_price(
meter_id : typing.Optional[str]
+ nickname : typing.Optional[str]
+
package_size : typing.Optional[int]
price_decimal : typing.Optional[str]
@@ -2580,6 +2587,7 @@ async def main() -> None:
product_external_id=product_external_id,
usage_type=usage_type,
meter_id=meter_id,
+ nickname=nickname,
package_size=package_size,
price_decimal=price_decimal,
provider_type=provider_type,
diff --git a/src/schematic/billing/raw_client.py b/src/schematic/billing/raw_client.py
index a1adcff..d2d02aa 100644
--- a/src/schematic/billing/raw_client.py
+++ b/src/schematic/billing/raw_client.py
@@ -1682,6 +1682,7 @@ def upsert_billing_price(
product_external_id: str,
usage_type: BillingPriceUsageType,
meter_id: typing.Optional[str] = OMIT,
+ nickname: typing.Optional[str] = OMIT,
package_size: typing.Optional[int] = OMIT,
price_decimal: typing.Optional[str] = OMIT,
provider_type: typing.Optional[BillingProviderType] = OMIT,
@@ -1713,6 +1714,8 @@ def upsert_billing_price(
meter_id : typing.Optional[str]
+ nickname : typing.Optional[str]
+
package_size : typing.Optional[int]
price_decimal : typing.Optional[str]
@@ -1739,6 +1742,7 @@ def upsert_billing_price(
"interval": interval,
"is_active": is_active,
"meter_id": meter_id,
+ "nickname": nickname,
"package_size": package_size,
"price": price,
"price_decimal": price_decimal,
@@ -4465,6 +4469,7 @@ async def upsert_billing_price(
product_external_id: str,
usage_type: BillingPriceUsageType,
meter_id: typing.Optional[str] = OMIT,
+ nickname: typing.Optional[str] = OMIT,
package_size: typing.Optional[int] = OMIT,
price_decimal: typing.Optional[str] = OMIT,
provider_type: typing.Optional[BillingProviderType] = OMIT,
@@ -4496,6 +4501,8 @@ async def upsert_billing_price(
meter_id : typing.Optional[str]
+ nickname : typing.Optional[str]
+
package_size : typing.Optional[int]
price_decimal : typing.Optional[str]
@@ -4522,6 +4529,7 @@ async def upsert_billing_price(
"interval": interval,
"is_active": is_active,
"meter_id": meter_id,
+ "nickname": nickname,
"package_size": package_size,
"price": price,
"price_decimal": price_decimal,
diff --git a/src/schematic/companies/__init__.py b/src/schematic/companies/__init__.py
index 95ab31d..ffb2813 100644
--- a/src/schematic/companies/__init__.py
+++ b/src/schematic/companies/__init__.py
@@ -18,13 +18,11 @@
CountUsersParams,
CountUsersResponse,
CreateCompanyResponse,
- CreatePlanTraitResponse,
CreateUserResponse,
DeleteCompanyByKeysResponse,
DeleteCompanyMembershipResponse,
DeleteCompanyParams,
DeleteCompanyResponse,
- DeletePlanTraitResponse,
DeleteUserByKeysResponse,
DeleteUserResponse,
GetActiveCompanySubscriptionParams,
@@ -57,7 +55,6 @@
LookupUserParams,
LookupUserResponse,
UpdateEntityTraitDefinitionResponse,
- UpdatePlanTraitResponse,
UpdatePlanTraitsBulkResponse,
UpsertCompanyResponse,
UpsertCompanyTraitResponse,
@@ -76,13 +73,11 @@
"CountUsersParams": ".types",
"CountUsersResponse": ".types",
"CreateCompanyResponse": ".types",
- "CreatePlanTraitResponse": ".types",
"CreateUserResponse": ".types",
"DeleteCompanyByKeysResponse": ".types",
"DeleteCompanyMembershipResponse": ".types",
"DeleteCompanyParams": ".types",
"DeleteCompanyResponse": ".types",
- "DeletePlanTraitResponse": ".types",
"DeleteUserByKeysResponse": ".types",
"DeleteUserResponse": ".types",
"GetActiveCompanySubscriptionParams": ".types",
@@ -115,7 +110,6 @@
"LookupUserParams": ".types",
"LookupUserResponse": ".types",
"UpdateEntityTraitDefinitionResponse": ".types",
- "UpdatePlanTraitResponse": ".types",
"UpdatePlanTraitsBulkResponse": ".types",
"UpsertCompanyResponse": ".types",
"UpsertCompanyTraitResponse": ".types",
@@ -157,13 +151,11 @@ def __dir__():
"CountUsersParams",
"CountUsersResponse",
"CreateCompanyResponse",
- "CreatePlanTraitResponse",
"CreateUserResponse",
"DeleteCompanyByKeysResponse",
"DeleteCompanyMembershipResponse",
"DeleteCompanyParams",
"DeleteCompanyResponse",
- "DeletePlanTraitResponse",
"DeleteUserByKeysResponse",
"DeleteUserResponse",
"GetActiveCompanySubscriptionParams",
@@ -196,7 +188,6 @@ def __dir__():
"LookupUserParams",
"LookupUserResponse",
"UpdateEntityTraitDefinitionResponse",
- "UpdatePlanTraitResponse",
"UpdatePlanTraitsBulkResponse",
"UpsertCompanyResponse",
"UpsertCompanyTraitResponse",
diff --git a/src/schematic/companies/client.py b/src/schematic/companies/client.py
index aa40c25..f9ef3e7 100644
--- a/src/schematic/companies/client.py
+++ b/src/schematic/companies/client.py
@@ -20,12 +20,10 @@
from .types.count_plan_traits_response import CountPlanTraitsResponse
from .types.count_users_response import CountUsersResponse
from .types.create_company_response import CreateCompanyResponse
-from .types.create_plan_trait_response import CreatePlanTraitResponse
from .types.create_user_response import CreateUserResponse
from .types.delete_company_by_keys_response import DeleteCompanyByKeysResponse
from .types.delete_company_membership_response import DeleteCompanyMembershipResponse
from .types.delete_company_response import DeleteCompanyResponse
-from .types.delete_plan_trait_response import DeletePlanTraitResponse
from .types.delete_user_by_keys_response import DeleteUserByKeysResponse
from .types.delete_user_response import DeleteUserResponse
from .types.get_active_company_subscription_response import GetActiveCompanySubscriptionResponse
@@ -47,7 +45,6 @@
from .types.lookup_company_response import LookupCompanyResponse
from .types.lookup_user_response import LookupUserResponse
from .types.update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse
-from .types.update_plan_trait_response import UpdatePlanTraitResponse
from .types.update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse
from .types.upsert_company_response import UpsertCompanyResponse
from .types.upsert_company_trait_response import UpsertCompanyTraitResponse
@@ -1434,44 +1431,6 @@ def list_plan_traits(
)
return _response.data
- def create_plan_trait(
- self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None
- ) -> CreatePlanTraitResponse:
- """
- Parameters
- ----------
- plan_id : str
-
- trait_id : str
-
- trait_value : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- CreatePlanTraitResponse
- Created
-
- Examples
- --------
- from schematic import Schematic
-
- client = Schematic(
- api_key="YOUR_API_KEY",
- )
- client.companies.create_plan_trait(
- plan_id="plan_id",
- trait_id="trait_id",
- trait_value="trait_value",
- )
- """
- _response = self._raw_client.create_plan_trait(
- plan_id=plan_id, trait_id=trait_id, trait_value=trait_value, request_options=request_options
- )
- return _response.data
-
def get_plan_trait(
self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
) -> GetPlanTraitResponse:
@@ -1503,81 +1462,6 @@ def get_plan_trait(
_response = self._raw_client.get_plan_trait(plan_trait_id, request_options=request_options)
return _response.data
- def update_plan_trait(
- self,
- plan_trait_id: str,
- *,
- plan_id: str,
- trait_value: str,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> UpdatePlanTraitResponse:
- """
- Parameters
- ----------
- plan_trait_id : str
- plan_trait_id
-
- plan_id : str
-
- trait_value : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- UpdatePlanTraitResponse
- OK
-
- Examples
- --------
- from schematic import Schematic
-
- client = Schematic(
- api_key="YOUR_API_KEY",
- )
- client.companies.update_plan_trait(
- plan_trait_id="plan_trait_id",
- plan_id="plan_id",
- trait_value="trait_value",
- )
- """
- _response = self._raw_client.update_plan_trait(
- plan_trait_id, plan_id=plan_id, trait_value=trait_value, request_options=request_options
- )
- return _response.data
-
- def delete_plan_trait(
- self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> DeletePlanTraitResponse:
- """
- Parameters
- ----------
- plan_trait_id : str
- plan_trait_id
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- DeletePlanTraitResponse
- OK
-
- Examples
- --------
- from schematic import Schematic
-
- client = Schematic(
- api_key="YOUR_API_KEY",
- )
- client.companies.delete_plan_trait(
- plan_trait_id="plan_trait_id",
- )
- """
- _response = self._raw_client.delete_plan_trait(plan_trait_id, request_options=request_options)
- return _response.data
-
def update_plan_traits_bulk(
self,
*,
@@ -3729,52 +3613,6 @@ async def main() -> None:
)
return _response.data
- async def create_plan_trait(
- self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None
- ) -> CreatePlanTraitResponse:
- """
- Parameters
- ----------
- plan_id : str
-
- trait_id : str
-
- trait_value : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- CreatePlanTraitResponse
- Created
-
- Examples
- --------
- import asyncio
-
- from schematic import AsyncSchematic
-
- client = AsyncSchematic(
- api_key="YOUR_API_KEY",
- )
-
-
- async def main() -> None:
- await client.companies.create_plan_trait(
- plan_id="plan_id",
- trait_id="trait_id",
- trait_value="trait_value",
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.create_plan_trait(
- plan_id=plan_id, trait_id=trait_id, trait_value=trait_value, request_options=request_options
- )
- return _response.data
-
async def get_plan_trait(
self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
) -> GetPlanTraitResponse:
@@ -3814,97 +3652,6 @@ async def main() -> None:
_response = await self._raw_client.get_plan_trait(plan_trait_id, request_options=request_options)
return _response.data
- async def update_plan_trait(
- self,
- plan_trait_id: str,
- *,
- plan_id: str,
- trait_value: str,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> UpdatePlanTraitResponse:
- """
- Parameters
- ----------
- plan_trait_id : str
- plan_trait_id
-
- plan_id : str
-
- trait_value : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- UpdatePlanTraitResponse
- OK
-
- Examples
- --------
- import asyncio
-
- from schematic import AsyncSchematic
-
- client = AsyncSchematic(
- api_key="YOUR_API_KEY",
- )
-
-
- async def main() -> None:
- await client.companies.update_plan_trait(
- plan_trait_id="plan_trait_id",
- plan_id="plan_id",
- trait_value="trait_value",
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.update_plan_trait(
- plan_trait_id, plan_id=plan_id, trait_value=trait_value, request_options=request_options
- )
- return _response.data
-
- async def delete_plan_trait(
- self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> DeletePlanTraitResponse:
- """
- Parameters
- ----------
- plan_trait_id : str
- plan_trait_id
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- DeletePlanTraitResponse
- OK
-
- Examples
- --------
- import asyncio
-
- from schematic import AsyncSchematic
-
- client = AsyncSchematic(
- api_key="YOUR_API_KEY",
- )
-
-
- async def main() -> None:
- await client.companies.delete_plan_trait(
- plan_trait_id="plan_trait_id",
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.delete_plan_trait(plan_trait_id, request_options=request_options)
- return _response.data
-
async def update_plan_traits_bulk(
self,
*,
diff --git a/src/schematic/companies/raw_client.py b/src/schematic/companies/raw_client.py
index cbe2a1a..4e14395 100644
--- a/src/schematic/companies/raw_client.py
+++ b/src/schematic/companies/raw_client.py
@@ -32,12 +32,10 @@
from .types.count_plan_traits_response import CountPlanTraitsResponse
from .types.count_users_response import CountUsersResponse
from .types.create_company_response import CreateCompanyResponse
-from .types.create_plan_trait_response import CreatePlanTraitResponse
from .types.create_user_response import CreateUserResponse
from .types.delete_company_by_keys_response import DeleteCompanyByKeysResponse
from .types.delete_company_membership_response import DeleteCompanyMembershipResponse
from .types.delete_company_response import DeleteCompanyResponse
-from .types.delete_plan_trait_response import DeletePlanTraitResponse
from .types.delete_user_by_keys_response import DeleteUserByKeysResponse
from .types.delete_user_response import DeleteUserResponse
from .types.get_active_company_subscription_response import GetActiveCompanySubscriptionResponse
@@ -59,7 +57,6 @@
from .types.lookup_company_response import LookupCompanyResponse
from .types.lookup_user_response import LookupUserResponse
from .types.update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse
-from .types.update_plan_trait_response import UpdatePlanTraitResponse
from .types.update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse
from .types.upsert_company_response import UpsertCompanyResponse
from .types.upsert_company_trait_response import UpsertCompanyTraitResponse
@@ -3027,118 +3024,6 @@ def list_plan_traits(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def create_plan_trait(
- self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[CreatePlanTraitResponse]:
- """
- Parameters
- ----------
- plan_id : str
-
- trait_id : str
-
- trait_value : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[CreatePlanTraitResponse]
- Created
- """
- _response = self._client_wrapper.httpx_client.request(
- "plan-traits",
- method="POST",
- json={
- "plan_id": plan_id,
- "trait_id": trait_id,
- "trait_value": trait_value,
- },
- headers={
- "content-type": "application/json",
- },
- request_options=request_options,
- omit=OMIT,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- CreatePlanTraitResponse,
- parse_obj_as(
- type_=CreatePlanTraitResponse, # 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_plan_trait(
self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
) -> HttpResponse[GetPlanTraitResponse]:
@@ -3228,38 +3113,40 @@ def get_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def update_plan_trait(
+ def update_plan_traits_bulk(
self,
- plan_trait_id: str,
*,
+ apply_to_existing_companies: bool,
plan_id: str,
- trait_value: str,
+ traits: typing.Sequence[UpdatePlanTraitTraitRequestBody],
request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[UpdatePlanTraitResponse]:
+ ) -> HttpResponse[UpdatePlanTraitsBulkResponse]:
"""
Parameters
----------
- plan_trait_id : str
- plan_trait_id
+ apply_to_existing_companies : bool
plan_id : str
- trait_value : str
+ traits : typing.Sequence[UpdatePlanTraitTraitRequestBody]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- HttpResponse[UpdatePlanTraitResponse]
+ HttpResponse[UpdatePlanTraitsBulkResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- f"plan-traits/{jsonable_encoder(plan_trait_id)}",
- method="PUT",
+ "plan-traits/bulk",
+ method="POST",
json={
+ "apply_to_existing_companies": apply_to_existing_companies,
"plan_id": plan_id,
- "trait_value": trait_value,
+ "traits": convert_and_respect_annotation_metadata(
+ object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write"
+ ),
},
headers={
"content-type": "application/json",
@@ -3270,9 +3157,9 @@ def update_plan_trait(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpdatePlanTraitResponse,
+ UpdatePlanTraitsBulkResponse,
parse_obj_as(
- type_=UpdatePlanTraitResponse, # type: ignore
+ type_=UpdatePlanTraitsBulkResponse, # type: ignore
object_=_response.json(),
),
)
@@ -3345,34 +3232,61 @@ def update_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def delete_plan_trait(
- self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[DeletePlanTraitResponse]:
+ def count_plan_traits(
+ self,
+ *,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ plan_id: typing.Optional[str] = None,
+ trait_id: typing.Optional[str] = None,
+ trait_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[CountPlanTraitsResponse]:
"""
Parameters
----------
- plan_trait_id : str
- plan_trait_id
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+
+ plan_id : typing.Optional[str]
+
+ trait_id : typing.Optional[str]
+
+ trait_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[DeletePlanTraitResponse]
+ HttpResponse[CountPlanTraitsResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- f"plan-traits/{jsonable_encoder(plan_trait_id)}",
- method="DELETE",
+ "plan-traits/count",
+ method="GET",
+ params={
+ "ids": ids,
+ "plan_id": plan_id,
+ "trait_id": trait_id,
+ "trait_ids": trait_ids,
+ "limit": limit,
+ "offset": offset,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeletePlanTraitResponse,
+ CountPlanTraitsResponse,
parse_obj_as(
- type_=DeletePlanTraitResponse, # type: ignore
+ type_=CountPlanTraitsResponse, # type: ignore
object_=_response.json(),
),
)
@@ -3445,40 +3359,51 @@ def delete_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def update_plan_traits_bulk(
+ def upsert_user_trait(
self,
*,
- apply_to_existing_companies: bool,
- plan_id: str,
- traits: typing.Sequence[UpdatePlanTraitTraitRequestBody],
+ keys: typing.Dict[str, str],
+ trait: str,
+ incr: typing.Optional[int] = OMIT,
+ set_: typing.Optional[str] = OMIT,
+ update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[UpdatePlanTraitsBulkResponse]:
+ ) -> HttpResponse[UpsertUserTraitResponse]:
"""
Parameters
----------
- apply_to_existing_companies : bool
+ keys : typing.Dict[str, str]
+ Key/value pairs to identify a company or user
- plan_id : str
+ trait : str
+ Name of the trait to update
- traits : typing.Sequence[UpdatePlanTraitTraitRequestBody]
+ incr : typing.Optional[int]
+ Amount to increment the trait by (positive or negative)
+
+ set_ : typing.Optional[str]
+ Value to set the trait to
+
+ update_only : typing.Optional[bool]
+ Unless this is set, the company or user will be created if it does not already exist
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- HttpResponse[UpdatePlanTraitsBulkResponse]
+ HttpResponse[UpsertUserTraitResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- "plan-traits/bulk",
+ "user-traits",
method="POST",
json={
- "apply_to_existing_companies": apply_to_existing_companies,
- "plan_id": plan_id,
- "traits": convert_and_respect_annotation_metadata(
- object_=traits, annotation=typing.Sequence[UpdatePlanTraitTraitRequestBody], direction="write"
- ),
+ "incr": incr,
+ "keys": keys,
+ "set": set_,
+ "trait": trait,
+ "update_only": update_only,
},
headers={
"content-type": "application/json",
@@ -3489,9 +3414,9 @@ def update_plan_traits_bulk(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpdatePlanTraitsBulkResponse,
+ UpsertUserTraitResponse,
parse_obj_as(
- type_=UpdatePlanTraitsBulkResponse, # type: ignore
+ type_=UpsertUserTraitResponse, # type: ignore
object_=_response.json(),
),
)
@@ -3564,27 +3489,31 @@ def update_plan_traits_bulk(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def count_plan_traits(
+ def list_users(
self,
*,
+ company_id: typing.Optional[str] = None,
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
plan_id: typing.Optional[str] = None,
- trait_id: typing.Optional[str] = None,
- trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ q: typing.Optional[str] = None,
limit: typing.Optional[int] = None,
offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[CountPlanTraitsResponse]:
+ ) -> HttpResponse[ListUsersResponse]:
"""
Parameters
----------
+ company_id : typing.Optional[str]
+ Filter users by company ID (starts with comp_)
+
ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ Filter users by multiple user IDs (starts with user_)
plan_id : typing.Optional[str]
+ Filter users by plan ID (starts with plan_)
- trait_id : typing.Optional[str]
-
- trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ q : typing.Optional[str]
+ Search for users by name, keys or string traits
limit : typing.Optional[int]
Page limit (default 100)
@@ -3597,17 +3526,17 @@ def count_plan_traits(
Returns
-------
- HttpResponse[CountPlanTraitsResponse]
+ HttpResponse[ListUsersResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- "plan-traits/count",
+ "users",
method="GET",
params={
+ "company_id": company_id,
"ids": ids,
"plan_id": plan_id,
- "trait_id": trait_id,
- "trait_ids": trait_ids,
+ "q": q,
"limit": limit,
"offset": offset,
},
@@ -3616,9 +3545,9 @@ def count_plan_traits(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CountPlanTraitsResponse,
+ ListUsersResponse,
parse_obj_as(
- type_=CountPlanTraitsResponse, # type: ignore
+ type_=ListUsersResponse, # type: ignore
object_=_response.json(),
),
)
@@ -3691,759 +3620,26 @@ def count_plan_traits(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def upsert_user_trait(
+ def upsert_user(
self,
*,
keys: typing.Dict[str, str],
- trait: str,
- incr: typing.Optional[int] = OMIT,
- set_: typing.Optional[str] = OMIT,
+ companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT,
+ company: typing.Optional[typing.Dict[str, str]] = OMIT,
+ company_id: typing.Optional[str] = OMIT,
+ company_ids: typing.Optional[typing.Sequence[str]] = OMIT,
+ id: typing.Optional[str] = OMIT,
+ last_seen_at: typing.Optional[dt.datetime] = OMIT,
+ name: typing.Optional[str] = OMIT,
+ traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[UpsertUserTraitResponse]:
+ ) -> HttpResponse[UpsertUserResponse]:
"""
Parameters
----------
keys : typing.Dict[str, str]
- Key/value pairs to identify a company or user
-
- trait : str
- Name of the trait to update
-
- incr : typing.Optional[int]
- Amount to increment the trait by (positive or negative)
-
- set_ : typing.Optional[str]
- Value to set the trait to
-
- update_only : typing.Optional[bool]
- Unless this is set, the company or user will be created if it does not already exist
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[UpsertUserTraitResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- "user-traits",
- method="POST",
- json={
- "incr": incr,
- "keys": keys,
- "set": set_,
- "trait": trait,
- "update_only": update_only,
- },
- headers={
- "content-type": "application/json",
- },
- request_options=request_options,
- omit=OMIT,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- UpsertUserTraitResponse,
- parse_obj_as(
- type_=UpsertUserTraitResponse, # 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_users(
- self,
- *,
- company_id: typing.Optional[str] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- plan_id: typing.Optional[str] = None,
- q: typing.Optional[str] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[ListUsersResponse]:
- """
- Parameters
- ----------
- company_id : typing.Optional[str]
- Filter users by company ID (starts with comp_)
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- Filter users by multiple user IDs (starts with user_)
-
- plan_id : typing.Optional[str]
- Filter users by plan ID (starts with plan_)
-
- q : typing.Optional[str]
- Search for users by name, keys or string traits
-
- 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[ListUsersResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- "users",
- method="GET",
- params={
- "company_id": company_id,
- "ids": ids,
- "plan_id": plan_id,
- "q": q,
- "limit": limit,
- "offset": offset,
- },
- request_options=request_options,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- ListUsersResponse,
- parse_obj_as(
- type_=ListUsersResponse, # 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 upsert_user(
- self,
- *,
- keys: typing.Dict[str, str],
- companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT,
- company: typing.Optional[typing.Dict[str, str]] = OMIT,
- company_id: typing.Optional[str] = OMIT,
- company_ids: typing.Optional[typing.Sequence[str]] = OMIT,
- id: typing.Optional[str] = OMIT,
- last_seen_at: typing.Optional[dt.datetime] = OMIT,
- name: typing.Optional[str] = OMIT,
- traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- update_only: typing.Optional[bool] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[UpsertUserResponse]:
- """
- Parameters
- ----------
- keys : typing.Dict[str, str]
- See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information
-
- companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]]
- Optionally specify companies using array of key/value pairs
-
- company : typing.Optional[typing.Dict[str, str]]
- Add user to this company. Takes priority over companies. For exhaustive list of companies, use companies
-
- company_id : typing.Optional[str]
- Add user to this company. Takes priority over company_ids. For exhaustive list of companies, use company_ids
-
- company_ids : typing.Optional[typing.Sequence[str]]
- Optionally specify companies using Schematic company ID
-
- id : typing.Optional[str]
- If you know the Schematic ID, you can use that here instead of keys
-
- last_seen_at : typing.Optional[dt.datetime]
-
- name : typing.Optional[str]
-
- traits : typing.Optional[typing.Dict[str, typing.Any]]
- A map of trait names to trait values
-
- update_only : typing.Optional[bool]
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[UpsertUserResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- "users",
- method="POST",
- json={
- "companies": companies,
- "company": company,
- "company_id": company_id,
- "company_ids": company_ids,
- "id": id,
- "keys": keys,
- "last_seen_at": last_seen_at,
- "name": name,
- "traits": traits,
- "update_only": update_only,
- },
- headers={
- "content-type": "application/json",
- },
- request_options=request_options,
- omit=OMIT,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- UpsertUserResponse,
- parse_obj_as(
- type_=UpsertUserResponse, # 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_user(
- self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[GetUserResponse]:
- """
- Parameters
- ----------
- user_id : str
- user_id
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[GetUserResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- f"users/{jsonable_encoder(user_id)}",
- method="GET",
- request_options=request_options,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- GetUserResponse,
- parse_obj_as(
- type_=GetUserResponse, # 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 delete_user(
- self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[DeleteUserResponse]:
- """
- Parameters
- ----------
- user_id : str
- user_id
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[DeleteUserResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- f"users/{jsonable_encoder(user_id)}",
- method="DELETE",
- request_options=request_options,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- DeleteUserResponse,
- parse_obj_as(
- type_=DeleteUserResponse, # 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 count_users(
- self,
- *,
- company_id: typing.Optional[str] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- plan_id: typing.Optional[str] = None,
- q: typing.Optional[str] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[CountUsersResponse]:
- """
- Parameters
- ----------
- company_id : typing.Optional[str]
- Filter users by company ID (starts with comp_)
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- Filter users by multiple user IDs (starts with user_)
-
- plan_id : typing.Optional[str]
- Filter users by plan ID (starts with plan_)
-
- q : typing.Optional[str]
- Search for users by name, keys or string traits
-
- 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[CountUsersResponse]
- OK
- """
- _response = self._client_wrapper.httpx_client.request(
- "users/count",
- method="GET",
- params={
- "company_id": company_id,
- "ids": ids,
- "plan_id": plan_id,
- "q": q,
- "limit": limit,
- "offset": offset,
- },
- request_options=request_options,
- )
- try:
- if 200 <= _response.status_code < 300:
- _data = typing.cast(
- CountUsersResponse,
- parse_obj_as(
- type_=CountUsersResponse, # 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_user(
- self,
- *,
- keys: typing.Dict[str, str],
- companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT,
- company: typing.Optional[typing.Dict[str, str]] = OMIT,
- company_id: typing.Optional[str] = OMIT,
- company_ids: typing.Optional[typing.Sequence[str]] = OMIT,
- id: typing.Optional[str] = OMIT,
- last_seen_at: typing.Optional[dt.datetime] = OMIT,
- name: typing.Optional[str] = OMIT,
- traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- update_only: typing.Optional[bool] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[CreateUserResponse]:
- """
- Parameters
- ----------
- keys : typing.Dict[str, str]
- See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information
+ See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information
companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]]
Optionally specify companies using array of key/value pairs
@@ -4474,11 +3670,11 @@ def create_user(
Returns
-------
- HttpResponse[CreateUserResponse]
- Created
+ HttpResponse[UpsertUserResponse]
+ OK
"""
_response = self._client_wrapper.httpx_client.request(
- "users/create",
+ "users",
method="POST",
json={
"companies": companies,
@@ -4501,9 +3697,9 @@ def create_user(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CreateUserResponse,
+ UpsertUserResponse,
parse_obj_as(
- type_=CreateUserResponse, # type: ignore
+ type_=UpsertUserResponse, # type: ignore
object_=_response.json(),
),
)
@@ -4576,55 +3772,38 @@ def create_user(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def delete_user_by_keys(
- self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[DeleteUserByKeysResponse]:
+ def get_user(
+ self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> HttpResponse[GetUserResponse]:
"""
Parameters
----------
- keys : typing.Dict[str, str]
+ user_id : str
+ user_id
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- HttpResponse[DeleteUserByKeysResponse]
+ HttpResponse[GetUserResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- "users/delete",
- method="POST",
- json={
- "keys": keys,
- },
- headers={
- "content-type": "application/json",
- },
+ f"users/{jsonable_encoder(user_id)}",
+ method="GET",
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeleteUserByKeysResponse,
+ GetUserResponse,
parse_obj_as(
- type_=DeleteUserByKeysResponse, # type: ignore
+ type_=GetUserResponse, # 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),
@@ -4682,41 +3861,49 @@ def delete_user_by_keys(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- def lookup_user(
- self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[LookupUserResponse]:
+ def delete_user(
+ self, user_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> HttpResponse[DeleteUserResponse]:
"""
Parameters
----------
- keys : typing.Dict[str, str]
- Key/value pairs
+ user_id : str
+ user_id
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- HttpResponse[LookupUserResponse]
+ HttpResponse[DeleteUserResponse]
OK
"""
_response = self._client_wrapper.httpx_client.request(
- "users/lookup",
- method="GET",
- params={
- "keys": keys,
- },
+ f"users/{jsonable_encoder(user_id)}",
+ method="DELETE",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- LookupUserResponse,
+ DeleteUserResponse,
parse_obj_as(
- type_=LookupUserResponse, # type: ignore
+ type_=DeleteUserResponse, # 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),
@@ -4774,90 +3961,31 @@ def lookup_user(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
-
-class AsyncRawCompaniesClient:
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
- self._client_wrapper = client_wrapper
-
- async def list_companies(
+ def count_users(
self,
*,
- credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- has_scheduled_downgrade: typing.Optional[bool] = None,
+ company_id: typing.Optional[str] = None,
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- monetized_subscriptions: typing.Optional[bool] = None,
plan_id: typing.Optional[str] = None,
- plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- plan_version_id: typing.Optional[str] = None,
q: typing.Optional[str] = None,
- sort_order_column: typing.Optional[str] = None,
- sort_order_direction: typing.Optional[SortDirection] = None,
- subscription_statuses: typing.Optional[
- typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]
- ] = None,
- subscription_types: typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] = None,
- with_entitlement_for: typing.Optional[str] = None,
- without_feature_override_for: typing.Optional[str] = None,
- without_plan: typing.Optional[bool] = None,
- without_subscription: typing.Optional[bool] = None,
- with_subscription: typing.Optional[bool] = None,
limit: typing.Optional[int] = None,
offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListCompaniesResponse]:
+ ) -> HttpResponse[CountUsersResponse]:
"""
Parameters
----------
- credit_type_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- Filter companies by one or more credit type IDs (each ID starts with bcrd_)
-
- has_scheduled_downgrade : typing.Optional[bool]
- Filter companies that have a pending scheduled downgrade
+ company_id : typing.Optional[str]
+ Filter users by company ID (starts with comp_)
ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- Filter companies by multiple company IDs (starts with comp_)
-
- monetized_subscriptions : typing.Optional[bool]
- Filter companies that have monetized subscriptions
+ Filter users by multiple user IDs (starts with user_)
plan_id : typing.Optional[str]
- Filter companies by plan ID (starts with plan_)
-
- plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- Filter companies by one or more plan IDs (each ID starts with plan_)
-
- plan_version_id : typing.Optional[str]
- Filter companies by plan version ID (starts with plvr_)
+ Filter users by plan ID (starts with plan_)
q : typing.Optional[str]
- Search for companies by name, keys or string traits
-
- sort_order_column : typing.Optional[str]
- Column to sort by (e.g. name, created_at, last_seen_at)
-
- sort_order_direction : typing.Optional[SortDirection]
- Direction to sort by (asc or desc)
-
- subscription_statuses : typing.Optional[typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]]
- Filter companies by one or more subscription statuses
-
- subscription_types : typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]]
- Filter companies by one or more subscription types
-
- with_entitlement_for : typing.Optional[str]
- Filter companies that have an entitlement (plan entitlement or company override) for the specified feature ID
-
- without_feature_override_for : typing.Optional[str]
- Filter out companies that already have a company override for the specified feature ID
-
- without_plan : typing.Optional[bool]
- Filter out companies that have a plan
-
- without_subscription : typing.Optional[bool]
- Filter out companies that have a subscription
-
- with_subscription : typing.Optional[bool]
- Filter companies that have a subscription
+ Search for users by name, keys or string traits
limit : typing.Optional[int]
Page limit (default 100)
@@ -4870,30 +3998,17 @@ async def list_companies(
Returns
-------
- AsyncHttpResponse[ListCompaniesResponse]
+ HttpResponse[CountUsersResponse]
OK
"""
- _response = await self._client_wrapper.httpx_client.request(
- "companies",
+ _response = self._client_wrapper.httpx_client.request(
+ "users/count",
method="GET",
params={
- "credit_type_ids": credit_type_ids,
- "has_scheduled_downgrade": has_scheduled_downgrade,
+ "company_id": company_id,
"ids": ids,
- "monetized_subscriptions": monetized_subscriptions,
"plan_id": plan_id,
- "plan_ids": plan_ids,
- "plan_version_id": plan_version_id,
"q": q,
- "sort_order_column": sort_order_column,
- "sort_order_direction": sort_order_direction,
- "subscription_statuses": subscription_statuses,
- "subscription_types": subscription_types,
- "with_entitlement_for": with_entitlement_for,
- "without_feature_override_for": without_feature_override_for,
- "without_plan": without_plan,
- "without_subscription": without_subscription,
- "with_subscription": with_subscription,
"limit": limit,
"offset": offset,
},
@@ -4902,13 +4017,13 @@ async def list_companies(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListCompaniesResponse,
+ CountUsersResponse,
parse_obj_as(
- type_=ListCompaniesResponse, # type: ignore
+ type_=CountUsersResponse, # 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),
@@ -4977,24 +4092,39 @@ async def list_companies(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def upsert_company(
+ def create_user(
self,
*,
keys: typing.Dict[str, str],
+ companies: typing.Optional[typing.Sequence[typing.Dict[str, str]]] = OMIT,
+ company: typing.Optional[typing.Dict[str, str]] = OMIT,
+ company_id: typing.Optional[str] = OMIT,
+ company_ids: typing.Optional[typing.Sequence[str]] = OMIT,
id: typing.Optional[str] = OMIT,
last_seen_at: typing.Optional[dt.datetime] = OMIT,
name: typing.Optional[str] = OMIT,
- prevent_key_remap: typing.Optional[bool] = OMIT,
traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[UpsertCompanyResponse]:
+ ) -> HttpResponse[CreateUserResponse]:
"""
Parameters
----------
keys : typing.Dict[str, str]
See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information
+ companies : typing.Optional[typing.Sequence[typing.Dict[str, str]]]
+ Optionally specify companies using array of key/value pairs
+
+ company : typing.Optional[typing.Dict[str, str]]
+ Add user to this company. Takes priority over companies. For exhaustive list of companies, use companies
+
+ company_id : typing.Optional[str]
+ Add user to this company. Takes priority over company_ids. For exhaustive list of companies, use company_ids
+
+ company_ids : typing.Optional[typing.Sequence[str]]
+ Optionally specify companies using Schematic company ID
+
id : typing.Optional[str]
If you know the Schematic ID, you can use that here instead of keys
@@ -5002,8 +4132,6 @@ async def upsert_company(
name : typing.Optional[str]
- prevent_key_remap : typing.Optional[bool]
-
traits : typing.Optional[typing.Dict[str, typing.Any]]
A map of trait names to trait values
@@ -5014,18 +4142,21 @@ async def upsert_company(
Returns
-------
- AsyncHttpResponse[UpsertCompanyResponse]
- OK
+ HttpResponse[CreateUserResponse]
+ Created
"""
- _response = await self._client_wrapper.httpx_client.request(
- "companies",
+ _response = self._client_wrapper.httpx_client.request(
+ "users/create",
method="POST",
json={
+ "companies": companies,
+ "company": company,
+ "company_id": company_id,
+ "company_ids": company_ids,
"id": id,
"keys": keys,
"last_seen_at": last_seen_at,
"name": name,
- "prevent_key_remap": prevent_key_remap,
"traits": traits,
"update_only": update_only,
},
@@ -5038,13 +4169,13 @@ async def upsert_company(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpsertCompanyResponse,
+ CreateUserResponse,
parse_obj_as(
- type_=UpsertCompanyResponse, # type: ignore
+ type_=CreateUserResponse, # 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),
@@ -5113,38 +4244,55 @@ async def upsert_company(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_company(
- self, company_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[GetCompanyResponse]:
+ def delete_user_by_keys(
+ self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
+ ) -> HttpResponse[DeleteUserByKeysResponse]:
"""
Parameters
----------
- company_id : str
- company_id
+ keys : typing.Dict[str, str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[GetCompanyResponse]
+ HttpResponse[DeleteUserByKeysResponse]
OK
"""
- _response = await self._client_wrapper.httpx_client.request(
- f"companies/{jsonable_encoder(company_id)}",
- method="GET",
+ _response = self._client_wrapper.httpx_client.request(
+ "users/delete",
+ method="POST",
+ json={
+ "keys": keys,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
+ omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetCompanyResponse,
+ DeleteUserByKeysResponse,
parse_obj_as(
- type_=GetCompanyResponse, # type: ignore
+ type_=DeleteUserByKeysResponse, # 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),
+ 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),
@@ -5202,62 +4350,41 @@ async def get_company(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def delete_company(
- self,
- company_id: str,
- *,
- cancel_subscription: typing.Optional[bool] = None,
- prorate: typing.Optional[bool] = None,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[DeleteCompanyResponse]:
+ def lookup_user(
+ self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
+ ) -> HttpResponse[LookupUserResponse]:
"""
Parameters
----------
- company_id : str
- company_id
-
- cancel_subscription : typing.Optional[bool]
-
- prorate : typing.Optional[bool]
+ keys : typing.Dict[str, str]
+ Key/value pairs
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[DeleteCompanyResponse]
+ HttpResponse[LookupUserResponse]
OK
"""
- _response = await self._client_wrapper.httpx_client.request(
- f"companies/{jsonable_encoder(company_id)}",
- method="DELETE",
+ _response = self._client_wrapper.httpx_client.request(
+ "users/lookup",
+ method="GET",
params={
- "cancel_subscription": cancel_subscription,
- "prorate": prorate,
+ "keys": keys,
},
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeleteCompanyResponse,
+ LookupUserResponse,
parse_obj_as(
- type_=DeleteCompanyResponse, # type: ignore
+ type_=LookupUserResponse, # 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),
@@ -5315,7 +4442,12 @@ async def delete_company(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def count_companies(
+
+class AsyncRawCompaniesClient:
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
+ self._client_wrapper = client_wrapper
+
+ async def list_companies(
self,
*,
credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
@@ -5340,7 +4472,7 @@ async def count_companies(
limit: typing.Optional[int] = None,
offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[CountCompaniesResponse]:
+ ) -> AsyncHttpResponse[ListCompaniesResponse]:
"""
Parameters
----------
@@ -5406,11 +4538,11 @@ async def count_companies(
Returns
-------
- AsyncHttpResponse[CountCompaniesResponse]
+ AsyncHttpResponse[ListCompaniesResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "companies/count",
+ "companies",
method="GET",
params={
"credit_type_ids": credit_type_ids,
@@ -5438,9 +4570,9 @@ async def count_companies(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CountCompaniesResponse,
+ ListCompaniesResponse,
parse_obj_as(
- type_=CountCompaniesResponse, # type: ignore
+ type_=ListCompaniesResponse, # type: ignore
object_=_response.json(),
),
)
@@ -5513,7 +4645,7 @@ async def count_companies(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def create_company(
+ async def upsert_company(
self,
*,
keys: typing.Dict[str, str],
@@ -5524,7 +4656,7 @@ async def create_company(
traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[CreateCompanyResponse]:
+ ) -> AsyncHttpResponse[UpsertCompanyResponse]:
"""
Parameters
----------
@@ -5550,11 +4682,11 @@ async def create_company(
Returns
-------
- AsyncHttpResponse[CreateCompanyResponse]
- Created
+ AsyncHttpResponse[UpsertCompanyResponse]
+ OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "companies/create",
+ "companies",
method="POST",
json={
"id": id,
@@ -5574,9 +4706,9 @@ async def create_company(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CreateCompanyResponse,
+ UpsertCompanyResponse,
parse_obj_as(
- type_=CreateCompanyResponse, # type: ignore
+ type_=UpsertCompanyResponse, # type: ignore
object_=_response.json(),
),
)
@@ -5649,40 +4781,136 @@ async def create_company(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def delete_company_by_keys(
- self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[DeleteCompanyByKeysResponse]:
+ async def get_company(
+ self, company_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[GetCompanyResponse]:
+ """
+ Parameters
+ ----------
+ company_id : str
+ company_id
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ AsyncHttpResponse[GetCompanyResponse]
+ OK
+ """
+ _response = await self._client_wrapper.httpx_client.request(
+ f"companies/{jsonable_encoder(company_id)}",
+ method="GET",
+ request_options=request_options,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ _data = typing.cast(
+ GetCompanyResponse,
+ parse_obj_as(
+ type_=GetCompanyResponse, # 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 delete_company(
+ self,
+ company_id: str,
+ *,
+ cancel_subscription: typing.Optional[bool] = None,
+ prorate: typing.Optional[bool] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[DeleteCompanyResponse]:
"""
Parameters
----------
- keys : typing.Dict[str, str]
+ company_id : str
+ company_id
+
+ cancel_subscription : typing.Optional[bool]
+
+ prorate : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[DeleteCompanyByKeysResponse]
+ AsyncHttpResponse[DeleteCompanyResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "companies/delete",
- method="POST",
- json={
- "keys": keys,
- },
- headers={
- "content-type": "application/json",
+ f"companies/{jsonable_encoder(company_id)}",
+ method="DELETE",
+ params={
+ "cancel_subscription": cancel_subscription,
+ "prorate": prorate,
},
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeleteCompanyByKeysResponse,
+ DeleteCompanyResponse,
parse_obj_as(
- type_=DeleteCompanyByKeysResponse, # type: ignore
+ type_=DeleteCompanyResponse, # type: ignore
object_=_response.json(),
),
)
@@ -5755,47 +4983,147 @@ async def delete_company_by_keys(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def lookup_company(
- self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[LookupCompanyResponse]:
+ async def count_companies(
+ self,
+ *,
+ credit_type_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ has_scheduled_downgrade: typing.Optional[bool] = None,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ monetized_subscriptions: typing.Optional[bool] = None,
+ plan_id: typing.Optional[str] = None,
+ plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ plan_version_id: typing.Optional[str] = None,
+ q: typing.Optional[str] = None,
+ sort_order_column: typing.Optional[str] = None,
+ sort_order_direction: typing.Optional[SortDirection] = None,
+ subscription_statuses: typing.Optional[
+ typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]
+ ] = None,
+ subscription_types: typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]] = None,
+ with_entitlement_for: typing.Optional[str] = None,
+ without_feature_override_for: typing.Optional[str] = None,
+ without_plan: typing.Optional[bool] = None,
+ without_subscription: typing.Optional[bool] = None,
+ with_subscription: typing.Optional[bool] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[CountCompaniesResponse]:
"""
- Company lookup is determined to resolve a company from its keys, similar to how many of our other apis work.
- The following approaches will all work to resolve a company and any of them are appropriate:
- 1. `/companies/lookup?keys={"foo": "bar", "fizz": "buzz"}`
- 2. `/companies/lookup?keys[foo]=bar&keys[fizz]=buzz`
- 2. `/companies/lookup?foo=bar&fizz=buzz`
-
Parameters
----------
- keys : typing.Dict[str, str]
- Key/value pairs
+ credit_type_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ Filter companies by one or more credit type IDs (each ID starts with bcrd_)
+
+ has_scheduled_downgrade : typing.Optional[bool]
+ Filter companies that have a pending scheduled downgrade
+
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ Filter companies by multiple company IDs (starts with comp_)
+
+ monetized_subscriptions : typing.Optional[bool]
+ Filter companies that have monetized subscriptions
+
+ plan_id : typing.Optional[str]
+ Filter companies by plan ID (starts with plan_)
+
+ plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ Filter companies by one or more plan IDs (each ID starts with plan_)
+
+ plan_version_id : typing.Optional[str]
+ Filter companies by plan version ID (starts with plvr_)
+
+ q : typing.Optional[str]
+ Search for companies by name, keys or string traits
+
+ sort_order_column : typing.Optional[str]
+ Column to sort by (e.g. name, created_at, last_seen_at)
+
+ sort_order_direction : typing.Optional[SortDirection]
+ Direction to sort by (asc or desc)
+
+ subscription_statuses : typing.Optional[typing.Union[SubscriptionStatus, typing.Sequence[SubscriptionStatus]]]
+ Filter companies by one or more subscription statuses
+
+ subscription_types : typing.Optional[typing.Union[SubscriptionType, typing.Sequence[SubscriptionType]]]
+ Filter companies by one or more subscription types
+
+ with_entitlement_for : typing.Optional[str]
+ Filter companies that have an entitlement (plan entitlement or company override) for the specified feature ID
+
+ without_feature_override_for : typing.Optional[str]
+ Filter out companies that already have a company override for the specified feature ID
+
+ without_plan : typing.Optional[bool]
+ Filter out companies that have a plan
+
+ without_subscription : typing.Optional[bool]
+ Filter out companies that have a subscription
+
+ with_subscription : typing.Optional[bool]
+ Filter companies that have a subscription
+
+ 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[LookupCompanyResponse]
+ AsyncHttpResponse[CountCompaniesResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "companies/lookup",
+ "companies/count",
method="GET",
params={
- "keys": keys,
+ "credit_type_ids": credit_type_ids,
+ "has_scheduled_downgrade": has_scheduled_downgrade,
+ "ids": ids,
+ "monetized_subscriptions": monetized_subscriptions,
+ "plan_id": plan_id,
+ "plan_ids": plan_ids,
+ "plan_version_id": plan_version_id,
+ "q": q,
+ "sort_order_column": sort_order_column,
+ "sort_order_direction": sort_order_direction,
+ "subscription_statuses": subscription_statuses,
+ "subscription_types": subscription_types,
+ "with_entitlement_for": with_entitlement_for,
+ "without_feature_override_for": without_feature_override_for,
+ "without_plan": without_plan,
+ "without_subscription": without_subscription,
+ "with_subscription": with_subscription,
+ "limit": limit,
+ "offset": offset,
},
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- LookupCompanyResponse,
+ CountCompaniesResponse,
parse_obj_as(
- type_=LookupCompanyResponse, # type: ignore
+ type_=CountCompaniesResponse, # 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),
@@ -5853,53 +5181,70 @@ async def lookup_company(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def list_company_memberships(
+ async def create_company(
self,
*,
- company_id: typing.Optional[str] = None,
- user_id: typing.Optional[str] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
+ keys: typing.Dict[str, str],
+ id: typing.Optional[str] = OMIT,
+ last_seen_at: typing.Optional[dt.datetime] = OMIT,
+ name: typing.Optional[str] = OMIT,
+ prevent_key_remap: typing.Optional[bool] = OMIT,
+ traits: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListCompanyMembershipsResponse]:
+ ) -> AsyncHttpResponse[CreateCompanyResponse]:
"""
Parameters
----------
- company_id : typing.Optional[str]
+ keys : typing.Dict[str, str]
+ See [Key Management](https://docs.schematichq.com/developer_resources/key_management) for more information
- user_id : typing.Optional[str]
+ id : typing.Optional[str]
+ If you know the Schematic ID, you can use that here instead of keys
- limit : typing.Optional[int]
- Page limit (default 100)
+ last_seen_at : typing.Optional[dt.datetime]
- offset : typing.Optional[int]
- Page offset (default 0)
+ name : typing.Optional[str]
+
+ prevent_key_remap : typing.Optional[bool]
+
+ traits : typing.Optional[typing.Dict[str, typing.Any]]
+ A map of trait names to trait values
+
+ update_only : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[ListCompanyMembershipsResponse]
- OK
+ AsyncHttpResponse[CreateCompanyResponse]
+ Created
"""
_response = await self._client_wrapper.httpx_client.request(
- "company-memberships",
- method="GET",
- params={
- "company_id": company_id,
- "user_id": user_id,
- "limit": limit,
- "offset": offset,
+ "companies/create",
+ method="POST",
+ json={
+ "id": id,
+ "keys": keys,
+ "last_seen_at": last_seen_at,
+ "name": name,
+ "prevent_key_remap": prevent_key_remap,
+ "traits": traits,
+ "update_only": update_only,
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
+ omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListCompanyMembershipsResponse,
+ CreateCompanyResponse,
parse_obj_as(
- type_=ListCompanyMembershipsResponse, # type: ignore
+ type_=CreateCompanyResponse, # type: ignore
object_=_response.json(),
),
)
@@ -5972,30 +5317,27 @@ async def list_company_memberships(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_or_create_company_membership(
- self, *, company_id: str, user_id: str, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]:
+ async def delete_company_by_keys(
+ self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[DeleteCompanyByKeysResponse]:
"""
Parameters
----------
- company_id : str
-
- user_id : str
+ keys : typing.Dict[str, str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]
+ AsyncHttpResponse[DeleteCompanyByKeysResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "company-memberships",
+ "companies/delete",
method="POST",
json={
- "company_id": company_id,
- "user_id": user_id,
+ "keys": keys,
},
headers={
"content-type": "application/json",
@@ -6006,9 +5348,9 @@ async def get_or_create_company_membership(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetOrCreateCompanyMembershipResponse,
+ DeleteCompanyByKeysResponse,
parse_obj_as(
- type_=GetOrCreateCompanyMembershipResponse, # type: ignore
+ type_=DeleteCompanyByKeysResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6081,49 +5423,47 @@ async def get_or_create_company_membership(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def delete_company_membership(
- self, company_membership_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[DeleteCompanyMembershipResponse]:
+ async def lookup_company(
+ self, *, keys: typing.Dict[str, str], request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[LookupCompanyResponse]:
"""
+ Company lookup is determined to resolve a company from its keys, similar to how many of our other apis work.
+ The following approaches will all work to resolve a company and any of them are appropriate:
+ 1. `/companies/lookup?keys={"foo": "bar", "fizz": "buzz"}`
+ 2. `/companies/lookup?keys[foo]=bar&keys[fizz]=buzz`
+ 2. `/companies/lookup?foo=bar&fizz=buzz`
+
Parameters
----------
- company_membership_id : str
- company_membership_id
+ keys : typing.Dict[str, str]
+ Key/value pairs
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[DeleteCompanyMembershipResponse]
+ AsyncHttpResponse[LookupCompanyResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"company-memberships/{jsonable_encoder(company_membership_id)}",
- method="DELETE",
+ "companies/lookup",
+ method="GET",
+ params={
+ "keys": keys,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeleteCompanyMembershipResponse,
+ LookupCompanyResponse,
parse_obj_as(
- type_=DeleteCompanyMembershipResponse, # type: ignore
+ type_=LookupCompanyResponse, # 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),
@@ -6181,21 +5521,21 @@ async def delete_company_membership(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_active_company_subscription(
+ async def list_company_memberships(
self,
*,
company_id: typing.Optional[str] = None,
- company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ user_id: typing.Optional[str] = None,
limit: typing.Optional[int] = None,
offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[GetActiveCompanySubscriptionResponse]:
+ ) -> AsyncHttpResponse[ListCompanyMembershipsResponse]:
"""
Parameters
----------
company_id : typing.Optional[str]
- company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ user_id : typing.Optional[str]
limit : typing.Optional[int]
Page limit (default 100)
@@ -6208,15 +5548,15 @@ async def get_active_company_subscription(
Returns
-------
- AsyncHttpResponse[GetActiveCompanySubscriptionResponse]
+ AsyncHttpResponse[ListCompanyMembershipsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "company-subscriptions",
+ "company-memberships",
method="GET",
params={
"company_id": company_id,
- "company_ids": company_ids,
+ "user_id": user_id,
"limit": limit,
"offset": offset,
},
@@ -6225,9 +5565,9 @@ async def get_active_company_subscription(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetActiveCompanySubscriptionResponse,
+ ListCompanyMembershipsResponse,
parse_obj_as(
- type_=GetActiveCompanySubscriptionResponse, # type: ignore
+ type_=ListCompanyMembershipsResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6300,51 +5640,30 @@ async def get_active_company_subscription(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def upsert_company_trait(
- self,
- *,
- keys: typing.Dict[str, str],
- trait: str,
- incr: typing.Optional[int] = OMIT,
- set_: typing.Optional[str] = OMIT,
- update_only: typing.Optional[bool] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[UpsertCompanyTraitResponse]:
+ async def get_or_create_company_membership(
+ self, *, company_id: str, user_id: str, request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]:
"""
Parameters
----------
- keys : typing.Dict[str, str]
- Key/value pairs to identify a company or user
-
- trait : str
- Name of the trait to update
-
- incr : typing.Optional[int]
- Amount to increment the trait by (positive or negative)
-
- set_ : typing.Optional[str]
- Value to set the trait to
+ company_id : str
- update_only : typing.Optional[bool]
- Unless this is set, the company or user will be created if it does not already exist
+ user_id : str
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[UpsertCompanyTraitResponse]
+ AsyncHttpResponse[GetOrCreateCompanyMembershipResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "company-traits",
+ "company-memberships",
method="POST",
json={
- "incr": incr,
- "keys": keys,
- "set": set_,
- "trait": trait,
- "update_only": update_only,
+ "company_id": company_id,
+ "user_id": user_id,
},
headers={
"content-type": "application/json",
@@ -6355,9 +5674,9 @@ async def upsert_company_trait(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpsertCompanyTraitResponse,
+ GetOrCreateCompanyMembershipResponse,
parse_obj_as(
- type_=UpsertCompanyTraitResponse, # type: ignore
+ type_=GetOrCreateCompanyMembershipResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6430,57 +5749,34 @@ async def upsert_company_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def list_entity_key_definitions(
- self,
- *,
- entity_type: typing.Optional[EntityType] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- q: typing.Optional[str] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListEntityKeyDefinitionsResponse]:
+ async def delete_company_membership(
+ self, company_membership_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[DeleteCompanyMembershipResponse]:
"""
Parameters
----------
- entity_type : typing.Optional[EntityType]
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
-
- q : typing.Optional[str]
-
- limit : typing.Optional[int]
- Page limit (default 100)
-
- offset : typing.Optional[int]
- Page offset (default 0)
+ company_membership_id : str
+ company_membership_id
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[ListEntityKeyDefinitionsResponse]
+ AsyncHttpResponse[DeleteCompanyMembershipResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-key-definitions",
- method="GET",
- params={
- "entity_type": entity_type,
- "ids": ids,
- "q": q,
- "limit": limit,
- "offset": offset,
- },
+ f"company-memberships/{jsonable_encoder(company_membership_id)}",
+ method="DELETE",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListEntityKeyDefinitionsResponse,
+ DeleteCompanyMembershipResponse,
parse_obj_as(
- type_=ListEntityKeyDefinitionsResponse, # type: ignore
+ type_=DeleteCompanyMembershipResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6553,24 +5849,21 @@ async def list_entity_key_definitions(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def count_entity_key_definitions(
+ async def get_active_company_subscription(
self,
*,
- entity_type: typing.Optional[EntityType] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- q: typing.Optional[str] = None,
+ company_id: typing.Optional[str] = None,
+ company_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[CountEntityKeyDefinitionsResponse]:
+ ) -> AsyncHttpResponse[GetActiveCompanySubscriptionResponse]:
"""
Parameters
----------
- entity_type : typing.Optional[EntityType]
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ company_id : typing.Optional[str]
- q : typing.Optional[str]
+ company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
limit : typing.Optional[int]
Page limit (default 100)
@@ -6583,16 +5876,15 @@ async def count_entity_key_definitions(
Returns
-------
- AsyncHttpResponse[CountEntityKeyDefinitionsResponse]
+ AsyncHttpResponse[GetActiveCompanySubscriptionResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-key-definitions/count",
+ "company-subscriptions",
method="GET",
params={
- "entity_type": entity_type,
- "ids": ids,
- "q": q,
+ "company_id": company_id,
+ "company_ids": company_ids,
"limit": limit,
"offset": offset,
},
@@ -6601,9 +5893,9 @@ async def count_entity_key_definitions(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CountEntityKeyDefinitionsResponse,
+ GetActiveCompanySubscriptionResponse,
parse_obj_as(
- type_=CountEntityKeyDefinitionsResponse, # type: ignore
+ type_=GetActiveCompanySubscriptionResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6676,65 +5968,64 @@ async def count_entity_key_definitions(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def list_entity_trait_definitions(
+ async def upsert_company_trait(
self,
*,
- entity_type: typing.Optional[EntityType] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- q: typing.Optional[str] = None,
- trait_type: typing.Optional[TraitType] = None,
- trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
+ keys: typing.Dict[str, str],
+ trait: str,
+ incr: typing.Optional[int] = OMIT,
+ set_: typing.Optional[str] = OMIT,
+ update_only: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListEntityTraitDefinitionsResponse]:
+ ) -> AsyncHttpResponse[UpsertCompanyTraitResponse]:
"""
Parameters
----------
- entity_type : typing.Optional[EntityType]
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
-
- q : typing.Optional[str]
+ keys : typing.Dict[str, str]
+ Key/value pairs to identify a company or user
- trait_type : typing.Optional[TraitType]
+ trait : str
+ Name of the trait to update
- trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]]
+ incr : typing.Optional[int]
+ Amount to increment the trait by (positive or negative)
- limit : typing.Optional[int]
- Page limit (default 100)
+ set_ : typing.Optional[str]
+ Value to set the trait to
- offset : typing.Optional[int]
- Page offset (default 0)
+ update_only : typing.Optional[bool]
+ Unless this is set, the company or user will be created if it does not already exist
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[ListEntityTraitDefinitionsResponse]
+ AsyncHttpResponse[UpsertCompanyTraitResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-trait-definitions",
- method="GET",
- params={
- "entity_type": entity_type,
- "ids": ids,
- "q": q,
- "trait_type": trait_type,
- "trait_types": trait_types,
- "limit": limit,
- "offset": offset,
+ "company-traits",
+ method="POST",
+ json={
+ "incr": incr,
+ "keys": keys,
+ "set": set_,
+ "trait": trait,
+ "update_only": update_only,
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
+ omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListEntityTraitDefinitionsResponse,
+ UpsertCompanyTraitResponse,
parse_obj_as(
- type_=ListEntityTraitDefinitionsResponse, # type: ignore
+ type_=UpsertCompanyTraitResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6807,55 +6098,57 @@ async def list_entity_trait_definitions(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_or_create_entity_trait_definition(
+ async def list_entity_key_definitions(
self,
*,
- entity_type: EntityType,
- hierarchy: typing.Sequence[str],
- trait_type: TraitType,
- display_name: typing.Optional[str] = OMIT,
+ entity_type: typing.Optional[EntityType] = None,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ q: typing.Optional[str] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]:
+ ) -> AsyncHttpResponse[ListEntityKeyDefinitionsResponse]:
"""
Parameters
----------
- entity_type : EntityType
+ entity_type : typing.Optional[EntityType]
- hierarchy : typing.Sequence[str]
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- trait_type : TraitType
+ q : typing.Optional[str]
- display_name : 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
-------
- AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]
+ AsyncHttpResponse[ListEntityKeyDefinitionsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-trait-definitions",
- method="POST",
- json={
- "display_name": display_name,
+ "entity-key-definitions",
+ method="GET",
+ params={
"entity_type": entity_type,
- "hierarchy": hierarchy,
- "trait_type": trait_type,
- },
- headers={
- "content-type": "application/json",
+ "ids": ids,
+ "q": q,
+ "limit": limit,
+ "offset": offset,
},
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetOrCreateEntityTraitDefinitionResponse,
+ ListEntityKeyDefinitionsResponse,
parse_obj_as(
- type_=GetOrCreateEntityTraitDefinitionResponse, # type: ignore
+ type_=ListEntityKeyDefinitionsResponse, # type: ignore
object_=_response.json(),
),
)
@@ -6928,38 +6221,72 @@ async def get_or_create_entity_trait_definition(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_entity_trait_definition(
- self, entity_trait_definition_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[GetEntityTraitDefinitionResponse]:
+ async def count_entity_key_definitions(
+ self,
+ *,
+ entity_type: typing.Optional[EntityType] = None,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ q: typing.Optional[str] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[CountEntityKeyDefinitionsResponse]:
"""
Parameters
----------
- entity_trait_definition_id : str
- entity_trait_definition_id
+ entity_type : typing.Optional[EntityType]
+
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+
+ q : 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
-------
- AsyncHttpResponse[GetEntityTraitDefinitionResponse]
+ AsyncHttpResponse[CountEntityKeyDefinitionsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}",
+ "entity-key-definitions/count",
method="GET",
+ params={
+ "entity_type": entity_type,
+ "ids": ids,
+ "q": q,
+ "limit": limit,
+ "offset": offset,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetEntityTraitDefinitionResponse,
+ CountEntityKeyDefinitionsResponse,
parse_obj_as(
- type_=GetEntityTraitDefinitionResponse, # type: ignore
+ type_=CountEntityKeyDefinitionsResponse, # 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),
@@ -7017,51 +6344,65 @@ async def get_entity_trait_definition(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def update_entity_trait_definition(
+ async def list_entity_trait_definitions(
self,
- entity_trait_definition_id: str,
*,
- trait_type: TraitType,
- display_name: typing.Optional[str] = OMIT,
+ entity_type: typing.Optional[EntityType] = None,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ q: typing.Optional[str] = None,
+ trait_type: typing.Optional[TraitType] = None,
+ trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[UpdateEntityTraitDefinitionResponse]:
+ ) -> AsyncHttpResponse[ListEntityTraitDefinitionsResponse]:
"""
Parameters
----------
- entity_trait_definition_id : str
- entity_trait_definition_id
+ entity_type : typing.Optional[EntityType]
- trait_type : TraitType
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- display_name : typing.Optional[str]
+ q : typing.Optional[str]
+
+ trait_type : typing.Optional[TraitType]
+
+ trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]]
+
+ 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[UpdateEntityTraitDefinitionResponse]
+ AsyncHttpResponse[ListEntityTraitDefinitionsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}",
- method="PUT",
- json={
- "display_name": display_name,
+ "entity-trait-definitions",
+ method="GET",
+ params={
+ "entity_type": entity_type,
+ "ids": ids,
+ "q": q,
"trait_type": trait_type,
- },
- headers={
- "content-type": "application/json",
+ "trait_types": trait_types,
+ "limit": limit,
+ "offset": offset,
},
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpdateEntityTraitDefinitionResponse,
+ ListEntityTraitDefinitionsResponse,
parse_obj_as(
- type_=UpdateEntityTraitDefinitionResponse, # type: ignore
+ type_=ListEntityTraitDefinitionsResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7134,65 +6475,55 @@ async def update_entity_trait_definition(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def count_entity_trait_definitions(
+ async def get_or_create_entity_trait_definition(
self,
*,
- entity_type: typing.Optional[EntityType] = None,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- q: typing.Optional[str] = None,
- trait_type: typing.Optional[TraitType] = None,
- trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
+ entity_type: EntityType,
+ hierarchy: typing.Sequence[str],
+ trait_type: TraitType,
+ display_name: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[CountEntityTraitDefinitionsResponse]:
+ ) -> AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]:
"""
Parameters
----------
- entity_type : typing.Optional[EntityType]
-
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
-
- q : typing.Optional[str]
-
- trait_type : typing.Optional[TraitType]
+ entity_type : EntityType
- trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]]
+ hierarchy : typing.Sequence[str]
- limit : typing.Optional[int]
- Page limit (default 100)
+ trait_type : TraitType
- offset : typing.Optional[int]
- Page offset (default 0)
+ display_name : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[CountEntityTraitDefinitionsResponse]
+ AsyncHttpResponse[GetOrCreateEntityTraitDefinitionResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-trait-definitions/count",
- method="GET",
- params={
+ "entity-trait-definitions",
+ method="POST",
+ json={
+ "display_name": display_name,
"entity_type": entity_type,
- "ids": ids,
- "q": q,
+ "hierarchy": hierarchy,
"trait_type": trait_type,
- "trait_types": trait_types,
- "limit": limit,
- "offset": offset,
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
+ omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CountEntityTraitDefinitionsResponse,
+ GetOrCreateEntityTraitDefinitionResponse,
parse_obj_as(
- type_=CountEntityTraitDefinitionsResponse, # type: ignore
+ type_=GetOrCreateEntityTraitDefinitionResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7265,68 +6596,38 @@ async def count_entity_trait_definitions(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_entity_trait_values(
- self,
- *,
- definition_id: str,
- q: typing.Optional[str] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[GetEntityTraitValuesResponse]:
+ async def get_entity_trait_definition(
+ self, entity_trait_definition_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[GetEntityTraitDefinitionResponse]:
"""
Parameters
----------
- definition_id : str
-
- q : typing.Optional[str]
-
- limit : typing.Optional[int]
- Page limit (default 100)
-
- offset : typing.Optional[int]
- Page offset (default 0)
+ entity_trait_definition_id : str
+ entity_trait_definition_id
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[GetEntityTraitValuesResponse]
+ AsyncHttpResponse[GetEntityTraitDefinitionResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "entity-trait-values",
+ f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}",
method="GET",
- params={
- "definition_id": definition_id,
- "q": q,
- "limit": limit,
- "offset": offset,
- },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetEntityTraitValuesResponse,
+ GetEntityTraitDefinitionResponse,
parse_obj_as(
- type_=GetEntityTraitValuesResponse, # type: ignore
+ type_=GetEntityTraitDefinitionResponse, # 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),
@@ -7384,65 +6685,51 @@ async def get_entity_trait_values(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def list_plan_changes(
+ async def update_entity_trait_definition(
self,
+ entity_trait_definition_id: str,
*,
- action: typing.Optional[PlanChangeAction] = None,
- base_plan_action: typing.Optional[PlanChangeBasePlanAction] = None,
- company_id: typing.Optional[str] = None,
- company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- plan_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- limit: typing.Optional[int] = None,
- offset: typing.Optional[int] = None,
+ trait_type: TraitType,
+ display_name: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListPlanChangesResponse]:
- """
- Parameters
- ----------
- action : typing.Optional[PlanChangeAction]
-
- base_plan_action : typing.Optional[PlanChangeBasePlanAction]
-
- company_id : typing.Optional[str]
-
- company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
-
- plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ ) -> AsyncHttpResponse[UpdateEntityTraitDefinitionResponse]:
+ """
+ Parameters
+ ----------
+ entity_trait_definition_id : str
+ entity_trait_definition_id
- limit : typing.Optional[int]
- Page limit (default 100)
+ trait_type : TraitType
- offset : typing.Optional[int]
- Page offset (default 0)
+ display_name : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[ListPlanChangesResponse]
+ AsyncHttpResponse[UpdateEntityTraitDefinitionResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "plan-changes",
- method="GET",
- params={
- "action": action,
- "base_plan_action": base_plan_action,
- "company_id": company_id,
- "company_ids": company_ids,
- "plan_ids": plan_ids,
- "limit": limit,
- "offset": offset,
+ f"entity-trait-definitions/{jsonable_encoder(entity_trait_definition_id)}",
+ method="PUT",
+ json={
+ "display_name": display_name,
+ "trait_type": trait_type,
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
+ omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListPlanChangesResponse,
+ UpdateEntityTraitDefinitionResponse,
parse_obj_as(
- type_=ListPlanChangesResponse, # type: ignore
+ type_=UpdateEntityTraitDefinitionResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7515,38 +6802,80 @@ async def list_plan_changes(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_plan_change(
- self, plan_change_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[GetPlanChangeResponse]:
+ async def count_entity_trait_definitions(
+ self,
+ *,
+ entity_type: typing.Optional[EntityType] = None,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ q: typing.Optional[str] = None,
+ trait_type: typing.Optional[TraitType] = None,
+ trait_types: typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[CountEntityTraitDefinitionsResponse]:
"""
Parameters
----------
- plan_change_id : str
- plan_change_id
+ entity_type : typing.Optional[EntityType]
+
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+
+ q : typing.Optional[str]
+
+ trait_type : typing.Optional[TraitType]
+
+ trait_types : typing.Optional[typing.Union[TraitType, typing.Sequence[TraitType]]]
+
+ 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[GetPlanChangeResponse]
+ AsyncHttpResponse[CountEntityTraitDefinitionsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"plan-changes/{jsonable_encoder(plan_change_id)}",
+ "entity-trait-definitions/count",
method="GET",
+ params={
+ "entity_type": entity_type,
+ "ids": ids,
+ "q": q,
+ "trait_type": trait_type,
+ "trait_types": trait_types,
+ "limit": limit,
+ "offset": offset,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetPlanChangeResponse,
+ CountEntityTraitDefinitionsResponse,
parse_obj_as(
- type_=GetPlanChangeResponse, # type: ignore
+ type_=CountEntityTraitDefinitionsResponse, # 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),
@@ -7604,27 +6933,21 @@ async def get_plan_change(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def list_plan_traits(
+ async def get_entity_trait_values(
self,
*,
- ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
- plan_id: typing.Optional[str] = None,
- trait_id: typing.Optional[str] = None,
- trait_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ definition_id: str,
+ q: typing.Optional[str] = None,
limit: typing.Optional[int] = None,
offset: typing.Optional[int] = None,
request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[ListPlanTraitsResponse]:
+ ) -> AsyncHttpResponse[GetEntityTraitValuesResponse]:
"""
Parameters
----------
- ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
-
- plan_id : typing.Optional[str]
-
- trait_id : typing.Optional[str]
+ definition_id : str
- trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+ q : typing.Optional[str]
limit : typing.Optional[int]
Page limit (default 100)
@@ -7637,17 +6960,15 @@ async def list_plan_traits(
Returns
-------
- AsyncHttpResponse[ListPlanTraitsResponse]
+ AsyncHttpResponse[GetEntityTraitValuesResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "plan-traits",
+ "entity-trait-values",
method="GET",
params={
- "ids": ids,
- "plan_id": plan_id,
- "trait_id": trait_id,
- "trait_ids": trait_ids,
+ "definition_id": definition_id,
+ "q": q,
"limit": limit,
"offset": offset,
},
@@ -7656,9 +6977,9 @@ async def list_plan_traits(
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- ListPlanTraitsResponse,
+ GetEntityTraitValuesResponse,
parse_obj_as(
- type_=ListPlanTraitsResponse, # type: ignore
+ type_=GetEntityTraitValuesResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7731,46 +7052,65 @@ async def list_plan_traits(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def create_plan_trait(
- self, *, plan_id: str, trait_id: str, trait_value: str, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[CreatePlanTraitResponse]:
+ async def list_plan_changes(
+ self,
+ *,
+ action: typing.Optional[PlanChangeAction] = None,
+ base_plan_action: typing.Optional[PlanChangeBasePlanAction] = None,
+ company_id: typing.Optional[str] = None,
+ company_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ plan_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[ListPlanChangesResponse]:
"""
Parameters
----------
- plan_id : str
+ action : typing.Optional[PlanChangeAction]
+
+ base_plan_action : typing.Optional[PlanChangeBasePlanAction]
+
+ company_id : typing.Optional[str]
+
+ company_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+
+ plan_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- trait_id : str
+ limit : typing.Optional[int]
+ Page limit (default 100)
- trait_value : str
+ offset : typing.Optional[int]
+ Page offset (default 0)
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[CreatePlanTraitResponse]
- Created
+ AsyncHttpResponse[ListPlanChangesResponse]
+ OK
"""
_response = await self._client_wrapper.httpx_client.request(
- "plan-traits",
- method="POST",
- json={
- "plan_id": plan_id,
- "trait_id": trait_id,
- "trait_value": trait_value,
- },
- headers={
- "content-type": "application/json",
+ "plan-changes",
+ method="GET",
+ params={
+ "action": action,
+ "base_plan_action": base_plan_action,
+ "company_id": company_id,
+ "company_ids": company_ids,
+ "plan_ids": plan_ids,
+ "limit": limit,
+ "offset": offset,
},
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- CreatePlanTraitResponse,
+ ListPlanChangesResponse,
parse_obj_as(
- type_=CreatePlanTraitResponse, # type: ignore
+ type_=ListPlanChangesResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7843,34 +7183,34 @@ async def create_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def get_plan_trait(
- self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[GetPlanTraitResponse]:
+ async def get_plan_change(
+ self, plan_change_id: str, *, request_options: typing.Optional[RequestOptions] = None
+ ) -> AsyncHttpResponse[GetPlanChangeResponse]:
"""
Parameters
----------
- plan_trait_id : str
- plan_trait_id
+ plan_change_id : str
+ plan_change_id
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[GetPlanTraitResponse]
+ AsyncHttpResponse[GetPlanChangeResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"plan-traits/{jsonable_encoder(plan_trait_id)}",
+ f"plan-changes/{jsonable_encoder(plan_change_id)}",
method="GET",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- GetPlanTraitResponse,
+ GetPlanChangeResponse,
parse_obj_as(
- type_=GetPlanTraitResponse, # type: ignore
+ type_=GetPlanChangeResponse, # type: ignore
object_=_response.json(),
),
)
@@ -7932,51 +7272,61 @@ async def get_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def update_plan_trait(
+ async def list_plan_traits(
self,
- plan_trait_id: str,
*,
- plan_id: str,
- trait_value: str,
+ ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
+ plan_id: typing.Optional[str] = None,
+ trait_id: typing.Optional[str] = None,
+ trait_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[UpdatePlanTraitResponse]:
+ ) -> AsyncHttpResponse[ListPlanTraitsResponse]:
"""
Parameters
----------
- plan_trait_id : str
- plan_trait_id
+ ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
- plan_id : str
+ plan_id : typing.Optional[str]
+
+ trait_id : typing.Optional[str]
+
+ trait_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
+
+ limit : typing.Optional[int]
+ Page limit (default 100)
- trait_value : str
+ offset : typing.Optional[int]
+ Page offset (default 0)
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
- AsyncHttpResponse[UpdatePlanTraitResponse]
+ AsyncHttpResponse[ListPlanTraitsResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
- f"plan-traits/{jsonable_encoder(plan_trait_id)}",
- method="PUT",
- json={
+ "plan-traits",
+ method="GET",
+ params={
+ "ids": ids,
"plan_id": plan_id,
- "trait_value": trait_value,
- },
- headers={
- "content-type": "application/json",
+ "trait_id": trait_id,
+ "trait_ids": trait_ids,
+ "limit": limit,
+ "offset": offset,
},
request_options=request_options,
- omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- UpdatePlanTraitResponse,
+ ListPlanTraitsResponse,
parse_obj_as(
- type_=UpdatePlanTraitResponse, # type: ignore
+ type_=ListPlanTraitsResponse, # type: ignore
object_=_response.json(),
),
)
@@ -8049,9 +7399,9 @@ async def update_plan_trait(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
- async def delete_plan_trait(
+ async def get_plan_trait(
self, plan_trait_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[DeletePlanTraitResponse]:
+ ) -> AsyncHttpResponse[GetPlanTraitResponse]:
"""
Parameters
----------
@@ -8063,35 +7413,24 @@ async def delete_plan_trait(
Returns
-------
- AsyncHttpResponse[DeletePlanTraitResponse]
+ AsyncHttpResponse[GetPlanTraitResponse]
OK
"""
_response = await self._client_wrapper.httpx_client.request(
f"plan-traits/{jsonable_encoder(plan_trait_id)}",
- method="DELETE",
+ method="GET",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
_data = typing.cast(
- DeletePlanTraitResponse,
+ GetPlanTraitResponse,
parse_obj_as(
- type_=DeletePlanTraitResponse, # type: ignore
+ type_=GetPlanTraitResponse, # 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/companies/types/__init__.py b/src/schematic/companies/types/__init__.py
index 50aa598..a8e0ac3 100644
--- a/src/schematic/companies/types/__init__.py
+++ b/src/schematic/companies/types/__init__.py
@@ -17,13 +17,11 @@
from .count_users_params import CountUsersParams
from .count_users_response import CountUsersResponse
from .create_company_response import CreateCompanyResponse
- from .create_plan_trait_response import CreatePlanTraitResponse
from .create_user_response import CreateUserResponse
from .delete_company_by_keys_response import DeleteCompanyByKeysResponse
from .delete_company_membership_response import DeleteCompanyMembershipResponse
from .delete_company_params import DeleteCompanyParams
from .delete_company_response import DeleteCompanyResponse
- from .delete_plan_trait_response import DeletePlanTraitResponse
from .delete_user_by_keys_response import DeleteUserByKeysResponse
from .delete_user_response import DeleteUserResponse
from .get_active_company_subscription_params import GetActiveCompanySubscriptionParams
@@ -56,7 +54,6 @@
from .lookup_user_params import LookupUserParams
from .lookup_user_response import LookupUserResponse
from .update_entity_trait_definition_response import UpdateEntityTraitDefinitionResponse
- from .update_plan_trait_response import UpdatePlanTraitResponse
from .update_plan_traits_bulk_response import UpdatePlanTraitsBulkResponse
from .upsert_company_response import UpsertCompanyResponse
from .upsert_company_trait_response import UpsertCompanyTraitResponse
@@ -74,13 +71,11 @@
"CountUsersParams": ".count_users_params",
"CountUsersResponse": ".count_users_response",
"CreateCompanyResponse": ".create_company_response",
- "CreatePlanTraitResponse": ".create_plan_trait_response",
"CreateUserResponse": ".create_user_response",
"DeleteCompanyByKeysResponse": ".delete_company_by_keys_response",
"DeleteCompanyMembershipResponse": ".delete_company_membership_response",
"DeleteCompanyParams": ".delete_company_params",
"DeleteCompanyResponse": ".delete_company_response",
- "DeletePlanTraitResponse": ".delete_plan_trait_response",
"DeleteUserByKeysResponse": ".delete_user_by_keys_response",
"DeleteUserResponse": ".delete_user_response",
"GetActiveCompanySubscriptionParams": ".get_active_company_subscription_params",
@@ -113,7 +108,6 @@
"LookupUserParams": ".lookup_user_params",
"LookupUserResponse": ".lookup_user_response",
"UpdateEntityTraitDefinitionResponse": ".update_entity_trait_definition_response",
- "UpdatePlanTraitResponse": ".update_plan_trait_response",
"UpdatePlanTraitsBulkResponse": ".update_plan_traits_bulk_response",
"UpsertCompanyResponse": ".upsert_company_response",
"UpsertCompanyTraitResponse": ".upsert_company_trait_response",
@@ -155,13 +149,11 @@ def __dir__():
"CountUsersParams",
"CountUsersResponse",
"CreateCompanyResponse",
- "CreatePlanTraitResponse",
"CreateUserResponse",
"DeleteCompanyByKeysResponse",
"DeleteCompanyMembershipResponse",
"DeleteCompanyParams",
"DeleteCompanyResponse",
- "DeletePlanTraitResponse",
"DeleteUserByKeysResponse",
"DeleteUserResponse",
"GetActiveCompanySubscriptionParams",
@@ -194,7 +186,6 @@ def __dir__():
"LookupUserParams",
"LookupUserResponse",
"UpdateEntityTraitDefinitionResponse",
- "UpdatePlanTraitResponse",
"UpdatePlanTraitsBulkResponse",
"UpsertCompanyResponse",
"UpsertCompanyTraitResponse",
diff --git a/src/schematic/companies/types/update_plan_trait_response.py b/src/schematic/companies/types/update_plan_trait_response.py
deleted file mode 100644
index 35ce976..0000000
--- a/src/schematic/companies/types/update_plan_trait_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.plan_trait_response_data import PlanTraitResponseData
-
-
-class UpdatePlanTraitResponse(UniversalBaseModel):
- data: PlanTraitResponseData
- 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/entitlements/__init__.py b/src/schematic/entitlements/__init__.py
index 158f96a..45bf41e 100644
--- a/src/schematic/entitlements/__init__.py
+++ b/src/schematic/entitlements/__init__.py
@@ -17,13 +17,7 @@
CountFeatureUsersResponse,
CountPlanEntitlementsParams,
CountPlanEntitlementsResponse,
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod,
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset,
- CreateCompanyOverrideRequestBodyMetricPeriod,
- CreateCompanyOverrideRequestBodyMetricPeriodMonthReset,
CreateCompanyOverrideResponse,
- CreatePlanEntitlementRequestBodyMetricPeriod,
- CreatePlanEntitlementRequestBodyMetricPeriodMonthReset,
CreatePlanEntitlementResponse,
DeleteCompanyOverrideResponse,
DeletePlanEntitlementResponse,
@@ -44,11 +38,7 @@
ListFeatureUsersResponse,
ListPlanEntitlementsParams,
ListPlanEntitlementsResponse,
- UpdateCompanyOverrideRequestBodyMetricPeriod,
- UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset,
UpdateCompanyOverrideResponse,
- UpdatePlanEntitlementRequestBodyMetricPeriod,
- UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset,
UpdatePlanEntitlementResponse,
UpsertPlanEntitlementForBillingProductResponse,
)
@@ -63,13 +53,7 @@
"CountFeatureUsersResponse": ".types",
"CountPlanEntitlementsParams": ".types",
"CountPlanEntitlementsResponse": ".types",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".types",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".types",
- "CreateCompanyOverrideRequestBodyMetricPeriod": ".types",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".types",
"CreateCompanyOverrideResponse": ".types",
- "CreatePlanEntitlementRequestBodyMetricPeriod": ".types",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".types",
"CreatePlanEntitlementResponse": ".types",
"DeleteCompanyOverrideResponse": ".types",
"DeletePlanEntitlementResponse": ".types",
@@ -90,11 +74,7 @@
"ListFeatureUsersResponse": ".types",
"ListPlanEntitlementsParams": ".types",
"ListPlanEntitlementsResponse": ".types",
- "UpdateCompanyOverrideRequestBodyMetricPeriod": ".types",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".types",
"UpdateCompanyOverrideResponse": ".types",
- "UpdatePlanEntitlementRequestBodyMetricPeriod": ".types",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".types",
"UpdatePlanEntitlementResponse": ".types",
"UpsertPlanEntitlementForBillingProductResponse": ".types",
}
@@ -132,13 +112,7 @@ def __dir__():
"CountFeatureUsersResponse",
"CountPlanEntitlementsParams",
"CountPlanEntitlementsResponse",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset",
- "CreateCompanyOverrideRequestBodyMetricPeriod",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"CreateCompanyOverrideResponse",
- "CreatePlanEntitlementRequestBodyMetricPeriod",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"CreatePlanEntitlementResponse",
"DeleteCompanyOverrideResponse",
"DeletePlanEntitlementResponse",
@@ -159,11 +133,7 @@ def __dir__():
"ListFeatureUsersResponse",
"ListPlanEntitlementsParams",
"ListPlanEntitlementsResponse",
- "UpdateCompanyOverrideRequestBodyMetricPeriod",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"UpdateCompanyOverrideResponse",
- "UpdatePlanEntitlementRequestBodyMetricPeriod",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"UpdatePlanEntitlementResponse",
"UpsertPlanEntitlementForBillingProductResponse",
]
diff --git a/src/schematic/entitlements/client.py b/src/schematic/entitlements/client.py
index 505de13..028fcf5 100644
--- a/src/schematic/entitlements/client.py
+++ b/src/schematic/entitlements/client.py
@@ -11,6 +11,8 @@
from ..types.currency_price_request_body import CurrencyPriceRequestBody
from ..types.entitlement_price_behavior import EntitlementPriceBehavior
from ..types.entitlement_value_type import EntitlementValueType
+from ..types.metric_period import MetricPeriod
+from ..types.metric_period_month_reset import MetricPeriodMonthReset
from ..types.time_series_granularity import TimeSeriesGranularity
from .raw_client import AsyncRawEntitlementsClient, RawEntitlementsClient
from .types.count_company_overrides_response import CountCompanyOverridesResponse
@@ -18,21 +20,7 @@
from .types.count_feature_usage_response import CountFeatureUsageResponse
from .types.count_feature_users_response import CountFeatureUsersResponse
from .types.count_plan_entitlements_response import CountPlanEntitlementsResponse
-from .types.create_billing_linked_plan_entitlement_request_body_metric_period import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod,
-)
-from .types.create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
-from .types.create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod
-from .types.create_company_override_request_body_metric_period_month_reset import (
- CreateCompanyOverrideRequestBodyMetricPeriodMonthReset,
-)
from .types.create_company_override_response import CreateCompanyOverrideResponse
-from .types.create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod
-from .types.create_plan_entitlement_request_body_metric_period_month_reset import (
- CreatePlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
from .types.create_plan_entitlement_response import CreatePlanEntitlementResponse
from .types.delete_company_override_response import DeleteCompanyOverrideResponse
from .types.delete_plan_entitlement_response import DeletePlanEntitlementResponse
@@ -46,15 +34,7 @@
from .types.list_feature_usage_response import ListFeatureUsageResponse
from .types.list_feature_users_response import ListFeatureUsersResponse
from .types.list_plan_entitlements_response import ListPlanEntitlementsResponse
-from .types.update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod
-from .types.update_company_override_request_body_metric_period_month_reset import (
- UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset,
-)
from .types.update_company_override_response import UpdateCompanyOverrideResponse
-from .types.update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod
-from .types.update_plan_entitlement_request_body_metric_period_month_reset import (
- UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
from .types.update_plan_entitlement_response import UpdatePlanEntitlementResponse
from .types.upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse
@@ -170,8 +150,8 @@ def create_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -192,9 +172,9 @@ def create_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -282,8 +262,8 @@ def update_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -303,9 +283,9 @@ def update_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -981,8 +961,8 @@ def create_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -1022,9 +1002,9 @@ def create_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -1158,8 +1138,8 @@ def update_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -1197,9 +1177,9 @@ def update_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -1331,10 +1311,8 @@ def upsert_plan_entitlement_for_billing_product(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset
- ] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -1378,9 +1356,9 @@ def upsert_plan_entitlement_for_billing_product(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -1757,8 +1735,8 @@ async def create_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -1779,9 +1757,9 @@ async def create_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -1885,8 +1863,8 @@ async def update_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -1906,9 +1884,9 @@ async def update_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -2671,8 +2649,8 @@ async def create_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -2712,9 +2690,9 @@ async def create_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -2864,8 +2842,8 @@ async def update_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -2903,9 +2881,9 @@ async def update_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -3053,10 +3031,8 @@ async def upsert_plan_entitlement_for_billing_product(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset
- ] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -3100,9 +3076,9 @@ async def upsert_plan_entitlement_for_billing_product(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
diff --git a/src/schematic/entitlements/raw_client.py b/src/schematic/entitlements/raw_client.py
index bc3f10b..5e29542 100644
--- a/src/schematic/entitlements/raw_client.py
+++ b/src/schematic/entitlements/raw_client.py
@@ -25,27 +25,15 @@
from ..types.currency_price_request_body import CurrencyPriceRequestBody
from ..types.entitlement_price_behavior import EntitlementPriceBehavior
from ..types.entitlement_value_type import EntitlementValueType
+from ..types.metric_period import MetricPeriod
+from ..types.metric_period_month_reset import MetricPeriodMonthReset
from ..types.time_series_granularity import TimeSeriesGranularity
from .types.count_company_overrides_response import CountCompanyOverridesResponse
from .types.count_feature_companies_response import CountFeatureCompaniesResponse
from .types.count_feature_usage_response import CountFeatureUsageResponse
from .types.count_feature_users_response import CountFeatureUsersResponse
from .types.count_plan_entitlements_response import CountPlanEntitlementsResponse
-from .types.create_billing_linked_plan_entitlement_request_body_metric_period import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod,
-)
-from .types.create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
-from .types.create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod
-from .types.create_company_override_request_body_metric_period_month_reset import (
- CreateCompanyOverrideRequestBodyMetricPeriodMonthReset,
-)
from .types.create_company_override_response import CreateCompanyOverrideResponse
-from .types.create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod
-from .types.create_plan_entitlement_request_body_metric_period_month_reset import (
- CreatePlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
from .types.create_plan_entitlement_response import CreatePlanEntitlementResponse
from .types.delete_company_override_response import DeleteCompanyOverrideResponse
from .types.delete_plan_entitlement_response import DeletePlanEntitlementResponse
@@ -59,15 +47,7 @@
from .types.list_feature_usage_response import ListFeatureUsageResponse
from .types.list_feature_users_response import ListFeatureUsersResponse
from .types.list_plan_entitlements_response import ListPlanEntitlementsResponse
-from .types.update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod
-from .types.update_company_override_request_body_metric_period_month_reset import (
- UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset,
-)
from .types.update_company_override_response import UpdateCompanyOverrideResponse
-from .types.update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod
-from .types.update_plan_entitlement_request_body_metric_period_month_reset import (
- UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset,
-)
from .types.update_plan_entitlement_response import UpdatePlanEntitlementResponse
from .types.upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse
from pydantic import ValidationError
@@ -234,8 +214,8 @@ def create_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -256,9 +236,9 @@ def create_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -475,8 +455,8 @@ def update_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -496,9 +476,9 @@ def update_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -1888,8 +1868,8 @@ def create_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -1929,9 +1909,9 @@ def create_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -2206,8 +2186,8 @@ def update_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -2245,9 +2225,9 @@ def update_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -2531,10 +2511,8 @@ def upsert_plan_entitlement_for_billing_product(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset
- ] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -2578,9 +2556,9 @@ def upsert_plan_entitlement_for_billing_product(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -3274,8 +3252,8 @@ async def create_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -3296,9 +3274,9 @@ async def create_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -3515,8 +3493,8 @@ async def update_company_override(
value_type: EntitlementValueType,
credit_consumption_rate: typing.Optional[float] = OMIT,
expiration_date: typing.Optional[dt.datetime] = OMIT,
- metric_period: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
note: typing.Optional[str] = OMIT,
value_bool: typing.Optional[bool] = OMIT,
value_credit_id: typing.Optional[str] = OMIT,
@@ -3536,9 +3514,9 @@ async def update_company_override(
expiration_date : typing.Optional[dt.datetime]
- metric_period : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
note : typing.Optional[str]
@@ -4928,8 +4906,8 @@ async def create_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -4969,9 +4947,9 @@ async def create_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -5246,8 +5224,8 @@ async def update_plan_entitlement(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -5285,9 +5263,9 @@ async def update_plan_entitlement(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
@@ -5571,10 +5549,8 @@ async def upsert_plan_entitlement_for_billing_product(
credit_consumption_rate: typing.Optional[float] = OMIT,
currency: typing.Optional[str] = OMIT,
currency_prices: typing.Optional[typing.Sequence[CurrencyPriceRequestBody]] = OMIT,
- metric_period: typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod] = OMIT,
- metric_period_month_reset: typing.Optional[
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset
- ] = OMIT,
+ metric_period: typing.Optional[MetricPeriod] = OMIT,
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = OMIT,
monthly_metered_price_id: typing.Optional[str] = OMIT,
monthly_price_tiers: typing.Optional[typing.Sequence[CreatePriceTierRequestBody]] = OMIT,
monthly_unit_price: typing.Optional[int] = OMIT,
@@ -5618,9 +5594,9 @@ async def upsert_plan_entitlement_for_billing_product(
currency_prices : typing.Optional[typing.Sequence[CurrencyPriceRequestBody]]
- metric_period : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod]
+ metric_period : typing.Optional[MetricPeriod]
- metric_period_month_reset : typing.Optional[CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset]
+ metric_period_month_reset : typing.Optional[MetricPeriodMonthReset]
monthly_metered_price_id : typing.Optional[str]
diff --git a/src/schematic/entitlements/types/__init__.py b/src/schematic/entitlements/types/__init__.py
index 680ee7a..47364e0 100644
--- a/src/schematic/entitlements/types/__init__.py
+++ b/src/schematic/entitlements/types/__init__.py
@@ -16,21 +16,7 @@
from .count_feature_users_response import CountFeatureUsersResponse
from .count_plan_entitlements_params import CountPlanEntitlementsParams
from .count_plan_entitlements_response import CountPlanEntitlementsResponse
- from .create_billing_linked_plan_entitlement_request_body_metric_period import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod,
- )
- from .create_billing_linked_plan_entitlement_request_body_metric_period_month_reset import (
- CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset,
- )
- from .create_company_override_request_body_metric_period import CreateCompanyOverrideRequestBodyMetricPeriod
- from .create_company_override_request_body_metric_period_month_reset import (
- CreateCompanyOverrideRequestBodyMetricPeriodMonthReset,
- )
from .create_company_override_response import CreateCompanyOverrideResponse
- from .create_plan_entitlement_request_body_metric_period import CreatePlanEntitlementRequestBodyMetricPeriod
- from .create_plan_entitlement_request_body_metric_period_month_reset import (
- CreatePlanEntitlementRequestBodyMetricPeriodMonthReset,
- )
from .create_plan_entitlement_response import CreatePlanEntitlementResponse
from .delete_company_override_response import DeleteCompanyOverrideResponse
from .delete_plan_entitlement_response import DeletePlanEntitlementResponse
@@ -51,15 +37,7 @@
from .list_feature_users_response import ListFeatureUsersResponse
from .list_plan_entitlements_params import ListPlanEntitlementsParams
from .list_plan_entitlements_response import ListPlanEntitlementsResponse
- from .update_company_override_request_body_metric_period import UpdateCompanyOverrideRequestBodyMetricPeriod
- from .update_company_override_request_body_metric_period_month_reset import (
- UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset,
- )
from .update_company_override_response import UpdateCompanyOverrideResponse
- from .update_plan_entitlement_request_body_metric_period import UpdatePlanEntitlementRequestBodyMetricPeriod
- from .update_plan_entitlement_request_body_metric_period_month_reset import (
- UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset,
- )
from .update_plan_entitlement_response import UpdatePlanEntitlementResponse
from .upsert_plan_entitlement_for_billing_product_response import UpsertPlanEntitlementForBillingProductResponse
_dynamic_imports: typing.Dict[str, str] = {
@@ -73,13 +51,7 @@
"CountFeatureUsersResponse": ".count_feature_users_response",
"CountPlanEntitlementsParams": ".count_plan_entitlements_params",
"CountPlanEntitlementsResponse": ".count_plan_entitlements_response",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod": ".create_billing_linked_plan_entitlement_request_body_metric_period",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset": ".create_billing_linked_plan_entitlement_request_body_metric_period_month_reset",
- "CreateCompanyOverrideRequestBodyMetricPeriod": ".create_company_override_request_body_metric_period",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".create_company_override_request_body_metric_period_month_reset",
"CreateCompanyOverrideResponse": ".create_company_override_response",
- "CreatePlanEntitlementRequestBodyMetricPeriod": ".create_plan_entitlement_request_body_metric_period",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".create_plan_entitlement_request_body_metric_period_month_reset",
"CreatePlanEntitlementResponse": ".create_plan_entitlement_response",
"DeleteCompanyOverrideResponse": ".delete_company_override_response",
"DeletePlanEntitlementResponse": ".delete_plan_entitlement_response",
@@ -100,11 +72,7 @@
"ListFeatureUsersResponse": ".list_feature_users_response",
"ListPlanEntitlementsParams": ".list_plan_entitlements_params",
"ListPlanEntitlementsResponse": ".list_plan_entitlements_response",
- "UpdateCompanyOverrideRequestBodyMetricPeriod": ".update_company_override_request_body_metric_period",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset": ".update_company_override_request_body_metric_period_month_reset",
"UpdateCompanyOverrideResponse": ".update_company_override_response",
- "UpdatePlanEntitlementRequestBodyMetricPeriod": ".update_plan_entitlement_request_body_metric_period",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset": ".update_plan_entitlement_request_body_metric_period_month_reset",
"UpdatePlanEntitlementResponse": ".update_plan_entitlement_response",
"UpsertPlanEntitlementForBillingProductResponse": ".upsert_plan_entitlement_for_billing_product_response",
}
@@ -142,13 +110,7 @@ def __dir__():
"CountFeatureUsersResponse",
"CountPlanEntitlementsParams",
"CountPlanEntitlementsResponse",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod",
- "CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset",
- "CreateCompanyOverrideRequestBodyMetricPeriod",
- "CreateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"CreateCompanyOverrideResponse",
- "CreatePlanEntitlementRequestBodyMetricPeriod",
- "CreatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"CreatePlanEntitlementResponse",
"DeleteCompanyOverrideResponse",
"DeletePlanEntitlementResponse",
@@ -169,11 +131,7 @@ def __dir__():
"ListFeatureUsersResponse",
"ListPlanEntitlementsParams",
"ListPlanEntitlementsResponse",
- "UpdateCompanyOverrideRequestBodyMetricPeriod",
- "UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset",
"UpdateCompanyOverrideResponse",
- "UpdatePlanEntitlementRequestBodyMetricPeriod",
- "UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset",
"UpdatePlanEntitlementResponse",
"UpsertPlanEntitlementForBillingProductResponse",
]
diff --git a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py
deleted file mode 100644
index 136c17b..0000000
--- a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py
deleted file mode 100644
index 1db18e6..0000000
--- a/src/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateBillingLinkedPlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py b/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py
deleted file mode 100644
index beda67a..0000000
--- a/src/schematic/entitlements/types/create_company_override_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateCompanyOverrideRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py
deleted file mode 100644
index 829da81..0000000
--- a/src/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateCompanyOverrideRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py
deleted file mode 100644
index 0bcfcd1..0000000
--- a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreatePlanEntitlementRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py
deleted file mode 100644
index 204cd57..0000000
--- a/src/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreatePlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py b/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py
deleted file mode 100644
index d92b779..0000000
--- a/src/schematic/entitlements/types/update_company_override_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdateCompanyOverrideRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py
deleted file mode 100644
index 557dee5..0000000
--- a/src/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdateCompanyOverrideRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py b/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py
deleted file mode 100644
index 53cd841..0000000
--- a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdatePlanEntitlementRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py b/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py
deleted file mode 100644
index f054f74..0000000
--- a/src/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdatePlanEntitlementRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/features/client.py b/src/schematic/features/client.py
index 3b72411..d8a6be2 100644
--- a/src/schematic/features/client.py
+++ b/src/schematic/features/client.py
@@ -142,7 +142,7 @@ def create_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -165,7 +165,7 @@ def create_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -202,7 +202,7 @@ def create_feature(
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
plural_name=plural_name,
singular_name=singular_name,
trait_id=trait_id,
@@ -251,7 +251,7 @@ def update_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
name: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
@@ -276,7 +276,7 @@ def update_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
name : typing.Optional[str]
@@ -313,7 +313,7 @@ def update_feature(
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
name=name,
plural_name=plural_name,
singular_name=singular_name,
@@ -365,7 +365,7 @@ def upsert_feature_for_billing_product(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -392,7 +392,7 @@ def upsert_feature_for_billing_product(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -433,7 +433,7 @@ def upsert_feature_for_billing_product(
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
plural_name=plural_name,
singular_name=singular_name,
trait_id=trait_id,
@@ -587,7 +587,7 @@ def create_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> CreateFlagResponse:
"""
@@ -603,7 +603,7 @@ def create_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -633,7 +633,7 @@ def create_flag(
key=key,
name=name,
feature_id=feature_id,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
request_options=request_options,
)
return _response.data
@@ -676,7 +676,7 @@ def update_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> UpdateFlagResponse:
"""
@@ -695,7 +695,7 @@ def update_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -727,7 +727,7 @@ def update_flag(
key=key,
name=name,
feature_id=feature_id,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
request_options=request_options,
)
return _response.data
@@ -806,7 +806,7 @@ def update_flag_rules(
CreateOrUpdateConditionGroupRequestBody(
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=["resource_ids"],
)
@@ -815,7 +815,7 @@ def update_flag_rules(
],
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=["resource_ids"],
)
@@ -1109,7 +1109,7 @@ async def create_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -1132,7 +1132,7 @@ async def create_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -1177,7 +1177,7 @@ async def main() -> None:
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
plural_name=plural_name,
singular_name=singular_name,
trait_id=trait_id,
@@ -1234,7 +1234,7 @@ async def update_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
name: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
@@ -1259,7 +1259,7 @@ async def update_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
name : typing.Optional[str]
@@ -1304,7 +1304,7 @@ async def main() -> None:
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
name=name,
plural_name=plural_name,
singular_name=singular_name,
@@ -1364,7 +1364,7 @@ async def upsert_feature_for_billing_product(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -1391,7 +1391,7 @@ async def upsert_feature_for_billing_product(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -1440,7 +1440,7 @@ async def main() -> None:
flag=flag,
icon=icon,
lifecycle_phase=lifecycle_phase,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
plural_name=plural_name,
singular_name=singular_name,
trait_id=trait_id,
@@ -1610,7 +1610,7 @@ async def create_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> CreateFlagResponse:
"""
@@ -1626,7 +1626,7 @@ async def create_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1664,7 +1664,7 @@ async def main() -> None:
key=key,
name=name,
feature_id=feature_id,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
request_options=request_options,
)
return _response.data
@@ -1717,7 +1717,7 @@ async def update_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> UpdateFlagResponse:
"""
@@ -1736,7 +1736,7 @@ async def update_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1776,7 +1776,7 @@ async def main() -> None:
key=key,
name=name,
feature_id=feature_id,
- maintainer_id=maintainer_id,
+ maintainer_account_member_id=maintainer_account_member_id,
request_options=request_options,
)
return _response.data
@@ -1868,7 +1868,7 @@ async def main() -> None:
CreateOrUpdateConditionGroupRequestBody(
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=["resource_ids"],
)
@@ -1877,7 +1877,7 @@ async def main() -> None:
],
conditions=[
CreateOrUpdateConditionRequestBody(
- condition_type="company",
+ condition_type="base_plan",
operator="eq",
resource_ids=["resource_ids"],
)
diff --git a/src/schematic/features/raw_client.py b/src/schematic/features/raw_client.py
index 554eae4..6b60fba 100644
--- a/src/schematic/features/raw_client.py
+++ b/src/schematic/features/raw_client.py
@@ -205,7 +205,7 @@ def create_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -228,7 +228,7 @@ def create_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -256,7 +256,7 @@ def create_feature(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -445,7 +445,7 @@ def update_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
name: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
@@ -470,7 +470,7 @@ def update_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
name : typing.Optional[str]
@@ -500,7 +500,7 @@ def update_feature(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -702,7 +702,7 @@ def upsert_feature_for_billing_product(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -729,7 +729,7 @@ def upsert_feature_for_billing_product(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -759,7 +759,7 @@ def upsert_feature_for_billing_product(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -1126,7 +1126,7 @@ def create_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[CreateFlagResponse]:
"""
@@ -1142,7 +1142,7 @@ def create_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1160,7 +1160,7 @@ def create_flag(
"description": description,
"feature_id": feature_id,
"key": key,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"flag_type": "boolean",
},
@@ -1346,7 +1346,7 @@ def update_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[UpdateFlagResponse]:
"""
@@ -1365,7 +1365,7 @@ def update_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1383,7 +1383,7 @@ def update_flag(
"description": description,
"feature_id": feature_id,
"key": key,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"flag_type": "boolean",
},
@@ -2311,7 +2311,7 @@ async def create_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -2334,7 +2334,7 @@ async def create_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -2362,7 +2362,7 @@ async def create_feature(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -2551,7 +2551,7 @@ async def update_feature(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
name: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
@@ -2576,7 +2576,7 @@ async def update_feature(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
name : typing.Optional[str]
@@ -2606,7 +2606,7 @@ async def update_feature(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -2808,7 +2808,7 @@ async def upsert_feature_for_billing_product(
flag: typing.Optional[CreateOrUpdateFlagRequestBody] = OMIT,
icon: typing.Optional[str] = OMIT,
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
plural_name: typing.Optional[str] = OMIT,
singular_name: typing.Optional[str] = OMIT,
trait_id: typing.Optional[str] = OMIT,
@@ -2835,7 +2835,7 @@ async def upsert_feature_for_billing_product(
lifecycle_phase : typing.Optional[FeatureLifecyclePhase]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
plural_name : typing.Optional[str]
@@ -2865,7 +2865,7 @@ async def upsert_feature_for_billing_product(
),
"icon": icon,
"lifecycle_phase": lifecycle_phase,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"plural_name": plural_name,
"singular_name": singular_name,
@@ -3232,7 +3232,7 @@ async def create_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[CreateFlagResponse]:
"""
@@ -3248,7 +3248,7 @@ async def create_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -3266,7 +3266,7 @@ async def create_flag(
"description": description,
"feature_id": feature_id,
"key": key,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"flag_type": "boolean",
},
@@ -3452,7 +3452,7 @@ async def update_flag(
key: str,
name: str,
feature_id: typing.Optional[str] = OMIT,
- maintainer_id: typing.Optional[str] = OMIT,
+ maintainer_account_member_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[UpdateFlagResponse]:
"""
@@ -3471,7 +3471,7 @@ async def update_flag(
feature_id : typing.Optional[str]
- maintainer_id : typing.Optional[str]
+ maintainer_account_member_id : typing.Optional[str]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -3489,7 +3489,7 @@ async def update_flag(
"description": description,
"feature_id": feature_id,
"key": key,
- "maintainer_id": maintainer_id,
+ "maintainer_account_member_id": maintainer_account_member_id,
"name": name,
"flag_type": "boolean",
},
diff --git a/src/schematic/plans/__init__.py b/src/schematic/plans/__init__.py
index 3849742..ef40e49 100644
--- a/src/schematic/plans/__init__.py
+++ b/src/schematic/plans/__init__.py
@@ -20,11 +20,14 @@
GetPlanResponse,
ListBillingProductMatchCompaniesParams,
ListBillingProductMatchCompaniesResponse,
+ ListCustomPlanBillingsParams,
+ ListCustomPlanBillingsResponse,
ListPlanIssuesParams,
ListPlanIssuesResponse,
ListPlansParams,
ListPlansResponse,
PublishPlanVersionResponse,
+ RetryCustomPlanBillingResponse,
UpdateCompanyPlansResponse,
UpdatePlanResponse,
UpsertBillingProductPlanResponse,
@@ -44,11 +47,14 @@
"GetPlanResponse": ".types",
"ListBillingProductMatchCompaniesParams": ".types",
"ListBillingProductMatchCompaniesResponse": ".types",
+ "ListCustomPlanBillingsParams": ".types",
+ "ListCustomPlanBillingsResponse": ".types",
"ListPlanIssuesParams": ".types",
"ListPlanIssuesResponse": ".types",
"ListPlansParams": ".types",
"ListPlansResponse": ".types",
"PublishPlanVersionResponse": ".types",
+ "RetryCustomPlanBillingResponse": ".types",
"UpdateCompanyPlansResponse": ".types",
"UpdatePlanResponse": ".types",
"UpsertBillingProductPlanResponse": ".types",
@@ -91,11 +97,14 @@ def __dir__():
"GetPlanResponse",
"ListBillingProductMatchCompaniesParams",
"ListBillingProductMatchCompaniesResponse",
+ "ListCustomPlanBillingsParams",
+ "ListCustomPlanBillingsResponse",
"ListPlanIssuesParams",
"ListPlanIssuesResponse",
"ListPlansParams",
"ListPlansResponse",
"PublishPlanVersionResponse",
+ "RetryCustomPlanBillingResponse",
"UpdateCompanyPlansResponse",
"UpdatePlanResponse",
"UpsertBillingProductPlanResponse",
diff --git a/src/schematic/plans/client.py b/src/schematic/plans/client.py
index d967593..3016829 100644
--- a/src/schematic/plans/client.py
+++ b/src/schematic/plans/client.py
@@ -7,6 +7,7 @@
from ..types.billing_provider_type import BillingProviderType
from ..types.charge_type import ChargeType
from ..types.custom_plan_activation_strategy import CustomPlanActivationStrategy
+from ..types.custom_plan_billing_status import CustomPlanBillingStatus
from ..types.plan_currency_price_request_body import PlanCurrencyPriceRequestBody
from ..types.plan_icon import PlanIcon
from ..types.plan_type import PlanType
@@ -21,9 +22,11 @@
from .types.delete_plan_version_response import DeletePlanVersionResponse
from .types.get_plan_response import GetPlanResponse
from .types.list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse
+from .types.list_custom_plan_billings_response import ListCustomPlanBillingsResponse
from .types.list_plan_issues_response import ListPlanIssuesResponse
from .types.list_plans_response import ListPlansResponse
from .types.publish_plan_version_response import PublishPlanVersionResponse
+from .types.retry_custom_plan_billing_response import RetryCustomPlanBillingResponse
from .types.update_company_plans_response import UpdateCompanyPlansResponse
from .types.update_plan_response import UpdatePlanResponse
from .types.upsert_billing_product_plan_response import UpsertBillingProductPlanResponse
@@ -91,6 +94,135 @@ def update_company_plans(
)
return _response.data
+ def list_custom_plan_billings(
+ self,
+ *,
+ company_id: typing.Optional[str] = None,
+ plan_id: typing.Optional[str] = None,
+ status: typing.Optional[CustomPlanBillingStatus] = None,
+ statuses: typing.Optional[
+ typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]
+ ] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> ListCustomPlanBillingsResponse:
+ """
+ Parameters
+ ----------
+ company_id : typing.Optional[str]
+ Filter by company ID
+
+ plan_id : typing.Optional[str]
+ Filter by plan ID
+
+ status : typing.Optional[CustomPlanBillingStatus]
+ Filter by billing status
+
+ statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]
+ Filter by multiple billing statuses
+
+ 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
+ -------
+ ListCustomPlanBillingsResponse
+ OK
+
+ Examples
+ --------
+ from schematic import Schematic
+
+ client = Schematic(
+ api_key="YOUR_API_KEY",
+ )
+ client.plans.list_custom_plan_billings(
+ company_id="company_id",
+ plan_id="plan_id",
+ status="active",
+ statuses=["active"],
+ limit=1000000,
+ offset=1000000,
+ )
+ """
+ _response = self._raw_client.list_custom_plan_billings(
+ company_id=company_id,
+ plan_id=plan_id,
+ status=status,
+ statuses=statuses,
+ limit=limit,
+ offset=offset,
+ request_options=request_options,
+ )
+ return _response.data
+
+ def retry_custom_plan_billing(
+ self,
+ custom_plan_billing_id: str,
+ *,
+ customer_email: str,
+ pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody],
+ activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT,
+ days_until_due: typing.Optional[int] = OMIT,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> RetryCustomPlanBillingResponse:
+ """
+ Parameters
+ ----------
+ custom_plan_billing_id : str
+ custom_plan_billing_id
+
+ customer_email : str
+
+ pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody]
+
+ activation_strategy : typing.Optional[CustomPlanActivationStrategy]
+
+ days_until_due : typing.Optional[int]
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ RetryCustomPlanBillingResponse
+ OK
+
+ Examples
+ --------
+ from schematic import Schematic, UpdatePayInAdvanceRequestBody
+
+ client = Schematic(
+ api_key="YOUR_API_KEY",
+ )
+ client.plans.retry_custom_plan_billing(
+ custom_plan_billing_id="custom_plan_billing_id",
+ customer_email="customer_email",
+ pay_in_advance=[
+ UpdatePayInAdvanceRequestBody(
+ price_id="price_id",
+ quantity=1000000,
+ )
+ ],
+ )
+ """
+ _response = self._raw_client.retry_custom_plan_billing(
+ custom_plan_billing_id,
+ customer_email=customer_email,
+ pay_in_advance=pay_in_advance,
+ activation_strategy=activation_strategy,
+ days_until_due=days_until_due,
+ request_options=request_options,
+ )
+ return _response.data
+
def create_custom_plan(
self,
*,
@@ -149,6 +281,7 @@ def list_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -169,6 +302,9 @@ def list_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -223,6 +359,7 @@ def list_plans(
)
client.plans.list_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -240,6 +377,7 @@ def list_plans(
"""
_response = self._raw_client.list_plans(
company_id=company_id,
+ exclude_company_scoped=exclude_company_scoped,
for_fallback_plan=for_fallback_plan,
for_initial_plan=for_initial_plan,
for_trial_expiry_plan=for_trial_expiry_plan,
@@ -672,6 +810,7 @@ def count_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -692,6 +831,9 @@ def count_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -746,6 +888,7 @@ def count_plans(
)
client.plans.count_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -763,6 +906,7 @@ def count_plans(
"""
_response = self._raw_client.count_plans(
company_id=company_id,
+ exclude_company_scoped=exclude_company_scoped,
for_fallback_plan=for_fallback_plan,
for_initial_plan=for_initial_plan,
for_trial_expiry_plan=for_trial_expiry_plan,
@@ -995,6 +1139,151 @@ async def main() -> None:
)
return _response.data
+ async def list_custom_plan_billings(
+ self,
+ *,
+ company_id: typing.Optional[str] = None,
+ plan_id: typing.Optional[str] = None,
+ status: typing.Optional[CustomPlanBillingStatus] = None,
+ statuses: typing.Optional[
+ typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]
+ ] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> ListCustomPlanBillingsResponse:
+ """
+ Parameters
+ ----------
+ company_id : typing.Optional[str]
+ Filter by company ID
+
+ plan_id : typing.Optional[str]
+ Filter by plan ID
+
+ status : typing.Optional[CustomPlanBillingStatus]
+ Filter by billing status
+
+ statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]
+ Filter by multiple billing statuses
+
+ 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
+ -------
+ ListCustomPlanBillingsResponse
+ OK
+
+ Examples
+ --------
+ import asyncio
+
+ from schematic import AsyncSchematic
+
+ client = AsyncSchematic(
+ api_key="YOUR_API_KEY",
+ )
+
+
+ async def main() -> None:
+ await client.plans.list_custom_plan_billings(
+ company_id="company_id",
+ plan_id="plan_id",
+ status="active",
+ statuses=["active"],
+ limit=1000000,
+ offset=1000000,
+ )
+
+
+ asyncio.run(main())
+ """
+ _response = await self._raw_client.list_custom_plan_billings(
+ company_id=company_id,
+ plan_id=plan_id,
+ status=status,
+ statuses=statuses,
+ limit=limit,
+ offset=offset,
+ request_options=request_options,
+ )
+ return _response.data
+
+ async def retry_custom_plan_billing(
+ self,
+ custom_plan_billing_id: str,
+ *,
+ customer_email: str,
+ pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody],
+ activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT,
+ days_until_due: typing.Optional[int] = OMIT,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> RetryCustomPlanBillingResponse:
+ """
+ Parameters
+ ----------
+ custom_plan_billing_id : str
+ custom_plan_billing_id
+
+ customer_email : str
+
+ pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody]
+
+ activation_strategy : typing.Optional[CustomPlanActivationStrategy]
+
+ days_until_due : typing.Optional[int]
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ RetryCustomPlanBillingResponse
+ OK
+
+ Examples
+ --------
+ import asyncio
+
+ from schematic import AsyncSchematic, UpdatePayInAdvanceRequestBody
+
+ client = AsyncSchematic(
+ api_key="YOUR_API_KEY",
+ )
+
+
+ async def main() -> None:
+ await client.plans.retry_custom_plan_billing(
+ custom_plan_billing_id="custom_plan_billing_id",
+ customer_email="customer_email",
+ pay_in_advance=[
+ UpdatePayInAdvanceRequestBody(
+ price_id="price_id",
+ quantity=1000000,
+ )
+ ],
+ )
+
+
+ asyncio.run(main())
+ """
+ _response = await self._raw_client.retry_custom_plan_billing(
+ custom_plan_billing_id,
+ customer_email=customer_email,
+ pay_in_advance=pay_in_advance,
+ activation_strategy=activation_strategy,
+ days_until_due=days_until_due,
+ request_options=request_options,
+ )
+ return _response.data
+
async def create_custom_plan(
self,
*,
@@ -1061,6 +1350,7 @@ async def list_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -1081,6 +1371,9 @@ async def list_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -1140,6 +1433,7 @@ async def list_plans(
async def main() -> None:
await client.plans.list_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -1160,6 +1454,7 @@ async def main() -> None:
"""
_response = await self._raw_client.list_plans(
company_id=company_id,
+ exclude_company_scoped=exclude_company_scoped,
for_fallback_plan=for_fallback_plan,
for_initial_plan=for_initial_plan,
for_trial_expiry_plan=for_trial_expiry_plan,
@@ -1658,6 +1953,7 @@ async def count_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -1678,6 +1974,9 @@ async def count_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -1737,6 +2036,7 @@ async def count_plans(
async def main() -> None:
await client.plans.count_plans(
company_id="company_id",
+ exclude_company_scoped=True,
for_fallback_plan=True,
for_initial_plan=True,
for_trial_expiry_plan=True,
@@ -1757,6 +2057,7 @@ async def main() -> None:
"""
_response = await self._raw_client.count_plans(
company_id=company_id,
+ exclude_company_scoped=exclude_company_scoped,
for_fallback_plan=for_fallback_plan,
for_initial_plan=for_initial_plan,
for_trial_expiry_plan=for_trial_expiry_plan,
diff --git a/src/schematic/plans/raw_client.py b/src/schematic/plans/raw_client.py
index 1e7268c..4e31e15 100644
--- a/src/schematic/plans/raw_client.py
+++ b/src/schematic/plans/raw_client.py
@@ -20,6 +20,7 @@
from ..types.billing_provider_type import BillingProviderType
from ..types.charge_type import ChargeType
from ..types.custom_plan_activation_strategy import CustomPlanActivationStrategy
+from ..types.custom_plan_billing_status import CustomPlanBillingStatus
from ..types.plan_currency_price_request_body import PlanCurrencyPriceRequestBody
from ..types.plan_icon import PlanIcon
from ..types.plan_type import PlanType
@@ -33,9 +34,11 @@
from .types.delete_plan_version_response import DeletePlanVersionResponse
from .types.get_plan_response import GetPlanResponse
from .types.list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse
+from .types.list_custom_plan_billings_response import ListCustomPlanBillingsResponse
from .types.list_plan_issues_response import ListPlanIssuesResponse
from .types.list_plans_response import ListPlansResponse
from .types.publish_plan_version_response import PublishPlanVersionResponse
+from .types.retry_custom_plan_billing_response import RetryCustomPlanBillingResponse
from .types.update_company_plans_response import UpdateCompanyPlansResponse
from .types.update_plan_response import UpdatePlanResponse
from .types.upsert_billing_product_plan_response import UpsertBillingProductPlanResponse
@@ -167,6 +170,266 @@ def update_company_plans(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
+ def list_custom_plan_billings(
+ self,
+ *,
+ company_id: typing.Optional[str] = None,
+ plan_id: typing.Optional[str] = None,
+ status: typing.Optional[CustomPlanBillingStatus] = None,
+ statuses: typing.Optional[
+ typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]
+ ] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> HttpResponse[ListCustomPlanBillingsResponse]:
+ """
+ Parameters
+ ----------
+ company_id : typing.Optional[str]
+ Filter by company ID
+
+ plan_id : typing.Optional[str]
+ Filter by plan ID
+
+ status : typing.Optional[CustomPlanBillingStatus]
+ Filter by billing status
+
+ statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]
+ Filter by multiple billing statuses
+
+ 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[ListCustomPlanBillingsResponse]
+ OK
+ """
+ _response = self._client_wrapper.httpx_client.request(
+ "custom-plan-billings",
+ method="GET",
+ params={
+ "company_id": company_id,
+ "plan_id": plan_id,
+ "status": status,
+ "statuses": statuses,
+ "limit": limit,
+ "offset": offset,
+ },
+ request_options=request_options,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ _data = typing.cast(
+ ListCustomPlanBillingsResponse,
+ parse_obj_as(
+ type_=ListCustomPlanBillingsResponse, # 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 retry_custom_plan_billing(
+ self,
+ custom_plan_billing_id: str,
+ *,
+ customer_email: str,
+ pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody],
+ activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT,
+ days_until_due: typing.Optional[int] = OMIT,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> HttpResponse[RetryCustomPlanBillingResponse]:
+ """
+ Parameters
+ ----------
+ custom_plan_billing_id : str
+ custom_plan_billing_id
+
+ customer_email : str
+
+ pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody]
+
+ activation_strategy : typing.Optional[CustomPlanActivationStrategy]
+
+ days_until_due : typing.Optional[int]
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ HttpResponse[RetryCustomPlanBillingResponse]
+ OK
+ """
+ _response = self._client_wrapper.httpx_client.request(
+ f"custom-plan-billings/{jsonable_encoder(custom_plan_billing_id)}/retry",
+ method="PUT",
+ json={
+ "activation_strategy": activation_strategy,
+ "customer_email": customer_email,
+ "days_until_due": days_until_due,
+ "pay_in_advance": convert_and_respect_annotation_metadata(
+ object_=pay_in_advance, annotation=typing.Sequence[UpdatePayInAdvanceRequestBody], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
+ request_options=request_options,
+ omit=OMIT,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ _data = typing.cast(
+ RetryCustomPlanBillingResponse,
+ parse_obj_as(
+ type_=RetryCustomPlanBillingResponse, # 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_custom_plan(
self,
*,
@@ -296,6 +559,7 @@ def list_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -316,6 +580,9 @@ def list_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -366,6 +633,7 @@ def list_plans(
method="GET",
params={
"company_id": company_id,
+ "exclude_company_scoped": exclude_company_scoped,
"for_fallback_plan": for_fallback_plan,
"for_initial_plan": for_initial_plan,
"for_trial_expiry_plan": for_trial_expiry_plan,
@@ -1435,6 +1703,7 @@ def count_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -1455,6 +1724,9 @@ def count_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -1505,6 +1777,7 @@ def count_plans(
method="GET",
params={
"company_id": company_id,
+ "exclude_company_scoped": exclude_company_scoped,
"for_fallback_plan": for_fallback_plan,
"for_initial_plan": for_initial_plan,
"for_trial_expiry_plan": for_trial_expiry_plan,
@@ -2074,6 +2347,266 @@ async def update_company_plans(
status_code=_response.status_code, headers=dict(_response.headers), body=_response_json
)
+ async def list_custom_plan_billings(
+ self,
+ *,
+ company_id: typing.Optional[str] = None,
+ plan_id: typing.Optional[str] = None,
+ status: typing.Optional[CustomPlanBillingStatus] = None,
+ statuses: typing.Optional[
+ typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]
+ ] = None,
+ limit: typing.Optional[int] = None,
+ offset: typing.Optional[int] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[ListCustomPlanBillingsResponse]:
+ """
+ Parameters
+ ----------
+ company_id : typing.Optional[str]
+ Filter by company ID
+
+ plan_id : typing.Optional[str]
+ Filter by plan ID
+
+ status : typing.Optional[CustomPlanBillingStatus]
+ Filter by billing status
+
+ statuses : typing.Optional[typing.Union[CustomPlanBillingStatus, typing.Sequence[CustomPlanBillingStatus]]]
+ Filter by multiple billing statuses
+
+ 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[ListCustomPlanBillingsResponse]
+ OK
+ """
+ _response = await self._client_wrapper.httpx_client.request(
+ "custom-plan-billings",
+ method="GET",
+ params={
+ "company_id": company_id,
+ "plan_id": plan_id,
+ "status": status,
+ "statuses": statuses,
+ "limit": limit,
+ "offset": offset,
+ },
+ request_options=request_options,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ _data = typing.cast(
+ ListCustomPlanBillingsResponse,
+ parse_obj_as(
+ type_=ListCustomPlanBillingsResponse, # 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 retry_custom_plan_billing(
+ self,
+ custom_plan_billing_id: str,
+ *,
+ customer_email: str,
+ pay_in_advance: typing.Sequence[UpdatePayInAdvanceRequestBody],
+ activation_strategy: typing.Optional[CustomPlanActivationStrategy] = OMIT,
+ days_until_due: typing.Optional[int] = OMIT,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> AsyncHttpResponse[RetryCustomPlanBillingResponse]:
+ """
+ Parameters
+ ----------
+ custom_plan_billing_id : str
+ custom_plan_billing_id
+
+ customer_email : str
+
+ pay_in_advance : typing.Sequence[UpdatePayInAdvanceRequestBody]
+
+ activation_strategy : typing.Optional[CustomPlanActivationStrategy]
+
+ days_until_due : typing.Optional[int]
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ AsyncHttpResponse[RetryCustomPlanBillingResponse]
+ OK
+ """
+ _response = await self._client_wrapper.httpx_client.request(
+ f"custom-plan-billings/{jsonable_encoder(custom_plan_billing_id)}/retry",
+ method="PUT",
+ json={
+ "activation_strategy": activation_strategy,
+ "customer_email": customer_email,
+ "days_until_due": days_until_due,
+ "pay_in_advance": convert_and_respect_annotation_metadata(
+ object_=pay_in_advance, annotation=typing.Sequence[UpdatePayInAdvanceRequestBody], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
+ request_options=request_options,
+ omit=OMIT,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ _data = typing.cast(
+ RetryCustomPlanBillingResponse,
+ parse_obj_as(
+ type_=RetryCustomPlanBillingResponse, # 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 create_custom_plan(
self,
*,
@@ -2203,6 +2736,7 @@ async def list_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -2223,6 +2757,9 @@ async def list_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -2273,6 +2810,7 @@ async def list_plans(
method="GET",
params={
"company_id": company_id,
+ "exclude_company_scoped": exclude_company_scoped,
"for_fallback_plan": for_fallback_plan,
"for_initial_plan": for_initial_plan,
"for_trial_expiry_plan": for_trial_expiry_plan,
@@ -3342,6 +3880,7 @@ async def count_plans(
self,
*,
company_id: typing.Optional[str] = None,
+ exclude_company_scoped: typing.Optional[bool] = None,
for_fallback_plan: typing.Optional[bool] = None,
for_initial_plan: typing.Optional[bool] = None,
for_trial_expiry_plan: typing.Optional[bool] = None,
@@ -3362,6 +3901,9 @@ async def count_plans(
----------
company_id : typing.Optional[str]
+ exclude_company_scoped : typing.Optional[bool]
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+
for_fallback_plan : typing.Optional[bool]
Filter for plans valid as fallback plans (not linked to billing)
@@ -3412,6 +3954,7 @@ async def count_plans(
method="GET",
params={
"company_id": company_id,
+ "exclude_company_scoped": exclude_company_scoped,
"for_fallback_plan": for_fallback_plan,
"for_initial_plan": for_initial_plan,
"for_trial_expiry_plan": for_trial_expiry_plan,
diff --git a/src/schematic/plans/types/__init__.py b/src/schematic/plans/types/__init__.py
index 445010c..0d4ae7c 100644
--- a/src/schematic/plans/types/__init__.py
+++ b/src/schematic/plans/types/__init__.py
@@ -19,11 +19,14 @@
from .get_plan_response import GetPlanResponse
from .list_billing_product_match_companies_params import ListBillingProductMatchCompaniesParams
from .list_billing_product_match_companies_response import ListBillingProductMatchCompaniesResponse
+ from .list_custom_plan_billings_params import ListCustomPlanBillingsParams
+ from .list_custom_plan_billings_response import ListCustomPlanBillingsResponse
from .list_plan_issues_params import ListPlanIssuesParams
from .list_plan_issues_response import ListPlanIssuesResponse
from .list_plans_params import ListPlansParams
from .list_plans_response import ListPlansResponse
from .publish_plan_version_response import PublishPlanVersionResponse
+ from .retry_custom_plan_billing_response import RetryCustomPlanBillingResponse
from .update_company_plans_response import UpdateCompanyPlansResponse
from .update_plan_response import UpdatePlanResponse
from .upsert_billing_product_plan_response import UpsertBillingProductPlanResponse
@@ -42,11 +45,14 @@
"GetPlanResponse": ".get_plan_response",
"ListBillingProductMatchCompaniesParams": ".list_billing_product_match_companies_params",
"ListBillingProductMatchCompaniesResponse": ".list_billing_product_match_companies_response",
+ "ListCustomPlanBillingsParams": ".list_custom_plan_billings_params",
+ "ListCustomPlanBillingsResponse": ".list_custom_plan_billings_response",
"ListPlanIssuesParams": ".list_plan_issues_params",
"ListPlanIssuesResponse": ".list_plan_issues_response",
"ListPlansParams": ".list_plans_params",
"ListPlansResponse": ".list_plans_response",
"PublishPlanVersionResponse": ".publish_plan_version_response",
+ "RetryCustomPlanBillingResponse": ".retry_custom_plan_billing_response",
"UpdateCompanyPlansResponse": ".update_company_plans_response",
"UpdatePlanResponse": ".update_plan_response",
"UpsertBillingProductPlanResponse": ".upsert_billing_product_plan_response",
@@ -89,11 +95,14 @@ def __dir__():
"GetPlanResponse",
"ListBillingProductMatchCompaniesParams",
"ListBillingProductMatchCompaniesResponse",
+ "ListCustomPlanBillingsParams",
+ "ListCustomPlanBillingsResponse",
"ListPlanIssuesParams",
"ListPlanIssuesResponse",
"ListPlansParams",
"ListPlansResponse",
"PublishPlanVersionResponse",
+ "RetryCustomPlanBillingResponse",
"UpdateCompanyPlansResponse",
"UpdatePlanResponse",
"UpsertBillingProductPlanResponse",
diff --git a/src/schematic/plans/types/count_plans_params.py b/src/schematic/plans/types/count_plans_params.py
index 7a1942b..de92dfb 100644
--- a/src/schematic/plans/types/count_plans_params.py
+++ b/src/schematic/plans/types/count_plans_params.py
@@ -13,6 +13,11 @@ class CountPlansParams(UniversalBaseModel):
"""
company_id: typing.Optional[str] = None
+ exclude_company_scoped: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+ """
+
for_fallback_plan: typing.Optional[bool] = pydantic.Field(default=None)
"""
Filter for plans valid as fallback plans (not linked to billing)
diff --git a/src/schematic/plans/types/list_custom_plan_billings_params.py b/src/schematic/plans/types/list_custom_plan_billings_params.py
new file mode 100644
index 0000000..c26c871
--- /dev/null
+++ b/src/schematic/plans/types/list_custom_plan_billings_params.py
@@ -0,0 +1,52 @@
+# 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.custom_plan_billing_status import CustomPlanBillingStatus
+
+
+class ListCustomPlanBillingsParams(UniversalBaseModel):
+ """
+ Input parameters
+ """
+
+ company_id: typing.Optional[str] = pydantic.Field(default=None)
+ """
+ Filter by company ID
+ """
+
+ limit: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Page limit (default 100)
+ """
+
+ offset: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Page offset (default 0)
+ """
+
+ plan_id: typing.Optional[str] = pydantic.Field(default=None)
+ """
+ Filter by plan ID
+ """
+
+ status: typing.Optional[CustomPlanBillingStatus] = pydantic.Field(default=None)
+ """
+ Filter by billing status
+ """
+
+ statuses: typing.Optional[typing.List[CustomPlanBillingStatus]] = pydantic.Field(default=None)
+ """
+ Filter by multiple billing statuses
+ """
+
+ 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/companies/types/delete_plan_trait_response.py b/src/schematic/plans/types/list_custom_plan_billings_response.py
similarity index 60%
rename from src/schematic/companies/types/delete_plan_trait_response.py
rename to src/schematic/plans/types/list_custom_plan_billings_response.py
index 5381083..a902b0a 100644
--- a/src/schematic/companies/types/delete_plan_trait_response.py
+++ b/src/schematic/plans/types/list_custom_plan_billings_response.py
@@ -4,12 +4,13 @@
import pydantic
from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from ...types.delete_response import DeleteResponse
+from ...types.custom_plan_billing_response_data import CustomPlanBillingResponseData
+from .list_custom_plan_billings_params import ListCustomPlanBillingsParams
-class DeletePlanTraitResponse(UniversalBaseModel):
- data: DeleteResponse
- params: typing.Dict[str, typing.Any] = pydantic.Field()
+class ListCustomPlanBillingsResponse(UniversalBaseModel):
+ data: typing.List[CustomPlanBillingResponseData]
+ params: ListCustomPlanBillingsParams = pydantic.Field()
"""
Input parameters
"""
diff --git a/src/schematic/plans/types/list_plans_params.py b/src/schematic/plans/types/list_plans_params.py
index bd53fb1..ad46bb6 100644
--- a/src/schematic/plans/types/list_plans_params.py
+++ b/src/schematic/plans/types/list_plans_params.py
@@ -13,6 +13,11 @@ class ListPlansParams(UniversalBaseModel):
"""
company_id: typing.Optional[str] = None
+ exclude_company_scoped: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Exclude plans that are scoped to a company (custom plans assigned to a company)
+ """
+
for_fallback_plan: typing.Optional[bool] = pydantic.Field(default=None)
"""
Filter for plans valid as fallback plans (not linked to billing)
diff --git a/src/schematic/companies/types/create_plan_trait_response.py b/src/schematic/plans/types/retry_custom_plan_billing_response.py
similarity index 75%
rename from src/schematic/companies/types/create_plan_trait_response.py
rename to src/schematic/plans/types/retry_custom_plan_billing_response.py
index b5516fd..f3b11f8 100644
--- a/src/schematic/companies/types/create_plan_trait_response.py
+++ b/src/schematic/plans/types/retry_custom_plan_billing_response.py
@@ -4,11 +4,11 @@
import pydantic
from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from ...types.plan_trait_response_data import PlanTraitResponseData
+from ...types.custom_plan_billing_response_data import CustomPlanBillingResponseData
-class CreatePlanTraitResponse(UniversalBaseModel):
- data: PlanTraitResponseData
+class RetryCustomPlanBillingResponse(UniversalBaseModel):
+ data: CustomPlanBillingResponseData
params: typing.Dict[str, typing.Any] = pydantic.Field()
"""
Input parameters
diff --git a/src/schematic/raw_base_client.py b/src/schematic/raw_base_client.py
deleted file mode 100644
index e6e9dce..0000000
--- a/src/schematic/raw_base_client.py
+++ /dev/null
@@ -1,150 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-from json.decoder import JSONDecodeError
-
-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 jsonable_encoder
-from .core.parse_error import ParsingError
-from .core.request_options import RequestOptions
-from pydantic import ValidationError
-
-
-class RawBaseSchematic:
- def __init__(self, *, client_wrapper: SyncClientWrapper):
- self._client_wrapper = client_wrapper
-
- def put_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[None]:
- """
- Parameters
- ----------
- plan_audience_id : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[None]
- """
- _response = self._client_wrapper.httpx_client.request(
- f"plan-audiences/{jsonable_encoder(plan_audience_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_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> HttpResponse[None]:
- """
- Parameters
- ----------
- plan_audience_id : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[None]
- """
- _response = self._client_wrapper.httpx_client.request(
- f"plan-audiences/{jsonable_encoder(plan_audience_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)
-
-
-class AsyncRawBaseSchematic:
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
- self._client_wrapper = client_wrapper
-
- async def put_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[None]:
- """
- Parameters
- ----------
- plan_audience_id : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- AsyncHttpResponse[None]
- """
- _response = await self._client_wrapper.httpx_client.request(
- f"plan-audiences/{jsonable_encoder(plan_audience_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_plan_audiences_plan_audience_id(
- self, plan_audience_id: str, *, request_options: typing.Optional[RequestOptions] = None
- ) -> AsyncHttpResponse[None]:
- """
- Parameters
- ----------
- plan_audience_id : str
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- AsyncHttpResponse[None]
- """
- _response = await self._client_wrapper.httpx_client.request(
- f"plan-audiences/{jsonable_encoder(plan_audience_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)
diff --git a/src/schematic/types/__init__.py b/src/schematic/types/__init__.py
index 8038c83..0ce3ea8 100644
--- a/src/schematic/types/__init__.py
+++ b/src/schematic/types/__init__.py
@@ -83,6 +83,7 @@
from .company_plan_with_billing_sub_view import CompanyPlanWithBillingSubView
from .company_response_data import CompanyResponseData
from .company_subscription_response_data import CompanySubscriptionResponseData
+ from .comparable_operator import ComparableOperator
from .compatible_plans import CompatiblePlans
from .compatible_plans_response_data import CompatiblePlansResponseData
from .component_capabilities import ComponentCapabilities
@@ -95,44 +96,24 @@
from .component_settings_response_data import ComponentSettingsResponseData
from .component_state import ComponentState
from .condition import Condition
- from .condition_condition_type import ConditionConditionType
from .condition_group import ConditionGroup
from .condition_group_response_data import ConditionGroupResponseData
from .condition_group_view import ConditionGroupView
- from .condition_metric_period import ConditionMetricPeriod
- from .condition_metric_period_month_reset import ConditionMetricPeriodMonthReset
- from .condition_operator import ConditionOperator
from .condition_response_data import ConditionResponseData
+ from .condition_type import ConditionType
from .condition_view import ConditionView
from .count_response import CountResponse
from .coupon_request_body import CouponRequestBody
from .create_billing_plan_credit_grant_request_body import CreateBillingPlanCreditGrantRequestBody
from .create_billing_price_tier_request_body import CreateBillingPriceTierRequestBody
from .create_entitlement_in_bundle_request_body import CreateEntitlementInBundleRequestBody
- from .create_entitlement_in_bundle_request_body_metric_period import (
- CreateEntitlementInBundleRequestBodyMetricPeriod,
- )
- from .create_entitlement_in_bundle_request_body_metric_period_month_reset import (
- CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset,
- )
from .create_entitlement_req_common import CreateEntitlementReqCommon
- from .create_entitlement_req_common_metric_period import CreateEntitlementReqCommonMetricPeriod
- from .create_entitlement_req_common_metric_period_month_reset import (
- CreateEntitlementReqCommonMetricPeriodMonthReset,
- )
from .create_event_request_body import CreateEventRequestBody
from .create_flag_request_body import CreateFlagRequestBody
from .create_or_update_condition_group_request_body import CreateOrUpdateConditionGroupRequestBody
from .create_or_update_condition_request_body import CreateOrUpdateConditionRequestBody
- from .create_or_update_condition_request_body_condition_type import CreateOrUpdateConditionRequestBodyConditionType
- from .create_or_update_condition_request_body_metric_period import CreateOrUpdateConditionRequestBodyMetricPeriod
- from .create_or_update_condition_request_body_metric_period_month_reset import (
- CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset,
- )
- from .create_or_update_condition_request_body_operator import CreateOrUpdateConditionRequestBodyOperator
from .create_or_update_flag_request_body import CreateOrUpdateFlagRequestBody
from .create_or_update_rule_request_body import CreateOrUpdateRuleRequestBody
- from .create_or_update_rule_request_body_rule_type import CreateOrUpdateRuleRequestBodyRuleType
from .create_plan_request_body import CreatePlanRequestBody
from .create_price_tier_request_body import CreatePriceTierRequestBody
from .credit_auto_topup_amount_type import CreditAutoTopupAmountType
@@ -205,8 +186,7 @@
from .feature_company_user_response_data import FeatureCompanyUserResponseData
from .feature_detail_response_data import FeatureDetailResponseData
from .feature_entitlement import FeatureEntitlement
- from .feature_entitlement_metric_period import FeatureEntitlementMetricPeriod
- from .feature_entitlement_month_reset import FeatureEntitlementMonthReset
+ from .feature_in_plan_response_data import FeatureInPlanResponseData
from .feature_ledger_response_data import FeatureLedgerResponseData
from .feature_lifecycle_phase import FeatureLifecyclePhase
from .feature_response_data import FeatureResponseData
@@ -217,6 +197,7 @@
from .feature_usage_time_series_response_data import FeatureUsageTimeSeriesResponseData
from .feature_view import FeatureView
from .flag_detail_response_data import FlagDetailResponseData
+ from .flag_in_plan_response_data import FlagInPlanResponseData
from .flag_response_data import FlagResponseData
from .flag_type import FlagType
from .flag_view import FlagView
@@ -233,6 +214,8 @@
from .manage_plan_request import ManagePlanRequest
from .manage_plan_response_response_data import ManagePlanResponseResponseData
from .meter_request_body import MeterRequestBody
+ from .metric_period import MetricPeriod
+ from .metric_period_month_reset import MetricPeriodMonthReset
from .ordered_plans_in_group import OrderedPlansInGroup
from .payment_method_request_body import PaymentMethodRequestBody
from .payment_method_response_data import PaymentMethodResponseData
@@ -288,31 +271,24 @@
from .rule_condition_response_data import RuleConditionResponseData
from .rule_detail_response_data import RuleDetailResponseData
from .rule_response_data import RuleResponseData
- from .rule_rule_type import RuleRuleType
+ from .rule_type import RuleType
from .rule_view import RuleView
from .rules_detail_response_data import RulesDetailResponseData
from .rules_engine_schema_version import RulesEngineSchemaVersion
from .rulesengine_check_flag_result import RulesengineCheckFlagResult
- from .rulesengine_check_flag_result_feature_usage_period import RulesengineCheckFlagResultFeatureUsagePeriod
- from .rulesengine_check_flag_result_rule_type import RulesengineCheckFlagResultRuleType
from .rulesengine_company import RulesengineCompany
from .rulesengine_company_metric import RulesengineCompanyMetric
- from .rulesengine_company_metric_month_reset import RulesengineCompanyMetricMonthReset
- from .rulesengine_company_metric_period import RulesengineCompanyMetricPeriod
from .rulesengine_condition import RulesengineCondition
- from .rulesengine_condition_condition_type import RulesengineConditionConditionType
from .rulesengine_condition_group import RulesengineConditionGroup
- from .rulesengine_condition_metric_period import RulesengineConditionMetricPeriod
- from .rulesengine_condition_metric_period_month_reset import RulesengineConditionMetricPeriodMonthReset
- from .rulesengine_condition_operator import RulesengineConditionOperator
+ from .rulesengine_condition_type import RulesengineConditionType
from .rulesengine_entitlement_value_type import RulesengineEntitlementValueType
from .rulesengine_entity_type import RulesengineEntityType
from .rulesengine_feature_entitlement import RulesengineFeatureEntitlement
- from .rulesengine_feature_entitlement_metric_period import RulesengineFeatureEntitlementMetricPeriod
- from .rulesengine_feature_entitlement_month_reset import RulesengineFeatureEntitlementMonthReset
from .rulesengine_flag import RulesengineFlag
+ from .rulesengine_metric_period import RulesengineMetricPeriod
+ from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset
from .rulesengine_rule import RulesengineRule
- from .rulesengine_rule_rule_type import RulesengineRuleRuleType
+ from .rulesengine_rule_type import RulesengineRuleType
from .rulesengine_subscription import RulesengineSubscription
from .rulesengine_trait import RulesengineTrait
from .rulesengine_trait_definition import RulesengineTraitDefinition
@@ -341,10 +317,6 @@
from .update_billing_plan_credit_grant_request_body import UpdateBillingPlanCreditGrantRequestBody
from .update_credit_bundle_request_body import UpdateCreditBundleRequestBody
from .update_entitlement_req_common import UpdateEntitlementReqCommon
- from .update_entitlement_req_common_metric_period import UpdateEntitlementReqCommonMetricPeriod
- from .update_entitlement_req_common_metric_period_month_reset import (
- UpdateEntitlementReqCommonMetricPeriodMonthReset,
- )
from .update_pay_in_advance_request_body import UpdatePayInAdvanceRequestBody
from .update_plan_request_body import UpdatePlanRequestBody
from .update_plan_trait_trait_request_body import UpdatePlanTraitTraitRequestBody
@@ -447,6 +419,7 @@
"CompanyPlanWithBillingSubView": ".company_plan_with_billing_sub_view",
"CompanyResponseData": ".company_response_data",
"CompanySubscriptionResponseData": ".company_subscription_response_data",
+ "ComparableOperator": ".comparable_operator",
"CompatiblePlans": ".compatible_plans",
"CompatiblePlansResponseData": ".compatible_plans_response_data",
"ComponentCapabilities": ".component_capabilities",
@@ -459,36 +432,24 @@
"ComponentSettingsResponseData": ".component_settings_response_data",
"ComponentState": ".component_state",
"Condition": ".condition",
- "ConditionConditionType": ".condition_condition_type",
"ConditionGroup": ".condition_group",
"ConditionGroupResponseData": ".condition_group_response_data",
"ConditionGroupView": ".condition_group_view",
- "ConditionMetricPeriod": ".condition_metric_period",
- "ConditionMetricPeriodMonthReset": ".condition_metric_period_month_reset",
- "ConditionOperator": ".condition_operator",
"ConditionResponseData": ".condition_response_data",
+ "ConditionType": ".condition_type",
"ConditionView": ".condition_view",
"CountResponse": ".count_response",
"CouponRequestBody": ".coupon_request_body",
"CreateBillingPlanCreditGrantRequestBody": ".create_billing_plan_credit_grant_request_body",
"CreateBillingPriceTierRequestBody": ".create_billing_price_tier_request_body",
"CreateEntitlementInBundleRequestBody": ".create_entitlement_in_bundle_request_body",
- "CreateEntitlementInBundleRequestBodyMetricPeriod": ".create_entitlement_in_bundle_request_body_metric_period",
- "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset": ".create_entitlement_in_bundle_request_body_metric_period_month_reset",
"CreateEntitlementReqCommon": ".create_entitlement_req_common",
- "CreateEntitlementReqCommonMetricPeriod": ".create_entitlement_req_common_metric_period",
- "CreateEntitlementReqCommonMetricPeriodMonthReset": ".create_entitlement_req_common_metric_period_month_reset",
"CreateEventRequestBody": ".create_event_request_body",
"CreateFlagRequestBody": ".create_flag_request_body",
"CreateOrUpdateConditionGroupRequestBody": ".create_or_update_condition_group_request_body",
"CreateOrUpdateConditionRequestBody": ".create_or_update_condition_request_body",
- "CreateOrUpdateConditionRequestBodyConditionType": ".create_or_update_condition_request_body_condition_type",
- "CreateOrUpdateConditionRequestBodyMetricPeriod": ".create_or_update_condition_request_body_metric_period",
- "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset": ".create_or_update_condition_request_body_metric_period_month_reset",
- "CreateOrUpdateConditionRequestBodyOperator": ".create_or_update_condition_request_body_operator",
"CreateOrUpdateFlagRequestBody": ".create_or_update_flag_request_body",
"CreateOrUpdateRuleRequestBody": ".create_or_update_rule_request_body",
- "CreateOrUpdateRuleRequestBodyRuleType": ".create_or_update_rule_request_body_rule_type",
"CreatePlanRequestBody": ".create_plan_request_body",
"CreatePriceTierRequestBody": ".create_price_tier_request_body",
"CreditAutoTopupAmountType": ".credit_auto_topup_amount_type",
@@ -561,8 +522,7 @@
"FeatureCompanyUserResponseData": ".feature_company_user_response_data",
"FeatureDetailResponseData": ".feature_detail_response_data",
"FeatureEntitlement": ".feature_entitlement",
- "FeatureEntitlementMetricPeriod": ".feature_entitlement_metric_period",
- "FeatureEntitlementMonthReset": ".feature_entitlement_month_reset",
+ "FeatureInPlanResponseData": ".feature_in_plan_response_data",
"FeatureLedgerResponseData": ".feature_ledger_response_data",
"FeatureLifecyclePhase": ".feature_lifecycle_phase",
"FeatureResponseData": ".feature_response_data",
@@ -573,6 +533,7 @@
"FeatureUsageTimeSeriesResponseData": ".feature_usage_time_series_response_data",
"FeatureView": ".feature_view",
"FlagDetailResponseData": ".flag_detail_response_data",
+ "FlagInPlanResponseData": ".flag_in_plan_response_data",
"FlagResponseData": ".flag_response_data",
"FlagType": ".flag_type",
"FlagView": ".flag_view",
@@ -589,6 +550,8 @@
"ManagePlanRequest": ".manage_plan_request",
"ManagePlanResponseResponseData": ".manage_plan_response_response_data",
"MeterRequestBody": ".meter_request_body",
+ "MetricPeriod": ".metric_period",
+ "MetricPeriodMonthReset": ".metric_period_month_reset",
"OrderedPlansInGroup": ".ordered_plans_in_group",
"PaymentMethodRequestBody": ".payment_method_request_body",
"PaymentMethodResponseData": ".payment_method_response_data",
@@ -644,31 +607,24 @@
"RuleConditionResponseData": ".rule_condition_response_data",
"RuleDetailResponseData": ".rule_detail_response_data",
"RuleResponseData": ".rule_response_data",
- "RuleRuleType": ".rule_rule_type",
+ "RuleType": ".rule_type",
"RuleView": ".rule_view",
"RulesDetailResponseData": ".rules_detail_response_data",
"RulesEngineSchemaVersion": ".rules_engine_schema_version",
"RulesengineCheckFlagResult": ".rulesengine_check_flag_result",
- "RulesengineCheckFlagResultFeatureUsagePeriod": ".rulesengine_check_flag_result_feature_usage_period",
- "RulesengineCheckFlagResultRuleType": ".rulesengine_check_flag_result_rule_type",
"RulesengineCompany": ".rulesengine_company",
"RulesengineCompanyMetric": ".rulesengine_company_metric",
- "RulesengineCompanyMetricMonthReset": ".rulesengine_company_metric_month_reset",
- "RulesengineCompanyMetricPeriod": ".rulesengine_company_metric_period",
"RulesengineCondition": ".rulesengine_condition",
- "RulesengineConditionConditionType": ".rulesengine_condition_condition_type",
"RulesengineConditionGroup": ".rulesengine_condition_group",
- "RulesengineConditionMetricPeriod": ".rulesengine_condition_metric_period",
- "RulesengineConditionMetricPeriodMonthReset": ".rulesengine_condition_metric_period_month_reset",
- "RulesengineConditionOperator": ".rulesengine_condition_operator",
+ "RulesengineConditionType": ".rulesengine_condition_type",
"RulesengineEntitlementValueType": ".rulesengine_entitlement_value_type",
"RulesengineEntityType": ".rulesengine_entity_type",
"RulesengineFeatureEntitlement": ".rulesengine_feature_entitlement",
- "RulesengineFeatureEntitlementMetricPeriod": ".rulesengine_feature_entitlement_metric_period",
- "RulesengineFeatureEntitlementMonthReset": ".rulesengine_feature_entitlement_month_reset",
"RulesengineFlag": ".rulesengine_flag",
+ "RulesengineMetricPeriod": ".rulesengine_metric_period",
+ "RulesengineMetricPeriodMonthReset": ".rulesengine_metric_period_month_reset",
"RulesengineRule": ".rulesengine_rule",
- "RulesengineRuleRuleType": ".rulesengine_rule_rule_type",
+ "RulesengineRuleType": ".rulesengine_rule_type",
"RulesengineSubscription": ".rulesengine_subscription",
"RulesengineTrait": ".rulesengine_trait",
"RulesengineTraitDefinition": ".rulesengine_trait_definition",
@@ -697,8 +653,6 @@
"UpdateBillingPlanCreditGrantRequestBody": ".update_billing_plan_credit_grant_request_body",
"UpdateCreditBundleRequestBody": ".update_credit_bundle_request_body",
"UpdateEntitlementReqCommon": ".update_entitlement_req_common",
- "UpdateEntitlementReqCommonMetricPeriod": ".update_entitlement_req_common_metric_period",
- "UpdateEntitlementReqCommonMetricPeriodMonthReset": ".update_entitlement_req_common_metric_period_month_reset",
"UpdatePayInAdvanceRequestBody": ".update_pay_in_advance_request_body",
"UpdatePlanRequestBody": ".update_plan_request_body",
"UpdatePlanTraitTraitRequestBody": ".update_plan_trait_trait_request_body",
@@ -825,6 +779,7 @@ def __dir__():
"CompanyPlanWithBillingSubView",
"CompanyResponseData",
"CompanySubscriptionResponseData",
+ "ComparableOperator",
"CompatiblePlans",
"CompatiblePlansResponseData",
"ComponentCapabilities",
@@ -837,36 +792,24 @@ def __dir__():
"ComponentSettingsResponseData",
"ComponentState",
"Condition",
- "ConditionConditionType",
"ConditionGroup",
"ConditionGroupResponseData",
"ConditionGroupView",
- "ConditionMetricPeriod",
- "ConditionMetricPeriodMonthReset",
- "ConditionOperator",
"ConditionResponseData",
+ "ConditionType",
"ConditionView",
"CountResponse",
"CouponRequestBody",
"CreateBillingPlanCreditGrantRequestBody",
"CreateBillingPriceTierRequestBody",
"CreateEntitlementInBundleRequestBody",
- "CreateEntitlementInBundleRequestBodyMetricPeriod",
- "CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset",
"CreateEntitlementReqCommon",
- "CreateEntitlementReqCommonMetricPeriod",
- "CreateEntitlementReqCommonMetricPeriodMonthReset",
"CreateEventRequestBody",
"CreateFlagRequestBody",
"CreateOrUpdateConditionGroupRequestBody",
"CreateOrUpdateConditionRequestBody",
- "CreateOrUpdateConditionRequestBodyConditionType",
- "CreateOrUpdateConditionRequestBodyMetricPeriod",
- "CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset",
- "CreateOrUpdateConditionRequestBodyOperator",
"CreateOrUpdateFlagRequestBody",
"CreateOrUpdateRuleRequestBody",
- "CreateOrUpdateRuleRequestBodyRuleType",
"CreatePlanRequestBody",
"CreatePriceTierRequestBody",
"CreditAutoTopupAmountType",
@@ -939,8 +882,7 @@ def __dir__():
"FeatureCompanyUserResponseData",
"FeatureDetailResponseData",
"FeatureEntitlement",
- "FeatureEntitlementMetricPeriod",
- "FeatureEntitlementMonthReset",
+ "FeatureInPlanResponseData",
"FeatureLedgerResponseData",
"FeatureLifecyclePhase",
"FeatureResponseData",
@@ -951,6 +893,7 @@ def __dir__():
"FeatureUsageTimeSeriesResponseData",
"FeatureView",
"FlagDetailResponseData",
+ "FlagInPlanResponseData",
"FlagResponseData",
"FlagType",
"FlagView",
@@ -967,6 +910,8 @@ def __dir__():
"ManagePlanRequest",
"ManagePlanResponseResponseData",
"MeterRequestBody",
+ "MetricPeriod",
+ "MetricPeriodMonthReset",
"OrderedPlansInGroup",
"PaymentMethodRequestBody",
"PaymentMethodResponseData",
@@ -1022,31 +967,24 @@ def __dir__():
"RuleConditionResponseData",
"RuleDetailResponseData",
"RuleResponseData",
- "RuleRuleType",
+ "RuleType",
"RuleView",
"RulesDetailResponseData",
"RulesEngineSchemaVersion",
"RulesengineCheckFlagResult",
- "RulesengineCheckFlagResultFeatureUsagePeriod",
- "RulesengineCheckFlagResultRuleType",
"RulesengineCompany",
"RulesengineCompanyMetric",
- "RulesengineCompanyMetricMonthReset",
- "RulesengineCompanyMetricPeriod",
"RulesengineCondition",
- "RulesengineConditionConditionType",
"RulesengineConditionGroup",
- "RulesengineConditionMetricPeriod",
- "RulesengineConditionMetricPeriodMonthReset",
- "RulesengineConditionOperator",
+ "RulesengineConditionType",
"RulesengineEntitlementValueType",
"RulesengineEntityType",
"RulesengineFeatureEntitlement",
- "RulesengineFeatureEntitlementMetricPeriod",
- "RulesengineFeatureEntitlementMonthReset",
"RulesengineFlag",
+ "RulesengineMetricPeriod",
+ "RulesengineMetricPeriodMonthReset",
"RulesengineRule",
- "RulesengineRuleRuleType",
+ "RulesengineRuleType",
"RulesengineSubscription",
"RulesengineTrait",
"RulesengineTraitDefinition",
@@ -1075,8 +1013,6 @@ def __dir__():
"UpdateBillingPlanCreditGrantRequestBody",
"UpdateCreditBundleRequestBody",
"UpdateEntitlementReqCommon",
- "UpdateEntitlementReqCommonMetricPeriod",
- "UpdateEntitlementReqCommonMetricPeriodMonthReset",
"UpdatePayInAdvanceRequestBody",
"UpdatePlanRequestBody",
"UpdatePlanTraitTraitRequestBody",
diff --git a/src/schematic/types/api_key_create_response_data.py b/src/schematic/types/api_key_create_response_data.py
index e073acb..d1ad347 100644
--- a/src/schematic/types/api_key_create_response_data.py
+++ b/src/schematic/types/api_key_create_response_data.py
@@ -6,11 +6,13 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
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
last_used_at: typing.Optional[dt.datetime] = None
diff --git a/src/schematic/types/api_key_response_data.py b/src/schematic/types/api_key_response_data.py
index ca58ffb..9e695b4 100644
--- a/src/schematic/types/api_key_response_data.py
+++ b/src/schematic/types/api_key_response_data.py
@@ -6,11 +6,13 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .api_key_scope import ApiKeyScope
+from .environment_response_data import EnvironmentResponseData
class ApiKeyResponseData(UniversalBaseModel):
created_at: dt.datetime
description: typing.Optional[str] = None
+ environment: typing.Optional[EnvironmentResponseData] = None
environment_id: typing.Optional[str] = None
id: str
last_used_at: typing.Optional[dt.datetime] = None
diff --git a/src/schematic/types/audit_log_list_response_data.py b/src/schematic/types/audit_log_list_response_data.py
index 494180c..6fbedc4 100644
--- a/src/schematic/types/audit_log_list_response_data.py
+++ b/src/schematic/types/audit_log_list_response_data.py
@@ -6,12 +6,14 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .actor_type import ActorType
+from .environment_response_data import EnvironmentResponseData
class AuditLogListResponseData(UniversalBaseModel):
actor_type: ActorType
api_key_id: typing.Optional[str] = None
ended_at: typing.Optional[dt.datetime] = None
+ environment: typing.Optional[EnvironmentResponseData] = None
environment_id: typing.Optional[str] = None
id: str
method: str
diff --git a/src/schematic/types/audit_log_response_data.py b/src/schematic/types/audit_log_response_data.py
index 618a4b9..b9bf233 100644
--- a/src/schematic/types/audit_log_response_data.py
+++ b/src/schematic/types/audit_log_response_data.py
@@ -6,12 +6,14 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .actor_type import ActorType
+from .environment_response_data import EnvironmentResponseData
class AuditLogResponseData(UniversalBaseModel):
actor_type: ActorType
api_key_id: typing.Optional[str] = None
ended_at: typing.Optional[dt.datetime] = None
+ environment: typing.Optional[EnvironmentResponseData] = None
environment_id: typing.Optional[str] = None
id: str
method: str
diff --git a/src/schematic/types/billing_price_response_data.py b/src/schematic/types/billing_price_response_data.py
index dc33607..6e075ba 100644
--- a/src/schematic/types/billing_price_response_data.py
+++ b/src/schematic/types/billing_price_response_data.py
@@ -14,6 +14,7 @@ class BillingPriceResponseData(UniversalBaseModel):
external_price_id: str
id: str
interval: BillingProductPriceInterval
+ nickname: typing.Optional[str] = None
price: int
price_decimal: typing.Optional[str] = None
provider_type: BillingProviderType
diff --git a/src/schematic/types/billing_price_view.py b/src/schematic/types/billing_price_view.py
index 91c1449..7c8a5e2 100644
--- a/src/schematic/types/billing_price_view.py
+++ b/src/schematic/types/billing_price_view.py
@@ -23,6 +23,7 @@ class BillingPriceView(UniversalBaseModel):
meter_event_name: typing.Optional[str] = None
meter_event_payload_key: typing.Optional[str] = None
meter_id: typing.Optional[str] = None
+ nickname: typing.Optional[str] = None
package_size: int
price: int
price_decimal: typing.Optional[str] = None
diff --git a/src/schematic/types/billing_product_price_response_data.py b/src/schematic/types/billing_product_price_response_data.py
index a828a45..18f077c 100644
--- a/src/schematic/types/billing_product_price_response_data.py
+++ b/src/schematic/types/billing_product_price_response_data.py
@@ -20,6 +20,7 @@ class BillingProductPriceResponseData(UniversalBaseModel):
interval: BillingProductPriceInterval
is_active: bool
meter_id: typing.Optional[str] = None
+ nickname: typing.Optional[str] = None
package_size: int
price: int
price_decimal: typing.Optional[str] = None
diff --git a/src/schematic/types/check_flag_response_data.py b/src/schematic/types/check_flag_response_data.py
index b0e6e4c..4da7e11 100644
--- a/src/schematic/types/check_flag_response_data.py
+++ b/src/schematic/types/check_flag_response_data.py
@@ -6,6 +6,8 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .feature_entitlement import FeatureEntitlement
+from .metric_period import MetricPeriod
+from .rule_type import RuleType
class CheckFlagResponseData(UniversalBaseModel):
@@ -39,7 +41,7 @@ class CheckFlagResponseData(UniversalBaseModel):
Deprecated: Use Entitlement.EventName instead.
"""
- feature_usage_period: typing.Optional[str] = pydantic.Field(default=None)
+ feature_usage_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
Deprecated: Use Entitlement.MetricPeriod instead.
"""
@@ -69,7 +71,7 @@ class CheckFlagResponseData(UniversalBaseModel):
If a rule was found, its ID
"""
- rule_type: typing.Optional[str] = pydantic.Field(default=None)
+ rule_type: typing.Optional[RuleType] = pydantic.Field(default=None)
"""
If a rule was found, its type
"""
diff --git a/src/schematic/types/company_event_period_metrics_response_data.py b/src/schematic/types/company_event_period_metrics_response_data.py
index c298e80..d446f45 100644
--- a/src/schematic/types/company_event_period_metrics_response_data.py
+++ b/src/schematic/types/company_event_period_metrics_response_data.py
@@ -5,6 +5,8 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class CompanyEventPeriodMetricsResponseData(UniversalBaseModel):
@@ -15,8 +17,8 @@ class CompanyEventPeriodMetricsResponseData(UniversalBaseModel):
created_at: dt.datetime
environment_id: str
event_subtype: str
- month_reset: str
- period: str
+ month_reset: MetricPeriodMonthReset
+ period: MetricPeriod
valid_until: typing.Optional[dt.datetime] = None
value: int
diff --git a/src/schematic/types/company_override_response_data.py b/src/schematic/types/company_override_response_data.py
index c88040d..47ff366 100644
--- a/src/schematic/types/company_override_response_data.py
+++ b/src/schematic/types/company_override_response_data.py
@@ -10,6 +10,8 @@
from .entitlement_value_type import EntitlementValueType
from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
from .feature_response_data import FeatureResponseData
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class CompanyOverrideResponseData(UniversalBaseModel):
@@ -22,8 +24,8 @@ class CompanyOverrideResponseData(UniversalBaseModel):
feature: typing.Optional[FeatureResponseData] = None
feature_id: str
id: str
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
notes: typing.List[CompanyOverrideNoteResponseData]
rule_id: typing.Optional[str] = None
rule_id_usage_exceeded: typing.Optional[str] = None
diff --git a/src/schematic/types/company_plan_detail_response_data.py b/src/schematic/types/company_plan_detail_response_data.py
index f974f4a..109ee39 100644
--- a/src/schematic/types/company_plan_detail_response_data.py
+++ b/src/schematic/types/company_plan_detail_response_data.py
@@ -8,10 +8,11 @@
from .billing_linked_resource_response_data import BillingLinkedResourceResponseData
from .billing_price_response_data import BillingPriceResponseData
from .billing_product_detail_response_data import BillingProductDetailResponseData
+from .billing_provider_type import BillingProviderType
from .charge_type import ChargeType
from .company_plan_invalid_reason import CompanyPlanInvalidReason
from .custom_plan_config import CustomPlanConfig
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
from .feature_usage_response_data import FeatureUsageResponseData
from .plan_credit_grant_view import PlanCreditGrantView
from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData
@@ -32,7 +33,7 @@ class CompanyPlanDetailResponseData(UniversalBaseModel):
company_id: typing.Optional[str] = None
company_name: typing.Optional[str] = None
compatible_plan_ids: typing.List[str]
- controlled_by: str
+ controlled_by: BillingProviderType
copied_from_plan_id: typing.Optional[str] = None
created_at: dt.datetime
currency_prices: typing.List[PlanCurrencyPricesResponseData]
@@ -42,7 +43,7 @@ class CompanyPlanDetailResponseData(UniversalBaseModel):
description: str
draft_version: typing.Optional[PlanVersionResponseData] = None
entitlements: typing.List[PlanEntitlementResponseData]
- features: typing.List[FeatureDetailResponseData]
+ features: typing.List[FeatureInPlanResponseData]
icon: PlanIcon
id: str
included_credit_grants: typing.List[PlanCreditGrantView]
diff --git a/src/schematic/types/company_subscription_response_data.py b/src/schematic/types/company_subscription_response_data.py
index ff05d0a..80ecdb7 100644
--- a/src/schematic/types/company_subscription_response_data.py
+++ b/src/schematic/types/company_subscription_response_data.py
@@ -6,6 +6,7 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .billing_product_for_subscription_response_data import BillingProductForSubscriptionResponseData
+from .billing_provider_type import BillingProviderType
from .billing_subscription_discount_view import BillingSubscriptionDiscountView
from .invoice_response_data import InvoiceResponseData
from .payment_method_response_data import PaymentMethodResponseData
@@ -22,6 +23,7 @@ class CompanySubscriptionResponseData(UniversalBaseModel):
latest_invoice: typing.Optional[InvoiceResponseData] = None
payment_method: typing.Optional[PaymentMethodResponseData] = None
products: typing.List[BillingProductForSubscriptionResponseData]
+ provider_type: BillingProviderType
status: str
subscription_external_id: str
total_price: int
diff --git a/src/schematic/types/comparable_operator.py b/src/schematic/types/comparable_operator.py
new file mode 100644
index 0000000..567dc53
--- /dev/null
+++ b/src/schematic/types/comparable_operator.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+ComparableOperator = typing.Union[
+ typing.Literal["eq", "gt", "gte", "is_empty", "lt", "lte", "not_empty", "ne"], typing.Any
+]
diff --git a/src/schematic/types/condition.py b/src/schematic/types/condition.py
index 45063ad..e2ffe5c 100644
--- a/src/schematic/types/condition.py
+++ b/src/schematic/types/condition.py
@@ -4,26 +4,26 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .condition_condition_type import ConditionConditionType
-from .condition_metric_period import ConditionMetricPeriod
-from .condition_metric_period_month_reset import ConditionMetricPeriodMonthReset
-from .condition_operator import ConditionOperator
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .trait_definition import TraitDefinition
class Condition(UniversalBaseModel):
account_id: str
comparison_trait_definition: typing.Optional[TraitDefinition] = None
- condition_type: ConditionConditionType
+ condition_type: ConditionType
consumption_rate: typing.Optional[float] = None
credit_id: typing.Optional[str] = None
environment_id: str
event_subtype: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[ConditionMetricPeriod] = None
- metric_period_month_reset: typing.Optional[ConditionMetricPeriodMonthReset] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: ConditionOperator
+ operator: ComparableOperator
resource_ids: typing.List[str]
trait_definition: typing.Optional[TraitDefinition] = None
trait_value: str
diff --git a/src/schematic/types/condition_metric_period_month_reset.py b/src/schematic/types/condition_metric_period_month_reset.py
deleted file mode 100644
index e3b36f3..0000000
--- a/src/schematic/types/condition_metric_period_month_reset.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-ConditionMetricPeriodMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any]
diff --git a/src/schematic/types/condition_operator.py b/src/schematic/types/condition_operator.py
deleted file mode 100644
index 2bddfea..0000000
--- a/src/schematic/types/condition_operator.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-ConditionOperator = typing.Union[
- typing.Literal["eq", "ne", "gt", "lt", "gte", "lte", "is_empty", "not_empty"], typing.Any
-]
diff --git a/src/schematic/types/condition_response_data.py b/src/schematic/types/condition_response_data.py
index fc08e31..95686f7 100644
--- a/src/schematic/types/condition_response_data.py
+++ b/src/schematic/types/condition_response_data.py
@@ -5,14 +5,18 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
from .entity_type import EntityType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class ConditionResponseData(UniversalBaseModel):
account_id: str
comparison_trait_id: typing.Optional[str] = None
condition_group_id: typing.Optional[str] = None
- condition_type: str
+ condition_type: ConditionType
consumption_rate: typing.Optional[float] = None
created_at: dt.datetime
credit_id: typing.Optional[str] = None
@@ -20,10 +24,10 @@ class ConditionResponseData(UniversalBaseModel):
event_subtype: typing.Optional[str] = None
flag_id: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: str
+ operator: ComparableOperator
resource_unspecified_ids: typing.List[str]
rule_id: str
trait_entity_type: typing.Optional[EntityType] = None
diff --git a/src/schematic/types/condition_condition_type.py b/src/schematic/types/condition_type.py
similarity index 85%
rename from src/schematic/types/condition_condition_type.py
rename to src/schematic/types/condition_type.py
index e915536..a9f2d46 100644
--- a/src/schematic/types/condition_condition_type.py
+++ b/src/schematic/types/condition_type.py
@@ -2,7 +2,7 @@
import typing
-ConditionConditionType = typing.Union[
+ConditionType = typing.Union[
typing.Literal[
"base_plan", "billing_product", "company", "credit", "metric", "plan", "plan_version", "trait", "user"
],
diff --git a/src/schematic/types/condition_view.py b/src/schematic/types/condition_view.py
index db6721a..2589253 100644
--- a/src/schematic/types/condition_view.py
+++ b/src/schematic/types/condition_view.py
@@ -5,9 +5,13 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
from .entity_type import EntityType
from .generic_preview_object import GenericPreviewObject
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class ConditionView(UniversalBaseModel):
@@ -17,7 +21,7 @@ class ConditionView(UniversalBaseModel):
comparison_trait: typing.Optional[EntityTraitDefinitionResponseData] = None
comparison_trait_id: typing.Optional[str] = None
condition_group_id: typing.Optional[str] = None
- condition_type: str
+ condition_type: ConditionType
consumption_rate: typing.Optional[float] = None
created_at: dt.datetime
credit_id: typing.Optional[str] = None
@@ -25,10 +29,10 @@ class ConditionView(UniversalBaseModel):
event_subtype: typing.Optional[str] = None
flag_id: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: str
+ operator: ComparableOperator
plan_versions: typing.List[GenericPreviewObject]
plans: typing.List[GenericPreviewObject]
resource_unspecified_ids: typing.List[str]
diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body.py b/src/schematic/types/create_entitlement_in_bundle_request_body.py
index c448dc3..64d97ff 100644
--- a/src/schematic/types/create_entitlement_in_bundle_request_body.py
+++ b/src/schematic/types/create_entitlement_in_bundle_request_body.py
@@ -5,14 +5,12 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .billing_tiers_mode import BillingTiersMode
-from .create_entitlement_in_bundle_request_body_metric_period import CreateEntitlementInBundleRequestBodyMetricPeriod
-from .create_entitlement_in_bundle_request_body_metric_period_month_reset import (
- CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset,
-)
from .create_price_tier_request_body import CreatePriceTierRequestBody
from .currency_price_request_body import CurrencyPriceRequestBody
from .entitlement_price_behavior import EntitlementPriceBehavior
from .entitlement_value_type import EntitlementValueType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class CreateEntitlementInBundleRequestBody(UniversalBaseModel):
@@ -22,8 +20,8 @@ class CreateEntitlementInBundleRequestBody(UniversalBaseModel):
currency: typing.Optional[str] = None
currency_prices: typing.Optional[typing.List[CurrencyPriceRequestBody]] = None
feature_id: str
- metric_period: typing.Optional[CreateEntitlementInBundleRequestBodyMetricPeriod] = None
- metric_period_month_reset: typing.Optional[CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
monthly_metered_price_id: typing.Optional[str] = None
monthly_price_tiers: typing.Optional[typing.List[CreatePriceTierRequestBody]] = None
monthly_unit_price: typing.Optional[int] = None
diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py b/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py
deleted file mode 100644
index 275867f..0000000
--- a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateEntitlementInBundleRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py b/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py
deleted file mode 100644
index 4c54ab8..0000000
--- a/src/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateEntitlementInBundleRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/types/create_entitlement_req_common.py b/src/schematic/types/create_entitlement_req_common.py
index c9720cc..734cadc 100644
--- a/src/schematic/types/create_entitlement_req_common.py
+++ b/src/schematic/types/create_entitlement_req_common.py
@@ -4,16 +4,16 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .create_entitlement_req_common_metric_period import CreateEntitlementReqCommonMetricPeriod
-from .create_entitlement_req_common_metric_period_month_reset import CreateEntitlementReqCommonMetricPeriodMonthReset
from .entitlement_value_type import EntitlementValueType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class CreateEntitlementReqCommon(UniversalBaseModel):
credit_consumption_rate: typing.Optional[float] = None
feature_id: str
- metric_period: typing.Optional[CreateEntitlementReqCommonMetricPeriod] = None
- metric_period_month_reset: typing.Optional[CreateEntitlementReqCommonMetricPeriodMonthReset] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
value_bool: typing.Optional[bool] = None
value_credit_id: typing.Optional[str] = None
value_numeric: typing.Optional[int] = None
diff --git a/src/schematic/types/create_entitlement_req_common_metric_period.py b/src/schematic/types/create_entitlement_req_common_metric_period.py
deleted file mode 100644
index 87bd1ac..0000000
--- a/src/schematic/types/create_entitlement_req_common_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateEntitlementReqCommonMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py b/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py
deleted file mode 100644
index 956e459..0000000
--- a/src/schematic/types/create_entitlement_req_common_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateEntitlementReqCommonMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/types/create_flag_request_body.py b/src/schematic/types/create_flag_request_body.py
index e16f1d5..99e8289 100644
--- a/src/schematic/types/create_flag_request_body.py
+++ b/src/schematic/types/create_flag_request_body.py
@@ -13,7 +13,7 @@ class CreateFlagRequestBody(UniversalBaseModel):
feature_id: typing.Optional[str] = None
flag_type: FlagType = "boolean"
key: str
- maintainer_id: typing.Optional[str] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
if IS_PYDANTIC_V2:
diff --git a/src/schematic/types/create_or_update_condition_request_body.py b/src/schematic/types/create_or_update_condition_request_body.py
index 21e6f58..516832f 100644
--- a/src/schematic/types/create_or_update_condition_request_body.py
+++ b/src/schematic/types/create_or_update_condition_request_body.py
@@ -4,12 +4,10 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .create_or_update_condition_request_body_condition_type import CreateOrUpdateConditionRequestBodyConditionType
-from .create_or_update_condition_request_body_metric_period import CreateOrUpdateConditionRequestBodyMetricPeriod
-from .create_or_update_condition_request_body_metric_period_month_reset import (
- CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset,
-)
-from .create_or_update_condition_request_body_operator import CreateOrUpdateConditionRequestBodyOperator
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class CreateOrUpdateConditionRequestBody(UniversalBaseModel):
@@ -18,7 +16,7 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel):
Optionally provide a trait ID to compare a metric or trait value against instead of a value
"""
- condition_type: CreateOrUpdateConditionRequestBodyConditionType
+ condition_type: ConditionType
credit_cost: typing.Optional[float] = pydantic.Field(default=None)
"""
Cost of credit to use to measure this condition
@@ -35,14 +33,12 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel):
"""
id: typing.Optional[str] = None
- metric_period: typing.Optional[CreateOrUpdateConditionRequestBodyMetricPeriod] = pydantic.Field(default=None)
+ metric_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
Period of time over which to measure the track event metric
"""
- metric_period_month_reset: typing.Optional[CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset] = (
- pydantic.Field(default=None)
- )
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None)
"""
When metric_period=current_month, specify whether the month restarts based on the calendar month or the billing period
"""
@@ -52,7 +48,7 @@ class CreateOrUpdateConditionRequestBody(UniversalBaseModel):
Value to compare the track event metric against
"""
- operator: CreateOrUpdateConditionRequestBodyOperator
+ operator: ComparableOperator
resource_ids: typing.List[str] = pydantic.Field()
"""
List of resource IDs (companies, users, or plans) targeted by this condition
diff --git a/src/schematic/types/create_or_update_condition_request_body_condition_type.py b/src/schematic/types/create_or_update_condition_request_body_condition_type.py
deleted file mode 100644
index b220d1f..0000000
--- a/src/schematic/types/create_or_update_condition_request_body_condition_type.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateOrUpdateConditionRequestBodyConditionType = typing.Union[
- typing.Literal["company", "metric", "trait", "user", "plan", "plan_version", "billing_product", "base_plan"],
- typing.Any,
-]
diff --git a/src/schematic/types/create_or_update_condition_request_body_metric_period.py b/src/schematic/types/create_or_update_condition_request_body_metric_period.py
deleted file mode 100644
index 622b8c9..0000000
--- a/src/schematic/types/create_or_update_condition_request_body_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateOrUpdateConditionRequestBodyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py b/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py
deleted file mode 100644
index 1dc5451..0000000
--- a/src/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateOrUpdateConditionRequestBodyMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/types/create_or_update_condition_request_body_operator.py b/src/schematic/types/create_or_update_condition_request_body_operator.py
deleted file mode 100644
index 431b5e4..0000000
--- a/src/schematic/types/create_or_update_condition_request_body_operator.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateOrUpdateConditionRequestBodyOperator = typing.Union[
- typing.Literal["eq", "ne", "gt", "gte", "lt", "lte", "is_empty", "not_empty"], typing.Any
-]
diff --git a/src/schematic/types/create_or_update_flag_request_body.py b/src/schematic/types/create_or_update_flag_request_body.py
index e7e40eb..75f9615 100644
--- a/src/schematic/types/create_or_update_flag_request_body.py
+++ b/src/schematic/types/create_or_update_flag_request_body.py
@@ -14,7 +14,7 @@ class CreateOrUpdateFlagRequestBody(UniversalBaseModel):
flag_type: FlagType = "boolean"
id: typing.Optional[str] = None
key: str
- maintainer_id: typing.Optional[str] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
if IS_PYDANTIC_V2:
diff --git a/src/schematic/types/create_or_update_rule_request_body.py b/src/schematic/types/create_or_update_rule_request_body.py
index 853bd91..4314e07 100644
--- a/src/schematic/types/create_or_update_rule_request_body.py
+++ b/src/schematic/types/create_or_update_rule_request_body.py
@@ -6,7 +6,7 @@
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .create_or_update_condition_group_request_body import CreateOrUpdateConditionGroupRequestBody
from .create_or_update_condition_request_body import CreateOrUpdateConditionRequestBody
-from .create_or_update_rule_request_body_rule_type import CreateOrUpdateRuleRequestBodyRuleType
+from .rule_type import RuleType
class CreateOrUpdateRuleRequestBody(UniversalBaseModel):
@@ -15,7 +15,7 @@ class CreateOrUpdateRuleRequestBody(UniversalBaseModel):
id: typing.Optional[str] = None
name: str
priority: int
- rule_type: typing.Optional[CreateOrUpdateRuleRequestBodyRuleType] = None
+ rule_type: typing.Optional[RuleType] = None
value: bool
if IS_PYDANTIC_V2:
diff --git a/src/schematic/types/create_or_update_rule_request_body_rule_type.py b/src/schematic/types/create_or_update_rule_request_body_rule_type.py
deleted file mode 100644
index 5482671..0000000
--- a/src/schematic/types/create_or_update_rule_request_body_rule_type.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateOrUpdateRuleRequestBodyRuleType = typing.Union[
- typing.Literal["global_override", "company_override", "plan_entitlement", "standard", "default"], typing.Any
-]
diff --git a/src/schematic/types/feature_company_response_data.py b/src/schematic/types/feature_company_response_data.py
index c7b97a8..921a743 100644
--- a/src/schematic/types/feature_company_response_data.py
+++ b/src/schematic/types/feature_company_response_data.py
@@ -15,7 +15,9 @@
from .entitlement_price_behavior import EntitlementPriceBehavior
from .entitlement_type import EntitlementType
from .entitlement_value_type import EntitlementValueType
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .plan_entitlement_response_data import PlanEntitlementResponseData
from .plan_response_data import PlanResponseData
@@ -86,7 +88,7 @@ class FeatureCompanyResponseData(UniversalBaseModel):
"""
entitlement_type: EntitlementType
- feature: typing.Optional[FeatureDetailResponseData] = None
+ feature: typing.Optional[FeatureInPlanResponseData] = None
has_valid_allocation: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether a valid allocation exists
@@ -102,7 +104,7 @@ class FeatureCompanyResponseData(UniversalBaseModel):
The time at which the metric will reset.
"""
- month_reset: typing.Optional[str] = pydantic.Field(default=None)
+ month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None)
"""
If the period is current_month, when the month resets.
"""
@@ -118,7 +120,7 @@ class FeatureCompanyResponseData(UniversalBaseModel):
Percentage of allocation consumed (0-100+)
"""
- period: typing.Optional[str] = pydantic.Field(default=None)
+ period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
The period over which usage is measured.
"""
diff --git a/src/schematic/types/feature_company_user_response_data.py b/src/schematic/types/feature_company_user_response_data.py
index 1be2f48..58e73a3 100644
--- a/src/schematic/types/feature_company_user_response_data.py
+++ b/src/schematic/types/feature_company_user_response_data.py
@@ -9,6 +9,8 @@
from .entitlement_type import EntitlementType
from .entitlement_value_type import EntitlementValueType
from .feature_detail_response_data import FeatureDetailResponseData
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .plan_response_data import PlanResponseData
from .user_response_data import UserResponseData
@@ -38,12 +40,12 @@ class FeatureCompanyUserResponseData(UniversalBaseModel):
The time at which the metric will resets.
"""
- month_reset: typing.Optional[str] = pydantic.Field(default=None)
+ month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None)
"""
If the period is current_month, when the month resets.
"""
- period: typing.Optional[str] = pydantic.Field(default=None)
+ period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
The period over which usage is measured.
"""
diff --git a/src/schematic/types/feature_detail_response_data.py b/src/schematic/types/feature_detail_response_data.py
index 4cf6cfa..453c629 100644
--- a/src/schematic/types/feature_detail_response_data.py
+++ b/src/schematic/types/feature_detail_response_data.py
@@ -5,6 +5,7 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .account_member_response_data import AccountMemberResponseData
from .billing_linked_resource_response_data import BillingLinkedResourceResponseData
from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
from .event_summary_response_data import EventSummaryResponseData
@@ -25,7 +26,8 @@ class FeatureDetailResponseData(UniversalBaseModel):
icon: str
id: str
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None
- maintainer_id: typing.Optional[str] = None
+ maintainer: typing.Optional[AccountMemberResponseData] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
plans: typing.List[PreviewObject]
plural_name: typing.Optional[str] = None
diff --git a/src/schematic/types/feature_entitlement.py b/src/schematic/types/feature_entitlement.py
index 459b343..272ff0f 100644
--- a/src/schematic/types/feature_entitlement.py
+++ b/src/schematic/types/feature_entitlement.py
@@ -6,8 +6,8 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .entitlement_value_type import EntitlementValueType
-from .feature_entitlement_metric_period import FeatureEntitlementMetricPeriod
-from .feature_entitlement_month_reset import FeatureEntitlementMonthReset
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class FeatureEntitlement(UniversalBaseModel):
@@ -51,7 +51,7 @@ class FeatureEntitlement(UniversalBaseModel):
The key of the flag associated with the feature
"""
- metric_period: typing.Optional[FeatureEntitlementMetricPeriod] = pydantic.Field(default=None)
+ metric_period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
For event-based feature entitlements, the period over which usage is tracked
"""
@@ -61,7 +61,7 @@ class FeatureEntitlement(UniversalBaseModel):
For event-based feature entitlements, when the usage period will reset
"""
- month_reset: typing.Optional[FeatureEntitlementMonthReset] = pydantic.Field(default=None)
+ month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None)
"""
For event-based feature entitlements that have a monthly period, whether that monthly reset is based on the calendar month or a billing cycle
"""
diff --git a/src/schematic/types/feature_entitlement_metric_period.py b/src/schematic/types/feature_entitlement_metric_period.py
deleted file mode 100644
index 65a0da5..0000000
--- a/src/schematic/types/feature_entitlement_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-FeatureEntitlementMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
-]
diff --git a/src/schematic/types/feature_entitlement_month_reset.py b/src/schematic/types/feature_entitlement_month_reset.py
deleted file mode 100644
index c93005d..0000000
--- a/src/schematic/types/feature_entitlement_month_reset.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-FeatureEntitlementMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any]
diff --git a/src/schematic/types/feature_in_plan_response_data.py b/src/schematic/types/feature_in_plan_response_data.py
new file mode 100644
index 0000000..d205125
--- /dev/null
+++ b/src/schematic/types/feature_in_plan_response_data.py
@@ -0,0 +1,44 @@
+# 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 .billing_linked_resource_response_data import BillingLinkedResourceResponseData
+from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
+from .event_summary_response_data import EventSummaryResponseData
+from .feature_lifecycle_phase import FeatureLifecyclePhase
+from .feature_type import FeatureType
+from .flag_in_plan_response_data import FlagInPlanResponseData
+from .preview_object import PreviewObject
+
+
+class FeatureInPlanResponseData(UniversalBaseModel):
+ billing_linked_resource: typing.Optional[BillingLinkedResourceResponseData] = None
+ created_at: dt.datetime
+ description: str
+ event_subtype: typing.Optional[str] = None
+ event_summary: typing.Optional[EventSummaryResponseData] = None
+ feature_type: FeatureType
+ flags: typing.List[FlagInPlanResponseData]
+ icon: str
+ id: str
+ lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None
+ maintainer_account_member_id: typing.Optional[str] = None
+ name: str
+ plans: typing.List[PreviewObject]
+ plural_name: typing.Optional[str] = None
+ singular_name: typing.Optional[str] = None
+ trait: typing.Optional[EntityTraitDefinitionResponseData] = None
+ trait_id: typing.Optional[str] = None
+ 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/feature_response_data.py b/src/schematic/types/feature_response_data.py
index cb4f330..cc6861f 100644
--- a/src/schematic/types/feature_response_data.py
+++ b/src/schematic/types/feature_response_data.py
@@ -17,7 +17,7 @@ class FeatureResponseData(UniversalBaseModel):
icon: str
id: str
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None
- maintainer_id: typing.Optional[str] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
plural_name: typing.Optional[str] = None
singular_name: typing.Optional[str] = None
diff --git a/src/schematic/types/feature_usage_response_data.py b/src/schematic/types/feature_usage_response_data.py
index 6ffaf69..16d7ee8 100644
--- a/src/schematic/types/feature_usage_response_data.py
+++ b/src/schematic/types/feature_usage_response_data.py
@@ -13,7 +13,9 @@
from .entitlement_price_behavior import EntitlementPriceBehavior
from .entitlement_type import EntitlementType
from .entitlement_value_type import EntitlementValueType
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .plan_entitlement_response_data import PlanEntitlementResponseData
from .plan_response_data import PlanResponseData
@@ -82,7 +84,7 @@ class FeatureUsageResponseData(UniversalBaseModel):
"""
entitlement_type: EntitlementType
- feature: typing.Optional[FeatureDetailResponseData] = None
+ feature: typing.Optional[FeatureInPlanResponseData] = None
has_valid_allocation: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether a valid allocation exists
@@ -98,7 +100,7 @@ class FeatureUsageResponseData(UniversalBaseModel):
The time at which the metric will reset.
"""
- month_reset: typing.Optional[str] = pydantic.Field(default=None)
+ month_reset: typing.Optional[MetricPeriodMonthReset] = pydantic.Field(default=None)
"""
If the period is current_month, when the month resets.
"""
@@ -114,7 +116,7 @@ class FeatureUsageResponseData(UniversalBaseModel):
Percentage of allocation consumed (0-100+)
"""
- period: typing.Optional[str] = pydantic.Field(default=None)
+ period: typing.Optional[MetricPeriod] = pydantic.Field(default=None)
"""
The period over which usage is measured.
"""
diff --git a/src/schematic/types/feature_view.py b/src/schematic/types/feature_view.py
index 64a853a..4e56b4c 100644
--- a/src/schematic/types/feature_view.py
+++ b/src/schematic/types/feature_view.py
@@ -26,7 +26,6 @@ class FeatureView(UniversalBaseModel):
icon: str
id: str
lifecycle_phase: typing.Optional[FeatureLifecyclePhase] = None
- maintainer_id: typing.Optional[str] = None
name: str
plans: typing.List[PreviewObject]
plural_name: typing.Optional[str] = None
diff --git a/src/schematic/types/flag_detail_response_data.py b/src/schematic/types/flag_detail_response_data.py
index f4e17a7..50a17ed 100644
--- a/src/schematic/types/flag_detail_response_data.py
+++ b/src/schematic/types/flag_detail_response_data.py
@@ -5,6 +5,7 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .account_member_response_data import AccountMemberResponseData
from .feature_response_data import FeatureResponseData
from .flag_type import FlagType
from .rule_detail_response_data import RuleDetailResponseData
@@ -20,7 +21,8 @@ class FlagDetailResponseData(UniversalBaseModel):
id: str
key: str
last_checked_at: typing.Optional[dt.datetime] = None
- maintainer_id: typing.Optional[str] = None
+ maintainer: typing.Optional[AccountMemberResponseData] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
rules: typing.List[RuleDetailResponseData]
updated_at: dt.datetime
diff --git a/src/schematic/types/flag_in_plan_response_data.py b/src/schematic/types/flag_in_plan_response_data.py
new file mode 100644
index 0000000..7b96520
--- /dev/null
+++ b/src/schematic/types/flag_in_plan_response_data.py
@@ -0,0 +1,35 @@
+# 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 .feature_response_data import FeatureResponseData
+from .flag_type import FlagType
+from .rule_detail_response_data import RuleDetailResponseData
+
+
+class FlagInPlanResponseData(UniversalBaseModel):
+ created_at: dt.datetime
+ default_value: bool
+ description: str
+ feature: typing.Optional[FeatureResponseData] = None
+ feature_id: typing.Optional[str] = None
+ flag_type: FlagType = "boolean"
+ id: str
+ key: str
+ last_checked_at: typing.Optional[dt.datetime] = None
+ maintainer_account_member_id: typing.Optional[str] = None
+ name: str
+ rules: typing.List[RuleDetailResponseData]
+ 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/flag_response_data.py b/src/schematic/types/flag_response_data.py
index 0d20e68..ea03dda 100644
--- a/src/schematic/types/flag_response_data.py
+++ b/src/schematic/types/flag_response_data.py
@@ -16,7 +16,7 @@ class FlagResponseData(UniversalBaseModel):
flag_type: FlagType = "boolean"
id: str
key: str
- maintainer_id: typing.Optional[str] = None
+ maintainer_account_member_id: typing.Optional[str] = None
name: str
updated_at: dt.datetime
diff --git a/src/schematic/types/flag_view.py b/src/schematic/types/flag_view.py
index 1d5488f..a7be651 100644
--- a/src/schematic/types/flag_view.py
+++ b/src/schematic/types/flag_view.py
@@ -21,7 +21,6 @@ class FlagView(UniversalBaseModel):
id: str
key: str
last_checked_at: typing.Optional[dt.datetime] = None
- maintainer_id: typing.Optional[str] = None
name: str
rules: typing.List[RuleView]
updated_at: dt.datetime
diff --git a/src/schematic/types/metric_period.py b/src/schematic/types/metric_period.py
new file mode 100644
index 0000000..b6cb852
--- /dev/null
+++ b/src/schematic/types/metric_period.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+MetricPeriod = typing.Union[typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any]
diff --git a/src/schematic/types/metric_period_month_reset.py b/src/schematic/types/metric_period_month_reset.py
new file mode 100644
index 0000000..056ba1c
--- /dev/null
+++ b/src/schematic/types/metric_period_month_reset.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+MetricPeriodMonthReset = typing.Union[typing.Literal["billing_cycle", "first_of_month"], typing.Any]
diff --git a/src/schematic/types/plan_detail_response_data.py b/src/schematic/types/plan_detail_response_data.py
index f341ac7..7fe468c 100644
--- a/src/schematic/types/plan_detail_response_data.py
+++ b/src/schematic/types/plan_detail_response_data.py
@@ -9,8 +9,9 @@
from .billing_plan_credit_grant_response_data import BillingPlanCreditGrantResponseData
from .billing_price_response_data import BillingPriceResponseData
from .billing_product_detail_response_data import BillingProductDetailResponseData
+from .billing_provider_type import BillingProviderType
from .charge_type import ChargeType
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData
from .plan_icon import PlanIcon
from .plan_type import PlanType
@@ -26,13 +27,13 @@ class PlanDetailResponseData(UniversalBaseModel):
company_count: int
company_id: typing.Optional[str] = None
company_name: typing.Optional[str] = None
- controlled_by: str
+ controlled_by: BillingProviderType
copied_from_plan_id: typing.Optional[str] = None
created_at: dt.datetime
currency_prices: typing.List[PlanCurrencyPricesResponseData]
description: str
draft_version: typing.Optional[PlanVersionResponseData] = None
- features: typing.List[FeatureDetailResponseData]
+ features: typing.List[FeatureInPlanResponseData]
icon: PlanIcon
id: str
included_credit_grants: typing.Optional[typing.List[BillingPlanCreditGrantResponseData]] = None
diff --git a/src/schematic/types/plan_entitlement_response_data.py b/src/schematic/types/plan_entitlement_response_data.py
index fe518ab..a1991c1 100644
--- a/src/schematic/types/plan_entitlement_response_data.py
+++ b/src/schematic/types/plan_entitlement_response_data.py
@@ -14,6 +14,8 @@
from .entitlement_value_type import EntitlementValueType
from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
from .feature_response_data import FeatureResponseData
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .plan_response_data import PlanResponseData
@@ -29,8 +31,8 @@ class PlanEntitlementResponseData(UniversalBaseModel):
id: str
metered_monthly_price: typing.Optional[BillingPriceView] = None
metered_yearly_price: typing.Optional[BillingPriceView] = None
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
plan: typing.Optional[PlanResponseData] = None
plan_id: str
price_behavior: typing.Optional[EntitlementPriceBehavior] = None
diff --git a/src/schematic/types/plan_group_plan_detail_response_data.py b/src/schematic/types/plan_group_plan_detail_response_data.py
index 7a61aa3..b3a10d9 100644
--- a/src/schematic/types/plan_group_plan_detail_response_data.py
+++ b/src/schematic/types/plan_group_plan_detail_response_data.py
@@ -9,9 +9,10 @@
from .billing_plan_credit_grant_response_data import BillingPlanCreditGrantResponseData
from .billing_price_response_data import BillingPriceResponseData
from .billing_product_detail_response_data import BillingProductDetailResponseData
+from .billing_provider_type import BillingProviderType
from .charge_type import ChargeType
from .custom_plan_view_config_response_data import CustomPlanViewConfigResponseData
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData
from .plan_entitlement_response_data import PlanEntitlementResponseData
from .plan_icon import PlanIcon
@@ -29,7 +30,7 @@ class PlanGroupPlanDetailResponseData(UniversalBaseModel):
company_id: typing.Optional[str] = None
company_name: typing.Optional[str] = None
compatible_plan_ids: typing.List[str]
- controlled_by: str
+ controlled_by: BillingProviderType
copied_from_plan_id: typing.Optional[str] = None
created_at: dt.datetime
currency_prices: typing.List[PlanCurrencyPricesResponseData]
@@ -37,7 +38,7 @@ class PlanGroupPlanDetailResponseData(UniversalBaseModel):
description: str
draft_version: typing.Optional[PlanVersionResponseData] = None
entitlements: typing.List[PlanEntitlementResponseData]
- features: typing.List[FeatureDetailResponseData]
+ features: typing.List[FeatureInPlanResponseData]
icon: PlanIcon
id: str
included_credit_grants: typing.Optional[typing.List[BillingPlanCreditGrantResponseData]] = None
diff --git a/src/schematic/types/plan_view_public_response_data.py b/src/schematic/types/plan_view_public_response_data.py
index da5866c..0aeb1d2 100644
--- a/src/schematic/types/plan_view_public_response_data.py
+++ b/src/schematic/types/plan_view_public_response_data.py
@@ -8,9 +8,10 @@
from .billing_linked_resource_response_data import BillingLinkedResourceResponseData
from .billing_price_response_data import BillingPriceResponseData
from .billing_product_detail_response_data import BillingProductDetailResponseData
+from .billing_provider_type import BillingProviderType
from .charge_type import ChargeType
from .custom_plan_config import CustomPlanConfig
-from .feature_detail_response_data import FeatureDetailResponseData
+from .feature_in_plan_response_data import FeatureInPlanResponseData
from .plan_credit_grant_view import PlanCreditGrantView
from .plan_currency_prices_response_data import PlanCurrencyPricesResponseData
from .plan_entitlement_response_data import PlanEntitlementResponseData
@@ -29,7 +30,7 @@ class PlanViewPublicResponseData(UniversalBaseModel):
company_id: typing.Optional[str] = None
company_name: typing.Optional[str] = None
compatible_plan_ids: typing.List[str]
- controlled_by: str
+ controlled_by: BillingProviderType
copied_from_plan_id: typing.Optional[str] = None
created_at: dt.datetime
currency_prices: typing.List[PlanCurrencyPricesResponseData]
@@ -38,7 +39,7 @@ class PlanViewPublicResponseData(UniversalBaseModel):
description: str
draft_version: typing.Optional[PlanVersionResponseData] = None
entitlements: typing.List[PlanEntitlementResponseData]
- features: typing.List[FeatureDetailResponseData]
+ features: typing.List[FeatureInPlanResponseData]
icon: PlanIcon
id: str
included_credit_grants: typing.List[PlanCreditGrantView]
diff --git a/src/schematic/types/rule.py b/src/schematic/types/rule.py
index 86338f6..d4d8a7d 100644
--- a/src/schematic/types/rule.py
+++ b/src/schematic/types/rule.py
@@ -6,7 +6,7 @@
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .condition import Condition
from .condition_group import ConditionGroup
-from .rule_rule_type import RuleRuleType
+from .rule_type import RuleType
class Rule(UniversalBaseModel):
@@ -18,7 +18,7 @@ class Rule(UniversalBaseModel):
id: str
name: str
priority: int
- rule_type: RuleRuleType
+ rule_type: RuleType
value: bool
if IS_PYDANTIC_V2:
diff --git a/src/schematic/types/rule_condition_detail_response_data.py b/src/schematic/types/rule_condition_detail_response_data.py
index ff7a5ac..4d64cae 100644
--- a/src/schematic/types/rule_condition_detail_response_data.py
+++ b/src/schematic/types/rule_condition_detail_response_data.py
@@ -5,8 +5,12 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
from .entity_trait_definition_response_data import EntityTraitDefinitionResponseData
from .entity_type import EntityType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
from .preview_object_response_data import PreviewObjectResponseData
@@ -14,16 +18,16 @@ class RuleConditionDetailResponseData(UniversalBaseModel):
comparison_trait: typing.Optional[EntityTraitDefinitionResponseData] = None
comparison_trait_id: typing.Optional[str] = None
condition_group_id: typing.Optional[str] = None
- condition_type: str
+ condition_type: ConditionType
created_at: dt.datetime
environment_id: str
event_subtype: typing.Optional[str] = None
flag_id: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: str
+ operator: ComparableOperator
resource_ids: typing.List[str]
resources: typing.List[PreviewObjectResponseData]
rule_id: str
diff --git a/src/schematic/types/rule_condition_response_data.py b/src/schematic/types/rule_condition_response_data.py
index f12c591..3bf0376 100644
--- a/src/schematic/types/rule_condition_response_data.py
+++ b/src/schematic/types/rule_condition_response_data.py
@@ -5,22 +5,26 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .comparable_operator import ComparableOperator
+from .condition_type import ConditionType
from .entity_type import EntityType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class RuleConditionResponseData(UniversalBaseModel):
comparison_trait_id: typing.Optional[str] = None
condition_group_id: typing.Optional[str] = None
- condition_type: str
+ condition_type: ConditionType
created_at: dt.datetime
environment_id: str
event_subtype: typing.Optional[str] = None
flag_id: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: str
+ operator: ComparableOperator
resource_ids: typing.List[str]
rule_id: str
trait_entity_type: typing.Optional[EntityType] = None
diff --git a/src/schematic/types/rule_detail_response_data.py b/src/schematic/types/rule_detail_response_data.py
index 7e849be..d0470c3 100644
--- a/src/schematic/types/rule_detail_response_data.py
+++ b/src/schematic/types/rule_detail_response_data.py
@@ -7,6 +7,7 @@
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .rule_condition_detail_response_data import RuleConditionDetailResponseData
from .rule_condition_group_detail_response_data import RuleConditionGroupDetailResponseData
+from .rule_type import RuleType
class RuleDetailResponseData(UniversalBaseModel):
@@ -18,7 +19,7 @@ class RuleDetailResponseData(UniversalBaseModel):
id: str
name: str
priority: int
- rule_type: str
+ rule_type: RuleType
updated_at: dt.datetime
value: bool
diff --git a/src/schematic/types/rule_response_data.py b/src/schematic/types/rule_response_data.py
index edd3b0d..5bf1dcb 100644
--- a/src/schematic/types/rule_response_data.py
+++ b/src/schematic/types/rule_response_data.py
@@ -5,6 +5,7 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
+from .rule_type import RuleType
class RuleResponseData(UniversalBaseModel):
@@ -14,7 +15,7 @@ class RuleResponseData(UniversalBaseModel):
id: str
name: str
priority: int
- rule_type: str
+ rule_type: RuleType
updated_at: dt.datetime
value: bool
diff --git a/src/schematic/types/rule_rule_type.py b/src/schematic/types/rule_type.py
similarity index 91%
rename from src/schematic/types/rule_rule_type.py
rename to src/schematic/types/rule_type.py
index baf7831..dbbaa8a 100644
--- a/src/schematic/types/rule_rule_type.py
+++ b/src/schematic/types/rule_type.py
@@ -2,12 +2,12 @@
import typing
-RuleRuleType = typing.Union[
+RuleType = typing.Union[
typing.Literal[
- "default",
- "global_override",
"company_override",
"company_override_usage_exceeded",
+ "default",
+ "global_override",
"plan_entitlement",
"plan_entitlement_usage_exceeded",
"standard",
diff --git a/src/schematic/types/rule_view.py b/src/schematic/types/rule_view.py
index 80d7a1f..87e1560 100644
--- a/src/schematic/types/rule_view.py
+++ b/src/schematic/types/rule_view.py
@@ -7,6 +7,7 @@
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .condition_group_view import ConditionGroupView
from .condition_view import ConditionView
+from .rule_type import RuleType
class RuleView(UniversalBaseModel):
@@ -19,7 +20,7 @@ class RuleView(UniversalBaseModel):
id: str
name: str
priority: int
- rule_type: str
+ rule_type: RuleType
updated_at: dt.datetime
value: bool
diff --git a/src/schematic/types/rules_engine_schema_version.py b/src/schematic/types/rules_engine_schema_version.py
index da784eb..8038eb4 100644
--- a/src/schematic/types/rules_engine_schema_version.py
+++ b/src/schematic/types/rules_engine_schema_version.py
@@ -2,4 +2,4 @@
import typing
-RulesEngineSchemaVersion = typing.Union[typing.Literal["v313fa646", "placeholder-for-fern-compatibility"], typing.Any]
+RulesEngineSchemaVersion = typing.Union[typing.Literal["vf05bf5da", "placeholder-for-fern-compatibility"], typing.Any]
diff --git a/src/schematic/types/rulesengine_check_flag_result.py b/src/schematic/types/rulesengine_check_flag_result.py
index 4c14864..c93e5b8 100644
--- a/src/schematic/types/rulesengine_check_flag_result.py
+++ b/src/schematic/types/rulesengine_check_flag_result.py
@@ -5,9 +5,9 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .rulesengine_check_flag_result_feature_usage_period import RulesengineCheckFlagResultFeatureUsagePeriod
-from .rulesengine_check_flag_result_rule_type import RulesengineCheckFlagResultRuleType
from .rulesengine_feature_entitlement import RulesengineFeatureEntitlement
+from .rulesengine_metric_period import RulesengineMetricPeriod
+from .rulesengine_rule_type import RulesengineRuleType
class RulesengineCheckFlagResult(UniversalBaseModel):
@@ -17,13 +17,13 @@ class RulesengineCheckFlagResult(UniversalBaseModel):
feature_allocation: typing.Optional[int] = None
feature_usage: typing.Optional[int] = None
feature_usage_event: typing.Optional[str] = None
- feature_usage_period: typing.Optional[RulesengineCheckFlagResultFeatureUsagePeriod] = None
+ feature_usage_period: typing.Optional[RulesengineMetricPeriod] = None
feature_usage_reset_at: typing.Optional[dt.datetime] = None
flag_id: typing.Optional[str] = None
flag_key: str
reason: str
rule_id: typing.Optional[str] = None
- rule_type: typing.Optional[RulesengineCheckFlagResultRuleType] = None
+ rule_type: typing.Optional[RulesengineRuleType] = None
user_id: typing.Optional[str] = None
value: bool
diff --git a/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py b/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py
deleted file mode 100644
index 15e5b58..0000000
--- a/src/schematic/types/rulesengine_check_flag_result_feature_usage_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineCheckFlagResultFeatureUsagePeriod = typing.Union[
- typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
-]
diff --git a/src/schematic/types/rulesengine_check_flag_result_rule_type.py b/src/schematic/types/rulesengine_check_flag_result_rule_type.py
deleted file mode 100644
index d87c19a..0000000
--- a/src/schematic/types/rulesengine_check_flag_result_rule_type.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineCheckFlagResultRuleType = typing.Union[
- typing.Literal[
- "default",
- "global_override",
- "company_override",
- "company_override_usage_exceeded",
- "plan_entitlement",
- "plan_entitlement_usage_exceeded",
- "standard",
- ],
- typing.Any,
-]
diff --git a/src/schematic/types/rulesengine_company_metric.py b/src/schematic/types/rulesengine_company_metric.py
index d6cd2b4..747be0d 100644
--- a/src/schematic/types/rulesengine_company_metric.py
+++ b/src/schematic/types/rulesengine_company_metric.py
@@ -5,8 +5,8 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .rulesengine_company_metric_month_reset import RulesengineCompanyMetricMonthReset
-from .rulesengine_company_metric_period import RulesengineCompanyMetricPeriod
+from .rulesengine_metric_period import RulesengineMetricPeriod
+from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset
class RulesengineCompanyMetric(UniversalBaseModel):
@@ -15,8 +15,8 @@ class RulesengineCompanyMetric(UniversalBaseModel):
created_at: dt.datetime
environment_id: str
event_subtype: str
- month_reset: RulesengineCompanyMetricMonthReset
- period: RulesengineCompanyMetricPeriod
+ month_reset: RulesengineMetricPeriodMonthReset
+ period: RulesengineMetricPeriod
valid_until: typing.Optional[dt.datetime] = None
value: int
diff --git a/src/schematic/types/rulesengine_company_metric_month_reset.py b/src/schematic/types/rulesengine_company_metric_month_reset.py
deleted file mode 100644
index 340f821..0000000
--- a/src/schematic/types/rulesengine_company_metric_month_reset.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineCompanyMetricMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any]
diff --git a/src/schematic/types/rulesengine_company_metric_period.py b/src/schematic/types/rulesengine_company_metric_period.py
deleted file mode 100644
index 9dede5f..0000000
--- a/src/schematic/types/rulesengine_company_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineCompanyMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
-]
diff --git a/src/schematic/types/rulesengine_condition.py b/src/schematic/types/rulesengine_condition.py
index debbf00..118c2a6 100644
--- a/src/schematic/types/rulesengine_condition.py
+++ b/src/schematic/types/rulesengine_condition.py
@@ -4,26 +4,26 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
-from .rulesengine_condition_condition_type import RulesengineConditionConditionType
-from .rulesengine_condition_metric_period import RulesengineConditionMetricPeriod
-from .rulesengine_condition_metric_period_month_reset import RulesengineConditionMetricPeriodMonthReset
-from .rulesengine_condition_operator import RulesengineConditionOperator
+from .comparable_operator import ComparableOperator
+from .rulesengine_condition_type import RulesengineConditionType
+from .rulesengine_metric_period import RulesengineMetricPeriod
+from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset
from .rulesengine_trait_definition import RulesengineTraitDefinition
class RulesengineCondition(UniversalBaseModel):
account_id: str
comparison_trait_definition: typing.Optional[RulesengineTraitDefinition] = None
- condition_type: RulesengineConditionConditionType
+ condition_type: RulesengineConditionType
consumption_rate: typing.Optional[float] = None
credit_id: typing.Optional[str] = None
environment_id: str
event_subtype: typing.Optional[str] = None
id: str
- metric_period: typing.Optional[RulesengineConditionMetricPeriod] = None
- metric_period_month_reset: typing.Optional[RulesengineConditionMetricPeriodMonthReset] = None
+ metric_period: typing.Optional[RulesengineMetricPeriod] = None
+ metric_period_month_reset: typing.Optional[RulesengineMetricPeriodMonthReset] = None
metric_value: typing.Optional[int] = None
- operator: RulesengineConditionOperator
+ operator: ComparableOperator
resource_ids: typing.List[str]
trait_definition: typing.Optional[RulesengineTraitDefinition] = None
trait_value: str
diff --git a/src/schematic/types/rulesengine_condition_metric_period.py b/src/schematic/types/rulesengine_condition_metric_period.py
deleted file mode 100644
index c75e7cd..0000000
--- a/src/schematic/types/rulesengine_condition_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineConditionMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
-]
diff --git a/src/schematic/types/rulesengine_condition_metric_period_month_reset.py b/src/schematic/types/rulesengine_condition_metric_period_month_reset.py
deleted file mode 100644
index b0b6b62..0000000
--- a/src/schematic/types/rulesengine_condition_metric_period_month_reset.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineConditionMetricPeriodMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any]
diff --git a/src/schematic/types/rulesengine_condition_operator.py b/src/schematic/types/rulesengine_condition_operator.py
deleted file mode 100644
index 18f1aae..0000000
--- a/src/schematic/types/rulesengine_condition_operator.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineConditionOperator = typing.Union[
- typing.Literal["eq", "ne", "gt", "lt", "gte", "lte", "is_empty", "not_empty"], typing.Any
-]
diff --git a/src/schematic/types/rulesengine_condition_condition_type.py b/src/schematic/types/rulesengine_condition_type.py
similarity index 82%
rename from src/schematic/types/rulesengine_condition_condition_type.py
rename to src/schematic/types/rulesengine_condition_type.py
index 89ecc65..7121126 100644
--- a/src/schematic/types/rulesengine_condition_condition_type.py
+++ b/src/schematic/types/rulesengine_condition_type.py
@@ -2,7 +2,7 @@
import typing
-RulesengineConditionConditionType = typing.Union[
+RulesengineConditionType = typing.Union[
typing.Literal[
"base_plan", "billing_product", "company", "credit", "metric", "plan", "plan_version", "trait", "user"
],
diff --git a/src/schematic/types/rulesengine_feature_entitlement.py b/src/schematic/types/rulesengine_feature_entitlement.py
index 04b0b1a..0c4dfbd 100644
--- a/src/schematic/types/rulesengine_feature_entitlement.py
+++ b/src/schematic/types/rulesengine_feature_entitlement.py
@@ -6,8 +6,8 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .rulesengine_entitlement_value_type import RulesengineEntitlementValueType
-from .rulesengine_feature_entitlement_metric_period import RulesengineFeatureEntitlementMetricPeriod
-from .rulesengine_feature_entitlement_month_reset import RulesengineFeatureEntitlementMonthReset
+from .rulesengine_metric_period import RulesengineMetricPeriod
+from .rulesengine_metric_period_month_reset import RulesengineMetricPeriodMonthReset
class RulesengineFeatureEntitlement(UniversalBaseModel):
@@ -51,7 +51,7 @@ class RulesengineFeatureEntitlement(UniversalBaseModel):
The key of the flag associated with the feature
"""
- metric_period: typing.Optional[RulesengineFeatureEntitlementMetricPeriod] = pydantic.Field(default=None)
+ metric_period: typing.Optional[RulesengineMetricPeriod] = pydantic.Field(default=None)
"""
For event-based feature entitlements, the period over which usage is tracked
"""
@@ -61,7 +61,7 @@ class RulesengineFeatureEntitlement(UniversalBaseModel):
For event-based feature entitlements, when the usage period will reset
"""
- month_reset: typing.Optional[RulesengineFeatureEntitlementMonthReset] = pydantic.Field(default=None)
+ month_reset: typing.Optional[RulesengineMetricPeriodMonthReset] = pydantic.Field(default=None)
"""
For event-based feature entitlements that have a monthly period, whether that monthly reset is based on the calendar month or a billing cycle
"""
diff --git a/src/schematic/types/rulesengine_feature_entitlement_metric_period.py b/src/schematic/types/rulesengine_feature_entitlement_metric_period.py
deleted file mode 100644
index 2d1cf66..0000000
--- a/src/schematic/types/rulesengine_feature_entitlement_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineFeatureEntitlementMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
-]
diff --git a/src/schematic/types/rulesengine_feature_entitlement_month_reset.py b/src/schematic/types/rulesengine_feature_entitlement_month_reset.py
deleted file mode 100644
index 63cb499..0000000
--- a/src/schematic/types/rulesengine_feature_entitlement_month_reset.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RulesengineFeatureEntitlementMonthReset = typing.Union[typing.Literal["first_of_month", "billing_cycle"], typing.Any]
diff --git a/src/schematic/types/condition_metric_period.py b/src/schematic/types/rulesengine_metric_period.py
similarity index 81%
rename from src/schematic/types/condition_metric_period.py
rename to src/schematic/types/rulesengine_metric_period.py
index 88bba10..bc3cf7e 100644
--- a/src/schematic/types/condition_metric_period.py
+++ b/src/schematic/types/rulesengine_metric_period.py
@@ -2,6 +2,6 @@
import typing
-ConditionMetricPeriod = typing.Union[
+RulesengineMetricPeriod = typing.Union[
typing.Literal["all_time", "current_day", "current_month", "current_week"], typing.Any
]
diff --git a/src/schematic/types/rulesengine_metric_period_month_reset.py b/src/schematic/types/rulesengine_metric_period_month_reset.py
new file mode 100644
index 0000000..7265425
--- /dev/null
+++ b/src/schematic/types/rulesengine_metric_period_month_reset.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+RulesengineMetricPeriodMonthReset = typing.Union[typing.Literal["billing_cycle", "first_of_month"], typing.Any]
diff --git a/src/schematic/types/rulesengine_rule.py b/src/schematic/types/rulesengine_rule.py
index 0927399..50977d6 100644
--- a/src/schematic/types/rulesengine_rule.py
+++ b/src/schematic/types/rulesengine_rule.py
@@ -6,7 +6,7 @@
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .rulesengine_condition import RulesengineCondition
from .rulesengine_condition_group import RulesengineConditionGroup
-from .rulesengine_rule_rule_type import RulesengineRuleRuleType
+from .rulesengine_rule_type import RulesengineRuleType
class RulesengineRule(UniversalBaseModel):
@@ -18,7 +18,7 @@ class RulesengineRule(UniversalBaseModel):
id: str
name: str
priority: int
- rule_type: RulesengineRuleRuleType
+ rule_type: RulesengineRuleType
value: bool
if IS_PYDANTIC_V2:
diff --git a/src/schematic/types/rulesengine_rule_rule_type.py b/src/schematic/types/rulesengine_rule_type.py
similarity index 89%
rename from src/schematic/types/rulesengine_rule_rule_type.py
rename to src/schematic/types/rulesengine_rule_type.py
index 894250a..2982b74 100644
--- a/src/schematic/types/rulesengine_rule_rule_type.py
+++ b/src/schematic/types/rulesengine_rule_type.py
@@ -2,12 +2,12 @@
import typing
-RulesengineRuleRuleType = typing.Union[
+RulesengineRuleType = typing.Union[
typing.Literal[
- "default",
- "global_override",
"company_override",
"company_override_usage_exceeded",
+ "default",
+ "global_override",
"plan_entitlement",
"plan_entitlement_usage_exceeded",
"standard",
diff --git a/src/schematic/types/update_entitlement_req_common.py b/src/schematic/types/update_entitlement_req_common.py
index 88ef8df..9295704 100644
--- a/src/schematic/types/update_entitlement_req_common.py
+++ b/src/schematic/types/update_entitlement_req_common.py
@@ -5,14 +5,14 @@
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .entitlement_value_type import EntitlementValueType
-from .update_entitlement_req_common_metric_period import UpdateEntitlementReqCommonMetricPeriod
-from .update_entitlement_req_common_metric_period_month_reset import UpdateEntitlementReqCommonMetricPeriodMonthReset
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class UpdateEntitlementReqCommon(UniversalBaseModel):
credit_consumption_rate: typing.Optional[float] = None
- metric_period: typing.Optional[UpdateEntitlementReqCommonMetricPeriod] = None
- metric_period_month_reset: typing.Optional[UpdateEntitlementReqCommonMetricPeriodMonthReset] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
value_bool: typing.Optional[bool] = None
value_credit_id: typing.Optional[str] = None
value_numeric: typing.Optional[int] = None
diff --git a/src/schematic/types/update_entitlement_req_common_metric_period.py b/src/schematic/types/update_entitlement_req_common_metric_period.py
deleted file mode 100644
index 077d04f..0000000
--- a/src/schematic/types/update_entitlement_req_common_metric_period.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdateEntitlementReqCommonMetricPeriod = typing.Union[
- typing.Literal["all_time", "current_month", "current_week", "current_day"], typing.Any
-]
diff --git a/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py b/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py
deleted file mode 100644
index 904a201..0000000
--- a/src/schematic/types/update_entitlement_req_common_metric_period_month_reset.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-UpdateEntitlementReqCommonMetricPeriodMonthReset = typing.Union[
- typing.Literal["first_of_month", "billing_cycle"], typing.Any
-]
diff --git a/src/schematic/types/usage_based_entitlement_response_data.py b/src/schematic/types/usage_based_entitlement_response_data.py
index a0ae808..d645323 100644
--- a/src/schematic/types/usage_based_entitlement_response_data.py
+++ b/src/schematic/types/usage_based_entitlement_response_data.py
@@ -7,6 +7,8 @@
from .billing_price_view import BillingPriceView
from .entitlement_price_behavior import EntitlementPriceBehavior
from .entitlement_value_type import EntitlementValueType
+from .metric_period import MetricPeriod
+from .metric_period_month_reset import MetricPeriodMonthReset
class UsageBasedEntitlementResponseData(UniversalBaseModel):
@@ -14,8 +16,8 @@ class UsageBasedEntitlementResponseData(UniversalBaseModel):
consumption_rate: typing.Optional[float] = None
feature_id: str
metered_price: typing.Optional[BillingPriceView] = None
- metric_period: typing.Optional[str] = None
- metric_period_month_reset: typing.Optional[str] = None
+ metric_period: typing.Optional[MetricPeriod] = None
+ metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None
monthly_usage_based_price: typing.Optional[BillingPriceView] = None
price_behavior: typing.Optional[EntitlementPriceBehavior] = None
value_bool: typing.Optional[bool] = None