diff --git a/.fernignore b/.fernignore
index 694283c..4245b3b 100644
--- a/.fernignore
+++ b/.fernignore
@@ -1,2 +1,4 @@
# Specify files that shouldn't be modified by Fern
-README.md
\ No newline at end of file
+
+README.md
+src/polytomic/types/jsonschema_definitions.py
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bb1b2d3..fa41c1f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -34,7 +34,7 @@ jobs:
run: poetry install
- name: Test
- run: poetry run pytest ./tests/custom/
+ run: poetry run pytest -rP .
publish:
needs: [compile, test]
diff --git a/.gitignore b/.gitignore
index 42cb863..0da665f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ dist/
.mypy_cache/
__pycache__/
poetry.toml
+.ruff_cache/
diff --git a/poetry.lock b/poetry.lock
index 1cfdc5e..d1637e3 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
[[package]]
name = "annotated-types"
@@ -144,13 +144,13 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2
[[package]]
name = "iniconfig"
-version = "2.0.0"
+version = "2.1.0"
description = "brain-dead simple config-ini parsing"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
- {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
+ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"},
+ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"},
]
[[package]]
@@ -422,6 +422,33 @@ files = [
[package.dependencies]
six = ">=1.5"
+[[package]]
+name = "ruff"
+version = "0.5.7"
+description = "An extremely fast Python linter and code formatter, written in Rust."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "ruff-0.5.7-py3-none-linux_armv6l.whl", hash = "sha256:548992d342fc404ee2e15a242cdbea4f8e39a52f2e7752d0e4cbe88d2d2f416a"},
+ {file = "ruff-0.5.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:00cc8872331055ee017c4f1071a8a31ca0809ccc0657da1d154a1d2abac5c0be"},
+ {file = "ruff-0.5.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:eaf3d86a1fdac1aec8a3417a63587d93f906c678bb9ed0b796da7b59c1114a1e"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a01c34400097b06cf8a6e61b35d6d456d5bd1ae6961542de18ec81eaf33b4cb8"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcc8054f1a717e2213500edaddcf1dbb0abad40d98e1bd9d0ad364f75c763eea"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f70284e73f36558ef51602254451e50dd6cc479f8b6f8413a95fcb5db4a55fc"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a78ad870ae3c460394fc95437d43deb5c04b5c29297815a2a1de028903f19692"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ccd078c66a8e419475174bfe60a69adb36ce04f8d4e91b006f1329d5cd44bcf"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e31c9bad4ebf8fdb77b59cae75814440731060a09a0e0077d559a556453acbb"},
+ {file = "ruff-0.5.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d796327eed8e168164346b769dd9a27a70e0298d667b4ecee6877ce8095ec8e"},
+ {file = "ruff-0.5.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a09ea2c3f7778cc635e7f6edf57d566a8ee8f485f3c4454db7771efb692c499"},
+ {file = "ruff-0.5.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a36d8dcf55b3a3bc353270d544fb170d75d2dff41eba5df57b4e0b67a95bb64e"},
+ {file = "ruff-0.5.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9369c218f789eefbd1b8d82a8cf25017b523ac47d96b2f531eba73770971c9e5"},
+ {file = "ruff-0.5.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b88ca3db7eb377eb24fb7c82840546fb7acef75af4a74bd36e9ceb37a890257e"},
+ {file = "ruff-0.5.7-py3-none-win32.whl", hash = "sha256:33d61fc0e902198a3e55719f4be6b375b28f860b09c281e4bdbf783c0566576a"},
+ {file = "ruff-0.5.7-py3-none-win_amd64.whl", hash = "sha256:083bbcbe6fadb93cd86709037acc510f86eed5a314203079df174c40bbbca6b3"},
+ {file = "ruff-0.5.7-py3-none-win_arm64.whl", hash = "sha256:2dca26154ff9571995107221d0aeaad0e75a77b5a682d6236cf89a58c70b76f4"},
+ {file = "ruff-0.5.7.tar.gz", hash = "sha256:8dfc0a458797f5d9fb622dd0efc52d796f23f0a1493a9527f4e49a550ae9a7e5"},
+]
+
[[package]]
name = "six"
version = "1.17.0"
@@ -498,16 +525,16 @@ files = [
[[package]]
name = "typing-extensions"
-version = "4.12.2"
+version = "4.13.1"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
files = [
- {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
- {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
+ {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"},
+ {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"},
]
[metadata]
lock-version = "2.0"
python-versions = "^3.8"
-content-hash = "7fa2085bd251148908cf9a89f13b158fe85ccb037bb44614ae5f150ceecee53c"
+content-hash = "6f6c191c1028d17a97fdfa84cedfd3cef94b5d63d98b8c1d333b3398eeea9055"
diff --git a/pyproject.toml b/pyproject.toml
index cc11629..c2298de 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,9 @@
+[project]
+name = "polytomic"
+
[tool.poetry]
name = "polytomic"
-version = "1.11.2"
+version = "1.11.3"
description = ""
readme = "README.md"
authors = []
@@ -35,6 +38,7 @@ Repository = 'https://github.com/polytomic/polytomic-python'
python = "^3.8"
httpx = ">=0.21.2"
pydantic = ">= 1.9.2"
+pydantic-core = "^2.18.2"
typing_extensions = ">= 4.0.0"
[tool.poetry.dev-dependencies]
@@ -43,6 +47,7 @@ pytest = "^7.4.0"
pytest-asyncio = "^0.23.5"
python-dateutil = "^2.9.0"
types-python-dateutil = "^2.9.0.20240316"
+ruff = "^0.5.6"
[tool.pytest.ini_options]
testpaths = [ "tests" ]
@@ -51,6 +56,9 @@ asyncio_mode = "auto"
[tool.mypy]
plugins = ["pydantic.mypy"]
+[tool.ruff]
+line-length = 120
+
[build-system]
requires = ["poetry-core"]
diff --git a/reference.md b/reference.md
index 02f0be1..8986bb1 100644
--- a/reference.md
+++ b/reference.md
@@ -13,7 +13,7 @@
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -70,8 +70,7 @@ client.bulk_sync.list(
```python
-from polytomic import BulkSchedule
-from polytomic.client import Polytomic
+from polytomic import BulkSchedule, Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -164,7 +163,7 @@ client.bulk_sync.create(
-
-**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]`
+**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -220,7 +219,7 @@ client.bulk_sync.create(
-
-**source_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]`
+**source_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -253,7 +252,7 @@ client.bulk_sync.create(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -335,8 +334,7 @@ client.bulk_sync.get(
```python
-from polytomic import BulkSchedule
-from polytomic.client import Polytomic
+from polytomic import BulkSchedule, Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -438,7 +436,7 @@ client.bulk_sync.update(
-
-**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]`
+**destination_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -494,7 +492,7 @@ client.bulk_sync.update(
-
-**source_configuration:** `typing.Optional[typing.Dict[str, typing.Any]]`
+**source_configuration:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]`
@@ -527,7 +525,7 @@ client.bulk_sync.update(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -593,7 +591,7 @@ client.bulk_sync.remove(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -659,7 +657,7 @@ client.bulk_sync.activate(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -748,7 +746,7 @@ client.bulk_sync.start(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -805,7 +803,7 @@ client.bulk_sync.get_status(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -871,7 +869,7 @@ client.bulk_sync.get_source(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -929,7 +927,7 @@ client.bulk_sync.get_destination(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -976,7 +974,7 @@ client.connections.get_types()
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1033,7 +1031,7 @@ client.connections.get_connection_type_schema(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1080,7 +1078,7 @@ client.connections.list()
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1112,7 +1110,7 @@ client.connections.create(
-
-**configuration:** `typing.Dict[str, typing.Any]`
+**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -1193,7 +1191,7 @@ client.connections.create(
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1218,7 +1216,7 @@ client.connections.connect(
-
-**name:** `str`
+**name:** `str` — Name of the new connection.
@@ -1226,7 +1224,7 @@ client.connections.connect(
-
-**redirect_url:** `str`
+**redirect_url:** `str` — URL to redirect to after connection is created.
@@ -1242,6 +1240,14 @@ client.connections.connect(
-
+**dark:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
**organization_id:** `typing.Optional[str]`
@@ -1250,7 +1256,7 @@ client.connections.connect(
-
-**type:** `typing.Optional[str]`
+**type:** `typing.Optional[str]` — Connection type to create.
@@ -1258,7 +1264,7 @@ client.connections.connect(
-
-**whitelist:** `typing.Optional[typing.Sequence[str]]`
+**whitelist:** `typing.Optional[typing.Sequence[str]]` — List of connection types which are allowed to be created. Ignored if type is set.
@@ -1291,7 +1297,7 @@ client.connections.connect(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1348,7 +1354,7 @@ client.connections.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1388,7 +1394,7 @@ client.connections.update(
-
-**configuration:** `typing.Dict[str, typing.Any]`
+**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -1469,7 +1475,7 @@ client.connections.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1535,7 +1541,7 @@ client.connections.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1593,7 +1599,7 @@ client.connections.get_parameter_values(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1659,7 +1665,7 @@ client.query_runner.run_query(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1725,7 +1731,7 @@ client.query_runner.get_query(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1804,7 +1810,7 @@ For a given connection and enrichment configuration, provides the valid sets of
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1869,7 +1875,7 @@ client.models.post(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1895,7 +1901,7 @@ client.models.preview(
-
-**configuration:** `typing.Dict[str, typing.Any]`
+**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2024,7 +2030,7 @@ client.models.preview(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2071,7 +2077,7 @@ client.models.list()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2097,7 +2103,7 @@ client.models.create(
-
-**configuration:** `typing.Dict[str, typing.Any]`
+**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2226,7 +2232,7 @@ client.models.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2291,7 +2297,7 @@ client.models.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2327,7 +2333,7 @@ client.models.update(
-
-**configuration:** `typing.Dict[str, typing.Any]`
+**configuration:** `typing.Dict[str, typing.Optional[typing.Any]]`
@@ -2464,7 +2470,7 @@ client.models.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2543,7 +2549,7 @@ Returns sample records from the model. The first ten records that the source pro
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2609,7 +2615,7 @@ client.models.sample(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2674,7 +2680,7 @@ client.model_sync.get_source(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2739,7 +2745,7 @@ client.model_sync.get_source_fields(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2812,7 +2818,7 @@ client.model_sync.get_target(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2887,7 +2893,7 @@ client.model_sync.get_target_fields(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -2944,7 +2950,7 @@ client.model_sync.get_target_objects(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3018,8 +3024,7 @@ client.model_sync.list(
-
```python
-from polytomic import ModelSyncField, Schedule, Target
-from polytomic.client import Polytomic
+from polytomic import ModelSyncField, Polytomic, Schedule, Target
client = Polytomic(
version="YOUR_VERSION",
@@ -3134,6 +3139,14 @@ client.model_sync.create(
-
+**only_enrich_updates:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
**organization_id:** `typing.Optional[str]`
@@ -3166,6 +3179,14 @@ client.model_sync.create(
-
+**skip_initial_backfill:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
**sync_all_records:** `typing.Optional[bool]`
@@ -3199,7 +3220,7 @@ client.model_sync.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3246,7 +3267,7 @@ client.model_sync.get_schedule_options()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3303,8 +3324,7 @@ client.model_sync.get(
-
```python
-from polytomic import ModelSyncField, Schedule, Target
-from polytomic.client import Polytomic
+from polytomic import ModelSyncField, Polytomic, Schedule, Target
client = Polytomic(
version="YOUR_VERSION",
@@ -3428,6 +3448,14 @@ client.model_sync.update(
-
+**only_enrich_updates:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
**organization_id:** `typing.Optional[str]`
@@ -3460,6 +3488,14 @@ client.model_sync.update(
-
+**skip_initial_backfill:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
**sync_all_records:** `typing.Optional[bool]`
@@ -3493,7 +3529,7 @@ client.model_sync.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3550,7 +3586,7 @@ client.model_sync.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3632,7 +3668,7 @@ client.model_sync.activate(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3705,7 +3741,7 @@ client.model_sync.start(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3763,7 +3799,7 @@ client.model_sync.get_status(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3820,7 +3856,7 @@ client.schemas.refresh(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3877,7 +3913,7 @@ client.schemas.get_status(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -3943,7 +3979,7 @@ client.schemas.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4012,7 +4048,7 @@ client.schemas.get_records(
```python
import datetime
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4107,7 +4143,7 @@ client.events.list(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4155,7 +4191,7 @@ client.events.get_types()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4222,7 +4258,7 @@ client.jobs.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4286,7 +4322,7 @@ client.identity.get()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4349,7 +4385,7 @@ client.organization.list()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4462,7 +4498,7 @@ client.organization.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4535,7 +4571,7 @@ client.organization.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4657,7 +4693,7 @@ client.organization.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4731,7 +4767,7 @@ client.organization.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4804,7 +4840,7 @@ client.users.list(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4894,7 +4930,7 @@ client.users.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -4976,7 +5012,7 @@ client.users.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5075,7 +5111,7 @@ client.users.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5157,7 +5193,7 @@ client.users.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5251,7 +5287,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5316,7 +5352,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5408,7 +5444,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5483,7 +5519,7 @@ Consult the [Events documentation](https://apidocs.polytomic.com/getting-started
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5566,7 +5602,7 @@ client.webhooks.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5624,7 +5660,7 @@ client.webhooks.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5698,7 +5734,7 @@ client.bulk_sync.executions.list_status(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5755,7 +5791,7 @@ client.bulk_sync.executions.list(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5821,7 +5857,7 @@ client.bulk_sync.executions.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5887,7 +5923,7 @@ client.bulk_sync.executions.get_logs(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -5962,7 +5998,7 @@ client.bulk_sync.executions.export_logs(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6027,7 +6063,7 @@ client.bulk_sync.schemas.list(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6092,7 +6128,7 @@ client.bulk_sync.schemas.patch(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6158,7 +6194,7 @@ client.bulk_sync.schemas.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6273,7 +6309,7 @@ client.bulk_sync.schemas.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6330,7 +6366,7 @@ client.model_sync.executions.list(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6396,7 +6432,7 @@ client.model_sync.executions.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6471,7 +6507,7 @@ client.model_sync.executions.get_log_urls(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6556,7 +6592,7 @@ client.model_sync.executions.get_logs(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6603,7 +6639,7 @@ client.permissions.policies.list()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6676,7 +6712,7 @@ client.permissions.policies.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6733,7 +6769,7 @@ client.permissions.policies.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6815,7 +6851,7 @@ client.permissions.policies.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6873,7 +6909,7 @@ client.permissions.policies.remove(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6920,7 +6956,7 @@ client.permissions.roles.list()
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -6985,7 +7021,7 @@ client.permissions.roles.create(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -7042,7 +7078,7 @@ client.permissions.roles.get(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -7116,7 +7152,7 @@ client.permissions.roles.update(
-
```python
-from polytomic.client import Polytomic
+from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..f502f1b
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+httpx>=0.21.2
+pydantic>= 1.9.2
+pydantic-core==^2.18.2
+typing_extensions>= 4.0.0
diff --git a/src/polytomic/__init__.py b/src/polytomic/__init__.py
index 66a8a70..5ca669e 100644
--- a/src/polytomic/__init__.py
+++ b/src/polytomic/__init__.py
@@ -204,6 +204,7 @@
webhooks,
)
from .bulk_sync import V2CreateBulkSyncRequestSchemasItem, V2UpdateBulkSyncRequestSchemasItem
+from .client import AsyncPolytomic, Polytomic
from .environment import PolytomicEnvironment
from .version import __version__
@@ -214,6 +215,7 @@
"ApiError",
"ApiKeyResponse",
"ApiKeyResponseEnvelope",
+ "AsyncPolytomic",
"BadRequestError",
"BulkDiscover",
"BulkExecutionStatus",
@@ -329,6 +331,7 @@
"PolicyAction",
"PolicyResponse",
"PolicyResponseEnvelope",
+ "Polytomic",
"PolytomicEnvironment",
"Relation",
"RelationTo",
diff --git a/src/polytomic/bulk_sync/client.py b/src/polytomic/bulk_sync/client.py
index a9b452b..7163c90 100644
--- a/src/polytomic/bulk_sync/client.py
+++ b/src/polytomic/bulk_sync/client.py
@@ -1,38 +1,41 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
import typing
+from ..core.client_wrapper import SyncClientWrapper
+from .executions.client import ExecutionsClient
+from .schemas.client import SchemasClient
+from ..core.request_options import RequestOptions
+from ..types.bulk_sync_list_envelope import BulkSyncListEnvelope
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unauthorized_error import UnauthorizedError
+from ..types.rest_err_response import RestErrResponse
+from ..errors.internal_server_error import InternalServerError
+from ..types.api_error import ApiError as types_api_error_ApiError
from json.decoder import JSONDecodeError
-
from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
-from ..core.request_options import RequestOptions
+from ..types.bulk_schedule import BulkSchedule
+from ..types.bulk_discover import BulkDiscover
+import datetime as dt
+from ..types.sync_mode import SyncMode
+from .types.v_2_create_bulk_sync_request_schemas_item import V2CreateBulkSyncRequestSchemasItem
+from ..types.bulk_sync_response_envelope import BulkSyncResponseEnvelope
+from ..core.serialization import convert_and_respect_annotation_metadata
from ..errors.bad_request_error import BadRequestError
-from ..errors.conflict_error import ConflictError
from ..errors.forbidden_error import ForbiddenError
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..core.jsonable_encoder import jsonable_encoder
+from ..errors.not_found_error import NotFoundError
+from .types.v_2_update_bulk_sync_request_schemas_item import V2UpdateBulkSyncRequestSchemasItem
from ..types.activate_sync_envelope import ActivateSyncEnvelope
-from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.bulk_discover import BulkDiscover
from ..types.bulk_fetch_mode import BulkFetchMode
-from ..types.bulk_schedule import BulkSchedule
-from ..types.bulk_sync_dest_envelope import BulkSyncDestEnvelope
from ..types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope
-from ..types.bulk_sync_list_envelope import BulkSyncListEnvelope
-from ..types.bulk_sync_response_envelope import BulkSyncResponseEnvelope
-from ..types.bulk_sync_source_envelope import BulkSyncSourceEnvelope
+from ..errors.conflict_error import ConflictError
from ..types.bulk_sync_status_envelope import BulkSyncStatusEnvelope
-from ..types.rest_err_response import RestErrResponse
-from ..types.sync_mode import SyncMode
-from .executions.client import AsyncExecutionsClient, ExecutionsClient
-from .schemas.client import AsyncSchemasClient, SchemasClient
-from .types.v_2_create_bulk_sync_request_schemas_item import V2CreateBulkSyncRequestSchemasItem
-from .types.v_2_update_bulk_sync_request_schemas_item import V2UpdateBulkSyncRequestSchemasItem
+from ..types.bulk_sync_source_envelope import BulkSyncSourceEnvelope
+from ..types.bulk_sync_dest_envelope import BulkSyncDestEnvelope
+from ..core.client_wrapper import AsyncClientWrapper
+from .executions.client import AsyncExecutionsClient
+from .schemas.client import AsyncSchemasClient
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -62,7 +65,7 @@ def list(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -73,16 +76,41 @@ def list(
)
"""
_response = self._client_wrapper.httpx_client.request(
- "api/bulk/syncs", method="GET", params={"active": active}, request_options=request_options
+ "api/bulk/syncs",
+ method="GET",
+ params={
+ "active": active,
+ },
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncListEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncListEnvelope,
+ parse_obj_as(
+ type_=BulkSyncListEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -100,14 +128,14 @@ def create(
automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT,
automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT,
data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT,
- destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
disable_record_timestamps: typing.Optional[bool] = OMIT,
discover: typing.Optional[bool] = OMIT,
mode: typing.Optional[SyncMode] = OMIT,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
schemas: typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] = OMIT,
- source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BulkSyncResponseEnvelope:
"""
@@ -129,7 +157,7 @@ def create(
data_cutoff_timestamp : typing.Optional[dt.datetime]
- destination_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
disable_record_timestamps : typing.Optional[bool]
@@ -145,7 +173,7 @@ def create(
schemas : typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]]
List of schemas to sync; if omitted, all schemas will be selected for syncing.
- source_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -157,8 +185,7 @@ def create(
Examples
--------
- from polytomic import BulkSchedule
- from polytomic.client import Polytomic
+ from polytomic import BulkSchedule, Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -189,34 +216,79 @@ def create(
"name": name,
"organization_id": organization_id,
"policies": policies,
- "schedule": schedule,
- "schemas": schemas,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=BulkSchedule, direction="write"
+ ),
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[V2CreateBulkSyncRequestSchemasItem], direction="write"
+ ),
"source_configuration": source_configuration,
"source_connection_id": source_connection_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -247,7 +319,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -261,17 +333,39 @@ def get(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}",
method="GET",
- params={"refresh_schemas": refresh_schemas},
+ params={
+ "refresh_schemas": refresh_schemas,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -290,14 +384,14 @@ def update(
automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT,
automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT,
data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT,
- destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
disable_record_timestamps: typing.Optional[bool] = OMIT,
discover: typing.Optional[bool] = OMIT,
mode: typing.Optional[SyncMode] = OMIT,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
schemas: typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] = OMIT,
- source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BulkSyncResponseEnvelope:
"""
@@ -325,7 +419,7 @@ def update(
data_cutoff_timestamp : typing.Optional[dt.datetime]
- destination_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
disable_record_timestamps : typing.Optional[bool]
@@ -341,7 +435,7 @@ def update(
schemas : typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]]
List of schemas to sync; if omitted, all schemas will be selected for syncing.
- source_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -353,8 +447,7 @@ def update(
Examples
--------
- from polytomic import BulkSchedule
- from polytomic.client import Polytomic
+ from polytomic import BulkSchedule, Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -386,34 +479,79 @@ def update(
"name": name,
"organization_id": organization_id,
"policies": policies,
- "schedule": schedule,
- "schemas": schemas,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=BulkSchedule, direction="write"
+ ),
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[V2UpdateBulkSyncRequestSchemasItem], direction="write"
+ ),
"source_configuration": source_configuration,
"source_connection_id": source_connection_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -443,7 +581,7 @@ def remove(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -457,25 +595,53 @@ def remove(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}",
method="DELETE",
- params={"refresh_schemas": refresh_schemas},
+ params={
+ "refresh_schemas": refresh_schemas,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -502,7 +668,7 @@ def activate(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -516,26 +682,60 @@ def activate(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/activate",
method="POST",
- json={"active": active},
+ json={
+ "active": active,
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ActivateSyncEnvelope,
+ parse_obj_as(
+ type_=ActivateSyncEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -575,7 +775,7 @@ def start(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -588,22 +788,56 @@ def start(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/executions",
method="POST",
- json={"fetch_mode": fetch_mode, "resync": resync, "schemas": schemas, "test": test},
+ json={
+ "fetch_mode": fetch_mode,
+ "resync": resync,
+ "schemas": schemas,
+ "test": test,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncExecutionEnvelope,
+ parse_obj_as(
+ type_=BulkSyncExecutionEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 409:
raise ConflictError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -626,7 +860,7 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -637,20 +871,48 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/bulk/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options
+ f"api/bulk/syncs/{jsonable_encoder(id)}/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncStatusEnvelope,
+ parse_obj_as(
+ type_=BulkSyncStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -681,7 +943,7 @@ def get_source(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -695,25 +957,59 @@ def get_source(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/bulksync/source",
method="GET",
- params={"include_fields": include_fields},
+ params={
+ "include_fields": include_fields,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -738,7 +1034,7 @@ def get_destination(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -749,24 +1045,58 @@ def get_destination(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/bulksync/target", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/bulksync/target",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncDestEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncDestEnvelope,
+ parse_obj_as(
+ type_=BulkSyncDestEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -800,7 +1130,7 @@ async def list(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -817,16 +1147,41 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/bulk/syncs", method="GET", params={"active": active}, request_options=request_options
+ "api/bulk/syncs",
+ method="GET",
+ params={
+ "active": active,
+ },
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncListEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncListEnvelope,
+ parse_obj_as(
+ type_=BulkSyncListEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -844,14 +1199,14 @@ async def create(
automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT,
automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT,
data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT,
- destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
disable_record_timestamps: typing.Optional[bool] = OMIT,
discover: typing.Optional[bool] = OMIT,
mode: typing.Optional[SyncMode] = OMIT,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
schemas: typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]] = OMIT,
- source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BulkSyncResponseEnvelope:
"""
@@ -873,7 +1228,7 @@ async def create(
data_cutoff_timestamp : typing.Optional[dt.datetime]
- destination_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
disable_record_timestamps : typing.Optional[bool]
@@ -889,7 +1244,7 @@ async def create(
schemas : typing.Optional[typing.Sequence[V2CreateBulkSyncRequestSchemasItem]]
List of schemas to sync; if omitted, all schemas will be selected for syncing.
- source_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -903,8 +1258,7 @@ async def create(
--------
import asyncio
- from polytomic import BulkSchedule
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic, BulkSchedule
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -941,34 +1295,79 @@ async def main() -> None:
"name": name,
"organization_id": organization_id,
"policies": policies,
- "schedule": schedule,
- "schemas": schemas,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=BulkSchedule, direction="write"
+ ),
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[V2CreateBulkSyncRequestSchemasItem], direction="write"
+ ),
"source_configuration": source_configuration,
"source_connection_id": source_connection_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1001,7 +1400,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1021,17 +1420,39 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}",
method="GET",
- params={"refresh_schemas": refresh_schemas},
+ params={
+ "refresh_schemas": refresh_schemas,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1050,14 +1471,14 @@ async def update(
automatically_add_new_fields: typing.Optional[BulkDiscover] = OMIT,
automatically_add_new_objects: typing.Optional[BulkDiscover] = OMIT,
data_cutoff_timestamp: typing.Optional[dt.datetime] = OMIT,
- destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
disable_record_timestamps: typing.Optional[bool] = OMIT,
discover: typing.Optional[bool] = OMIT,
mode: typing.Optional[SyncMode] = OMIT,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
schemas: typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]] = OMIT,
- source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
+ source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BulkSyncResponseEnvelope:
"""
@@ -1085,7 +1506,7 @@ async def update(
data_cutoff_timestamp : typing.Optional[dt.datetime]
- destination_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ destination_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
disable_record_timestamps : typing.Optional[bool]
@@ -1101,7 +1522,7 @@ async def update(
schemas : typing.Optional[typing.Sequence[V2UpdateBulkSyncRequestSchemasItem]]
List of schemas to sync; if omitted, all schemas will be selected for syncing.
- source_configuration : typing.Optional[typing.Dict[str, typing.Any]]
+ source_configuration : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1115,8 +1536,7 @@ async def update(
--------
import asyncio
- from polytomic import BulkSchedule
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic, BulkSchedule
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1154,34 +1574,79 @@ async def main() -> None:
"name": name,
"organization_id": organization_id,
"policies": policies,
- "schedule": schedule,
- "schemas": schemas,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=BulkSchedule, direction="write"
+ ),
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[V2UpdateBulkSyncRequestSchemasItem], direction="write"
+ ),
"source_configuration": source_configuration,
"source_connection_id": source_connection_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncResponseEnvelope,
+ parse_obj_as(
+ type_=BulkSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1213,7 +1678,7 @@ async def remove(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1233,25 +1698,53 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}",
method="DELETE",
- params={"refresh_schemas": refresh_schemas},
+ params={
+ "refresh_schemas": refresh_schemas,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1280,7 +1773,7 @@ async def activate(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1300,26 +1793,60 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/activate",
method="POST",
- json={"active": active},
+ json={
+ "active": active,
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ActivateSyncEnvelope,
+ parse_obj_as(
+ type_=ActivateSyncEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1361,7 +1888,7 @@ async def start(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1380,22 +1907,56 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/executions",
method="POST",
- json={"fetch_mode": fetch_mode, "resync": resync, "schemas": schemas, "test": test},
+ json={
+ "fetch_mode": fetch_mode,
+ "resync": resync,
+ "schemas": schemas,
+ "test": test,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncExecutionEnvelope,
+ parse_obj_as(
+ type_=BulkSyncExecutionEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 409:
raise ConflictError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1422,7 +1983,7 @@ async def get_status(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1439,20 +2000,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/bulk/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options
+ f"api/bulk/syncs/{jsonable_encoder(id)}/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncStatusEnvelope,
+ parse_obj_as(
+ type_=BulkSyncStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1485,7 +2074,7 @@ async def get_source(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1505,25 +2094,59 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/bulksync/source",
method="GET",
- params={"include_fields": include_fields},
+ params={
+ "include_fields": include_fields,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1550,7 +2173,7 @@ async def get_destination(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1567,24 +2190,58 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/bulksync/target", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/bulksync/target",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncDestEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncDestEnvelope,
+ parse_obj_as(
+ type_=BulkSyncDestEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/bulk_sync/executions/client.py b/src/polytomic/bulk_sync/executions/client.py
index 594e4cd..89be86c 100644
--- a/src/polytomic/bulk_sync/executions/client.py
+++ b/src/polytomic/bulk_sync/executions/client.py
@@ -1,24 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
+from ...core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ...core.api_error import ApiError as core_api_error_ApiError
-from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ...core.jsonable_encoder import jsonable_encoder
-from ...core.pydantic_utilities import pydantic_v1
from ...core.request_options import RequestOptions
-from ...errors.bad_request_error import BadRequestError
-from ...errors.internal_server_error import InternalServerError
-from ...errors.not_found_error import NotFoundError
+from ...types.list_bulk_sync_execution_status_envelope import ListBulkSyncExecutionStatusEnvelope
+from ...core.pydantic_utilities import parse_obj_as
from ...errors.unauthorized_error import UnauthorizedError
+from ...types.rest_err_response import RestErrResponse
+from ...errors.not_found_error import NotFoundError
from ...types.api_error import ApiError as types_api_error_ApiError
-from ...types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope
-from ...types.list_bulk_sync_execution_status_envelope import ListBulkSyncExecutionStatusEnvelope
+from json.decoder import JSONDecodeError
+from ...core.api_error import ApiError as core_api_error_ApiError
from ...types.list_bulk_sync_executions_envelope import ListBulkSyncExecutionsEnvelope
-from ...types.rest_err_response import RestErrResponse
+from ...core.jsonable_encoder import jsonable_encoder
+from ...types.bulk_sync_execution_envelope import BulkSyncExecutionEnvelope
from ...types.v_4_bulk_sync_execution_logs_envelope import V4BulkSyncExecutionLogsEnvelope
from ...types.v_4_export_sync_logs_envelope import V4ExportSyncLogsEnvelope
+from ...errors.bad_request_error import BadRequestError
+from ...errors.internal_server_error import InternalServerError
+from ...core.client_wrapper import AsyncClientWrapper
class ExecutionsClient:
@@ -55,7 +55,7 @@ def list_status(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -69,17 +69,41 @@ def list_status(
_response = self._client_wrapper.httpx_client.request(
"api/bulk/syncs/status",
method="GET",
- params={"all": all_, "active": active, "sync_id": sync_id},
+ params={
+ "all": all_,
+ "active": active,
+ "sync_id": sync_id,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSyncExecutionStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSyncExecutionStatusEnvelope,
+ parse_obj_as(
+ type_=ListBulkSyncExecutionStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -104,7 +128,7 @@ def list(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -115,16 +139,38 @@ def list(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="GET", request_options=request_options
+ f"api/bulk/syncs/{jsonable_encoder(id)}/executions",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSyncExecutionsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSyncExecutionsEnvelope,
+ parse_obj_as(
+ type_=ListBulkSyncExecutionsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -151,7 +197,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -169,12 +215,32 @@ def get(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncExecutionEnvelope,
+ parse_obj_as(
+ type_=BulkSyncExecutionEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -201,7 +267,7 @@ def get_logs(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -219,12 +285,32 @@ def get_logs(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4BulkSyncExecutionLogsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4BulkSyncExecutionLogsEnvelope,
+ parse_obj_as(
+ type_=V4BulkSyncExecutionLogsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -259,7 +345,7 @@ def export_logs(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -273,25 +359,59 @@ def export_logs(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(sync_id)}/executions/{jsonable_encoder(execution_id)}/logs/export",
method="POST",
- params={"notify": notify},
+ params={
+ "notify": notify,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4ExportSyncLogsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4ExportSyncLogsEnvelope,
+ parse_obj_as(
+ type_=V4ExportSyncLogsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -335,7 +455,7 @@ async def list_status(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -355,17 +475,41 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/bulk/syncs/status",
method="GET",
- params={"all": all_, "active": active, "sync_id": sync_id},
+ params={
+ "all": all_,
+ "active": active,
+ "sync_id": sync_id,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSyncExecutionStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSyncExecutionStatusEnvelope,
+ parse_obj_as(
+ type_=ListBulkSyncExecutionStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -392,7 +536,7 @@ async def list(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -409,16 +553,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/bulk/syncs/{jsonable_encoder(id)}/executions", method="GET", request_options=request_options
+ f"api/bulk/syncs/{jsonable_encoder(id)}/executions",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSyncExecutionsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSyncExecutionsEnvelope,
+ parse_obj_as(
+ type_=ListBulkSyncExecutionsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -447,7 +613,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -471,12 +637,32 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncExecutionEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncExecutionEnvelope,
+ parse_obj_as(
+ type_=BulkSyncExecutionEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -505,7 +691,7 @@ async def get_logs(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -529,12 +715,32 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4BulkSyncExecutionLogsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4BulkSyncExecutionLogsEnvelope,
+ parse_obj_as(
+ type_=V4BulkSyncExecutionLogsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -571,7 +777,7 @@ async def export_logs(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -591,25 +797,59 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(sync_id)}/executions/{jsonable_encoder(execution_id)}/logs/export",
method="POST",
- params={"notify": notify},
+ params={
+ "notify": notify,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4ExportSyncLogsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4ExportSyncLogsEnvelope,
+ parse_obj_as(
+ type_=V4ExportSyncLogsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/bulk_sync/schemas/client.py b/src/polytomic/bulk_sync/schemas/client.py
index 25c958d..5829858 100644
--- a/src/polytomic/bulk_sync/schemas/client.py
+++ b/src/polytomic/bulk_sync/schemas/client.py
@@ -1,26 +1,27 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
import typing
+from ...core.client_wrapper import SyncClientWrapper
+from ...core.request_options import RequestOptions
+from ...types.list_bulk_schema import ListBulkSchema
+from ...core.jsonable_encoder import jsonable_encoder
+from ...core.pydantic_utilities import parse_obj_as
+from ...errors.unauthorized_error import UnauthorizedError
+from ...types.rest_err_response import RestErrResponse
+from ...errors.not_found_error import NotFoundError
+from ...types.api_error import ApiError as types_api_error_ApiError
from json.decoder import JSONDecodeError
-
from ...core.api_error import ApiError as core_api_error_ApiError
-from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ...core.jsonable_encoder import jsonable_encoder
-from ...core.pydantic_utilities import pydantic_v1
-from ...core.request_options import RequestOptions
+from ...types.bulk_schema import BulkSchema
+from ...core.serialization import convert_and_respect_annotation_metadata
from ...errors.bad_request_error import BadRequestError
from ...errors.forbidden_error import ForbiddenError
from ...errors.internal_server_error import InternalServerError
-from ...errors.not_found_error import NotFoundError
-from ...errors.unauthorized_error import UnauthorizedError
-from ...types.api_error import ApiError as types_api_error_ApiError
+from ...types.bulk_schema_envelope import BulkSchemaEnvelope
+import datetime as dt
from ...types.bulk_field import BulkField
from ...types.bulk_filter import BulkFilter
-from ...types.bulk_schema import BulkSchema
-from ...types.bulk_schema_envelope import BulkSchemaEnvelope
-from ...types.list_bulk_schema import ListBulkSchema
-from ...types.rest_err_response import RestErrResponse
+from ...core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -54,7 +55,7 @@ def list(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -67,17 +68,39 @@ def list(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/schemas",
method="GET",
- params={"filters": jsonable_encoder(filters)},
+ params={
+ "filters": filters,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSchema,
+ parse_obj_as(
+ type_=ListBulkSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -108,7 +131,7 @@ def patch(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -121,30 +144,75 @@ def patch(
_response = self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/schemas",
method="PATCH",
- json={"schemas": schemas},
+ json={
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[BulkSchema], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSchema,
+ parse_obj_as(
+ type_=ListBulkSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -171,7 +239,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -189,12 +257,32 @@ def get(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -243,7 +331,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -261,29 +349,68 @@ def update(
"data_cutoff_timestamp": data_cutoff_timestamp,
"disable_data_cutoff": disable_data_cutoff,
"enabled": enabled,
- "fields": fields,
- "filters": filters,
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[BulkField], direction="write"
+ ),
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[BulkFilter], direction="write"
+ ),
"partition_key": partition_key,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -321,7 +448,7 @@ async def list(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -340,17 +467,39 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/schemas",
method="GET",
- params={"filters": jsonable_encoder(filters)},
+ params={
+ "filters": filters,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSchema,
+ parse_obj_as(
+ type_=ListBulkSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -383,7 +532,7 @@ async def patch(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -402,30 +551,75 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/bulk/syncs/{jsonable_encoder(id)}/schemas",
method="PATCH",
- json={"schemas": schemas},
+ json={
+ "schemas": convert_and_respect_annotation_metadata(
+ object_=schemas, annotation=typing.Sequence[BulkSchema], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListBulkSchema, _response.json()) # type: ignore
+ return typing.cast(
+ ListBulkSchema,
+ parse_obj_as(
+ type_=ListBulkSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -454,7 +648,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -478,12 +672,32 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -534,7 +748,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -558,29 +772,68 @@ async def main() -> None:
"data_cutoff_timestamp": data_cutoff_timestamp,
"disable_data_cutoff": disable_data_cutoff,
"enabled": enabled,
- "fields": fields,
- "filters": filters,
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[BulkField], direction="write"
+ ),
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[BulkFilter], direction="write"
+ ),
"partition_key": partition_key,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py b/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py
index 0f598fd..5808811 100644
--- a/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py
+++ b/src/polytomic/bulk_sync/types/v_2_create_bulk_sync_request_schemas_item.py
@@ -1,7 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
from ...types.schema_configuration import SchemaConfiguration
V2CreateBulkSyncRequestSchemasItem = typing.Union[str, SchemaConfiguration]
diff --git a/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py b/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py
index 8d56582..ea51f93 100644
--- a/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py
+++ b/src/polytomic/bulk_sync/types/v_2_update_bulk_sync_request_schemas_item.py
@@ -1,7 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
from ...types.schema_configuration import SchemaConfiguration
V2UpdateBulkSyncRequestSchemasItem = typing.Union[str, SchemaConfiguration]
diff --git a/src/polytomic/client.py b/src/polytomic/client.py
index 426d867..8af37f6 100644
--- a/src/polytomic/client.py
+++ b/src/polytomic/client.py
@@ -1,24 +1,36 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
-import httpx
-
-from .bulk_sync.client import AsyncBulkSyncClient, BulkSyncClient
-from .connections.client import AsyncConnectionsClient, ConnectionsClient
-from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from .environment import PolytomicEnvironment
-from .events.client import AsyncEventsClient, EventsClient
-from .identity.client import AsyncIdentityClient, IdentityClient
-from .jobs.client import AsyncJobsClient, JobsClient
-from .model_sync.client import AsyncModelSyncClient, ModelSyncClient
-from .models.client import AsyncModelsClient, ModelsClient
-from .organization.client import AsyncOrganizationClient, OrganizationClient
-from .permissions.client import AsyncPermissionsClient, PermissionsClient
-from .query_runner.client import AsyncQueryRunnerClient, QueryRunnerClient
-from .schemas.client import AsyncSchemasClient, SchemasClient
-from .users.client import AsyncUsersClient, UsersClient
-from .webhooks.client import AsyncWebhooksClient, WebhooksClient
+import httpx
+from .core.client_wrapper import SyncClientWrapper
+from .bulk_sync.client import BulkSyncClient
+from .connections.client import ConnectionsClient
+from .query_runner.client import QueryRunnerClient
+from .models.client import ModelsClient
+from .model_sync.client import ModelSyncClient
+from .schemas.client import SchemasClient
+from .events.client import EventsClient
+from .jobs.client import JobsClient
+from .identity.client import IdentityClient
+from .organization.client import OrganizationClient
+from .users.client import UsersClient
+from .webhooks.client import WebhooksClient
+from .permissions.client import PermissionsClient
+from .core.client_wrapper import AsyncClientWrapper
+from .bulk_sync.client import AsyncBulkSyncClient
+from .connections.client import AsyncConnectionsClient
+from .query_runner.client import AsyncQueryRunnerClient
+from .models.client import AsyncModelsClient
+from .model_sync.client import AsyncModelSyncClient
+from .schemas.client import AsyncSchemasClient
+from .events.client import AsyncEventsClient
+from .jobs.client import AsyncJobsClient
+from .identity.client import AsyncIdentityClient
+from .organization.client import AsyncOrganizationClient
+from .users.client import AsyncUsersClient
+from .webhooks.client import AsyncWebhooksClient
+from .permissions.client import AsyncPermissionsClient
class Polytomic:
@@ -52,7 +64,7 @@ class Polytomic:
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -69,9 +81,11 @@ def __init__(
token: typing.Union[str, typing.Callable[[], str]],
timeout: typing.Optional[float] = None,
follow_redirects: typing.Optional[bool] = True,
- httpx_client: typing.Optional[httpx.Client] = None
+ httpx_client: typing.Optional[httpx.Client] = None,
):
- _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
+ _defaulted_timeout = (
+ timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read
+ )
self._client_wrapper = SyncClientWrapper(
base_url=_get_base_url(base_url=base_url, environment=environment),
version=version,
@@ -129,7 +143,7 @@ class AsyncPolytomic:
Examples
--------
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -146,9 +160,11 @@ def __init__(
token: typing.Union[str, typing.Callable[[], str]],
timeout: typing.Optional[float] = None,
follow_redirects: typing.Optional[bool] = True,
- httpx_client: typing.Optional[httpx.AsyncClient] = None
+ httpx_client: typing.Optional[httpx.AsyncClient] = None,
):
- _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
+ _defaulted_timeout = (
+ timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read
+ )
self._client_wrapper = AsyncClientWrapper(
base_url=_get_base_url(base_url=base_url, environment=environment),
version=version,
diff --git a/src/polytomic/connections/client.py b/src/polytomic/connections/client.py
index f9cbeeb..0fa44e9 100644
--- a/src/polytomic/connections/client.py
+++ b/src/polytomic/connections/client.py
@@ -1,28 +1,28 @@
# This file was auto-generated by Fern from our API Definition.
import typing
+from ..core.client_wrapper import SyncClientWrapper
+from ..core.request_options import RequestOptions
+from ..types.connection_type_response_envelope import ConnectionTypeResponseEnvelope
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unauthorized_error import UnauthorizedError
+from ..types.rest_err_response import RestErrResponse
+from ..errors.internal_server_error import InternalServerError
+from ..types.api_error import ApiError as types_api_error_ApiError
from json.decoder import JSONDecodeError
-
from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
+from ..types.jsonschema_schema import JsonschemaSchema
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
-from ..core.request_options import RequestOptions
+from ..errors.not_found_error import NotFoundError
+from ..types.connection_list_response_envelope import ConnectionListResponseEnvelope
+from ..types.create_connection_response_envelope import CreateConnectionResponseEnvelope
from ..errors.bad_request_error import BadRequestError
from ..errors.forbidden_error import ForbiddenError
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.api_error import ApiError as types_api_error_ApiError
from ..types.connect_card_response_envelope import ConnectCardResponseEnvelope
-from ..types.connection_list_response_envelope import ConnectionListResponseEnvelope
-from ..types.connection_parameter_values_response_envelope import ConnectionParameterValuesResponseEnvelope
from ..types.connection_response_envelope import ConnectionResponseEnvelope
-from ..types.connection_type_response_envelope import ConnectionTypeResponseEnvelope
-from ..types.create_connection_response_envelope import CreateConnectionResponseEnvelope
-from ..types.jsonschema_schema import JsonschemaSchema
-from ..types.rest_err_response import RestErrResponse
+from ..types.connection_parameter_values_response_envelope import ConnectionParameterValuesResponseEnvelope
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -46,7 +46,7 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None)
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -55,16 +55,38 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None)
client.connections.get_types()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/connection_types", method="GET", request_options=request_options
+ "api/connection_types",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionTypeResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionTypeResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionTypeResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -89,7 +111,7 @@ def get_connection_type_schema(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -100,20 +122,48 @@ def get_connection_type_schema(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connection_types/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/connection_types/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(JsonschemaSchema, _response.json()) # type: ignore
+ return typing.cast(
+ JsonschemaSchema,
+ parse_obj_as(
+ type_=JsonschemaSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -134,7 +184,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -143,16 +193,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co
client.connections.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/connections", method="GET", request_options=request_options
+ "api/connections",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionListResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -162,7 +234,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Co
def create(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
name: str,
type: str,
organization_id: typing.Optional[str] = OMIT,
@@ -174,7 +246,7 @@ def create(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
name : str
@@ -200,7 +272,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -230,29 +302,70 @@ def create(
"type": type,
"validate": validate,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ CreateConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=CreateConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -265,6 +378,7 @@ def connect(
name: str,
redirect_url: str,
connection: typing.Optional[str] = OMIT,
+ dark: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
type: typing.Optional[str] = OMIT,
whitelist: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -274,16 +388,22 @@ def connect(
Parameters
----------
name : str
+ Name of the new connection.
redirect_url : str
+ URL to redirect to after connection is created.
connection : typing.Optional[str]
+ dark : typing.Optional[bool]
+
organization_id : typing.Optional[str]
type : typing.Optional[str]
+ Connection type to create.
whitelist : typing.Optional[typing.Sequence[str]]
+ List of connection types which are allowed to be created. Ignored if type is set.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -295,7 +415,7 @@ def connect(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -311,31 +431,67 @@ def connect(
method="POST",
json={
"connection": connection,
+ "dark": dark,
"name": name,
"organization_id": organization_id,
"redirect_url": redirect_url,
"type": type,
"whitelist": whitelist,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectCardResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectCardResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectCardResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -358,7 +514,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -369,20 +525,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -393,7 +577,7 @@ def update(
self,
id: str,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
name: str,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -407,7 +591,7 @@ def update(
----------
id : str
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
name : str
@@ -432,7 +616,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -462,33 +646,80 @@ def update(
"type": type,
"validate": validate,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ CreateConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=CreateConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -514,7 +745,7 @@ def remove(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -528,29 +759,63 @@ def remove(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}",
method="DELETE",
- params={"force": force},
+ params={
+ "force": force,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -575,7 +840,7 @@ def get_parameter_values(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -586,20 +851,48 @@ def get_parameter_values(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/parameter_values", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/parameter_values",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionParameterValuesResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionParameterValuesResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionParameterValuesResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -629,7 +922,7 @@ async def get_types(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -644,16 +937,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/connection_types", method="GET", request_options=request_options
+ "api/connection_types",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionTypeResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionTypeResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionTypeResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -680,7 +995,7 @@ async def get_connection_type_schema(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -697,20 +1012,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connection_types/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/connection_types/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(JsonschemaSchema, _response.json()) # type: ignore
+ return typing.cast(
+ JsonschemaSchema,
+ parse_obj_as(
+ type_=JsonschemaSchema, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -733,7 +1076,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -748,16 +1091,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/connections", method="GET", request_options=request_options
+ "api/connections",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionListResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -767,7 +1132,7 @@ async def main() -> None:
async def create(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
name: str,
type: str,
organization_id: typing.Optional[str] = OMIT,
@@ -779,7 +1144,7 @@ async def create(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
name : str
@@ -807,7 +1172,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -843,29 +1208,70 @@ async def main() -> None:
"type": type,
"validate": validate,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ CreateConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=CreateConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -878,6 +1284,7 @@ async def connect(
name: str,
redirect_url: str,
connection: typing.Optional[str] = OMIT,
+ dark: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
type: typing.Optional[str] = OMIT,
whitelist: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -887,16 +1294,22 @@ async def connect(
Parameters
----------
name : str
+ Name of the new connection.
redirect_url : str
+ URL to redirect to after connection is created.
connection : typing.Optional[str]
+ dark : typing.Optional[bool]
+
organization_id : typing.Optional[str]
type : typing.Optional[str]
+ Connection type to create.
whitelist : typing.Optional[typing.Sequence[str]]
+ List of connection types which are allowed to be created. Ignored if type is set.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -910,7 +1323,7 @@ async def connect(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -932,31 +1345,67 @@ async def main() -> None:
method="POST",
json={
"connection": connection,
+ "dark": dark,
"name": name,
"organization_id": organization_id,
"redirect_url": redirect_url,
"type": type,
"whitelist": whitelist,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectCardResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectCardResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectCardResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -983,7 +1432,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1000,20 +1449,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1024,7 +1501,7 @@ async def update(
self,
id: str,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
name: str,
organization_id: typing.Optional[str] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -1038,7 +1515,7 @@ async def update(
----------
id : str
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
name : str
@@ -1065,7 +1542,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1101,33 +1578,80 @@ async def main() -> None:
"type": type,
"validate": validate,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(CreateConnectionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ CreateConnectionResponseEnvelope,
+ parse_obj_as(
+ type_=CreateConnectionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1155,7 +1679,7 @@ async def remove(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1175,29 +1699,63 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}",
method="DELETE",
- params={"force": force},
+ params={
+ "force": force,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1224,7 +1782,7 @@ async def get_parameter_values(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1241,20 +1799,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/parameter_values", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/parameter_values",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ConnectionParameterValuesResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ConnectionParameterValuesResponseEnvelope,
+ parse_obj_as(
+ type_=ConnectionParameterValuesResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/core/__init__.py b/src/polytomic/core/__init__.py
index 58ad52a..f03aecb 100644
--- a/src/polytomic/core/__init__.py
+++ b/src/polytomic/core/__init__.py
@@ -3,28 +3,45 @@
from .api_error import ApiError
from .client_wrapper import AsyncClientWrapper, BaseClientWrapper, SyncClientWrapper
from .datetime_utils import serialize_datetime
-from .file import File, convert_file_dict_to_httpx_tuples
+from .file import File, convert_file_dict_to_httpx_tuples, with_content_type
from .http_client import AsyncHttpClient, HttpClient
from .jsonable_encoder import jsonable_encoder
-from .pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from .pydantic_utilities import (
+ IS_PYDANTIC_V2,
+ UniversalBaseModel,
+ UniversalRootModel,
+ parse_obj_as,
+ universal_field_validator,
+ universal_root_validator,
+ update_forward_refs,
+)
from .query_encoder import encode_query
from .remove_none_from_dict import remove_none_from_dict
from .request_options import RequestOptions
+from .serialization import FieldMetadata, convert_and_respect_annotation_metadata
__all__ = [
"ApiError",
"AsyncClientWrapper",
"AsyncHttpClient",
"BaseClientWrapper",
+ "FieldMetadata",
"File",
"HttpClient",
+ "IS_PYDANTIC_V2",
"RequestOptions",
"SyncClientWrapper",
+ "UniversalBaseModel",
+ "UniversalRootModel",
+ "convert_and_respect_annotation_metadata",
"convert_file_dict_to_httpx_tuples",
- "deep_union_pydantic_dicts",
"encode_query",
"jsonable_encoder",
- "pydantic_v1",
+ "parse_obj_as",
"remove_none_from_dict",
"serialize_datetime",
+ "universal_field_validator",
+ "universal_root_validator",
+ "update_forward_refs",
+ "with_content_type",
]
diff --git a/src/polytomic/core/client_wrapper.py b/src/polytomic/core/client_wrapper.py
index bd7faef..310eb76 100644
--- a/src/polytomic/core/client_wrapper.py
+++ b/src/polytomic/core/client_wrapper.py
@@ -1,10 +1,9 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
import httpx
-
-from .http_client import AsyncHttpClient, HttpClient
+from .http_client import HttpClient
+from .http_client import AsyncHttpClient
class BaseClientWrapper:
@@ -23,9 +22,10 @@ def __init__(
def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
+ "User-Agent": "polytomic/1.11.3",
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "polytomic",
- "X-Fern-SDK-Version": "1.11.2",
+ "X-Fern-SDK-Version": "1.11.3",
}
if self._version is not None:
headers["X-Polytomic-Version"] = self._version
@@ -58,9 +58,9 @@ def __init__(
super().__init__(version=version, token=token, base_url=base_url, timeout=timeout)
self.httpx_client = HttpClient(
httpx_client=httpx_client,
- base_headers=self.get_headers(),
- base_timeout=self.get_timeout(),
- base_url=self.get_base_url(),
+ base_headers=self.get_headers,
+ base_timeout=self.get_timeout,
+ base_url=self.get_base_url,
)
@@ -77,7 +77,7 @@ def __init__(
super().__init__(version=version, token=token, base_url=base_url, timeout=timeout)
self.httpx_client = AsyncHttpClient(
httpx_client=httpx_client,
- base_headers=self.get_headers(),
- base_timeout=self.get_timeout(),
- base_url=self.get_base_url(),
+ base_headers=self.get_headers,
+ base_timeout=self.get_timeout,
+ base_url=self.get_base_url,
)
diff --git a/src/polytomic/core/file.py b/src/polytomic/core/file.py
index cb0d40b..44b0d27 100644
--- a/src/polytomic/core/file.py
+++ b/src/polytomic/core/file.py
@@ -1,25 +1,30 @@
# This file was auto-generated by Fern from our API Definition.
-import typing
+from typing import IO, Dict, List, Mapping, Optional, Tuple, Union, cast
# File typing inspired by the flexibility of types within the httpx library
# https://github.com/encode/httpx/blob/master/httpx/_types.py
-FileContent = typing.Union[typing.IO[bytes], bytes, str]
-File = typing.Union[
+FileContent = Union[IO[bytes], bytes, str]
+File = Union[
# file (or bytes)
FileContent,
# (filename, file (or bytes))
- typing.Tuple[typing.Optional[str], FileContent],
+ Tuple[Optional[str], FileContent],
# (filename, file (or bytes), content_type)
- typing.Tuple[typing.Optional[str], FileContent, typing.Optional[str]],
+ Tuple[Optional[str], FileContent, Optional[str]],
# (filename, file (or bytes), content_type, headers)
- typing.Tuple[typing.Optional[str], FileContent, typing.Optional[str], typing.Mapping[str, str]],
+ Tuple[
+ Optional[str],
+ FileContent,
+ Optional[str],
+ Mapping[str, str],
+ ],
]
def convert_file_dict_to_httpx_tuples(
- d: typing.Dict[str, typing.Union[File, typing.List[File]]]
-) -> typing.List[typing.Tuple[str, File]]:
+ d: Dict[str, Union[File, List[File]]],
+) -> List[Tuple[str, File]]:
"""
The format we use is a list of tuples, where the first element is the
name of the file and the second is the file object. Typically HTTPX wants
@@ -36,3 +41,27 @@ def convert_file_dict_to_httpx_tuples(
else:
httpx_tuples.append((key, file_like))
return httpx_tuples
+
+
+def with_content_type(*, file: File, default_content_type: str) -> File:
+ """
+ This function resolves to the file's content type, if provided, and defaults
+ to the default_content_type value if not.
+ """
+ if isinstance(file, tuple):
+ if len(file) == 2:
+ filename, content = cast(Tuple[Optional[str], FileContent], file) # type: ignore
+ return (filename, content, default_content_type)
+ elif len(file) == 3:
+ filename, content, file_content_type = cast(Tuple[Optional[str], FileContent, Optional[str]], file) # type: ignore
+ out_content_type = file_content_type or default_content_type
+ return (filename, content, out_content_type)
+ elif len(file) == 4:
+ filename, content, file_content_type, headers = cast( # type: ignore
+ Tuple[Optional[str], FileContent, Optional[str], Mapping[str, str]], file
+ )
+ out_content_type = file_content_type or default_content_type
+ return (filename, content, out_content_type, headers)
+ else:
+ raise ValueError(f"Unexpected tuple length: {len(file)}")
+ return (None, file, default_content_type)
diff --git a/src/polytomic/core/http_client.py b/src/polytomic/core/http_client.py
index 09c6836..e7bd4f7 100644
--- a/src/polytomic/core/http_client.py
+++ b/src/polytomic/core/http_client.py
@@ -2,7 +2,6 @@
import asyncio
import email.utils
-import json
import re
import time
import typing
@@ -11,7 +10,6 @@
from random import random
import httpx
-
from .file import File, convert_file_dict_to_httpx_tuples
from .jsonable_encoder import jsonable_encoder
from .query_encoder import encode_query
@@ -85,12 +83,13 @@ def _retry_timeout(response: httpx.Response, retries: int) -> float:
def _should_retry(response: httpx.Response) -> bool:
- retriable_400s = [429, 408, 409]
- return response.status_code >= 500 or response.status_code in retriable_400s
+ retryable_400s = [429, 408, 409]
+ return response.status_code >= 500 or response.status_code in retryable_400s
def remove_omit_from_dict(
- original: typing.Dict[str, typing.Optional[typing.Any]], omit: typing.Optional[typing.Any]
+ original: typing.Dict[str, typing.Optional[typing.Any]],
+ omit: typing.Optional[typing.Any],
) -> typing.Dict[str, typing.Any]:
if omit is None:
return original
@@ -108,7 +107,7 @@ def maybe_filter_request_body(
) -> typing.Optional[typing.Any]:
if data is None:
return (
- jsonable_encoder(request_options.get("additional_body_parameters", {}))
+ jsonable_encoder(request_options.get("additional_body_parameters", {})) or {}
if request_options is not None
else None
)
@@ -118,7 +117,7 @@ def maybe_filter_request_body(
data_content = {
**(jsonable_encoder(remove_omit_from_dict(data, omit))), # type: ignore
**(
- jsonable_encoder(request_options.get("additional_body_parameters", {}))
+ jsonable_encoder(request_options.get("additional_body_parameters", {})) or {}
if request_options is not None
else {}
),
@@ -142,7 +141,8 @@ def get_request_body(
# If both data and json are None, we send json data in the event extra properties are specified
json_body = maybe_filter_request_body(json, request_options, omit)
- return json_body, data_body
+ # If you have an empty JSON body, you should just send None
+ return (json_body if json_body != {} else None), data_body if data_body != {} else None
class HttpClient:
@@ -150,9 +150,9 @@ def __init__(
self,
*,
httpx_client: httpx.Client,
- base_timeout: typing.Optional[float],
- base_headers: typing.Dict[str, str],
- base_url: typing.Optional[str] = None,
+ base_timeout: typing.Callable[[], typing.Optional[float]],
+ base_headers: typing.Callable[[], typing.Dict[str, str]],
+ base_url: typing.Optional[typing.Callable[[], str]] = None,
):
self.base_url = base_url
self.base_timeout = base_timeout
@@ -160,7 +160,10 @@ def __init__(
self.httpx_client = httpx_client
def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str:
- base_url = self.base_url if maybe_base_url is None else maybe_base_url
+ base_url = maybe_base_url
+ if self.base_url is not None and base_url is None:
+ base_url = self.base_url()
+
if base_url is None:
raise ValueError("A base_url is required to make this request, please provide one and try again.")
return base_url
@@ -178,14 +181,14 @@ def request(
files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
+ retries: int = 2,
omit: typing.Optional[typing.Any] = None,
) -> httpx.Response:
base_url = self.get_base_url(base_url)
timeout = (
request_options.get("timeout_in_seconds")
if request_options is not None and request_options.get("timeout_in_seconds") is not None
- else self.base_timeout
+ else self.base_timeout()
)
json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
@@ -196,9 +199,9 @@ def request(
headers=jsonable_encoder(
remove_none_from_dict(
{
- **self.base_headers,
+ **self.base_headers(),
**(headers if headers is not None else {}),
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
+ **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}),
}
)
),
@@ -209,7 +212,7 @@ def request(
{
**(params if params is not None else {}),
**(
- request_options.get("additional_query_parameters", {})
+ request_options.get("additional_query_parameters", {}) or {}
if request_options is not None
else {}
),
@@ -222,7 +225,11 @@ def request(
json=json_body,
data=data_body,
content=content,
- files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None,
+ files=(
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
+ if (files is not None and files is not omit)
+ else None
+ ),
timeout=timeout,
)
@@ -260,14 +267,14 @@ def stream(
files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
+ retries: int = 2,
omit: typing.Optional[typing.Any] = None,
) -> typing.Iterator[httpx.Response]:
base_url = self.get_base_url(base_url)
timeout = (
request_options.get("timeout_in_seconds")
if request_options is not None and request_options.get("timeout_in_seconds") is not None
- else self.base_timeout
+ else self.base_timeout()
)
json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
@@ -278,7 +285,7 @@ def stream(
headers=jsonable_encoder(
remove_none_from_dict(
{
- **self.base_headers,
+ **self.base_headers(),
**(headers if headers is not None else {}),
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
}
@@ -304,7 +311,11 @@ def stream(
json=json_body,
data=data_body,
content=content,
- files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None,
+ files=(
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
+ if (files is not None and files is not omit)
+ else None
+ ),
timeout=timeout,
) as stream:
yield stream
@@ -315,9 +326,9 @@ def __init__(
self,
*,
httpx_client: httpx.AsyncClient,
- base_timeout: typing.Optional[float],
- base_headers: typing.Dict[str, str],
- base_url: typing.Optional[str] = None,
+ base_timeout: typing.Callable[[], typing.Optional[float]],
+ base_headers: typing.Callable[[], typing.Dict[str, str]],
+ base_url: typing.Optional[typing.Callable[[], str]] = None,
):
self.base_url = base_url
self.base_timeout = base_timeout
@@ -325,7 +336,10 @@ def __init__(
self.httpx_client = httpx_client
def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str:
- base_url = self.base_url if maybe_base_url is None else maybe_base_url
+ base_url = maybe_base_url
+ if self.base_url is not None and base_url is None:
+ base_url = self.base_url()
+
if base_url is None:
raise ValueError("A base_url is required to make this request, please provide one and try again.")
return base_url
@@ -343,14 +357,14 @@ async def request(
files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
+ retries: int = 2,
omit: typing.Optional[typing.Any] = None,
) -> httpx.Response:
base_url = self.get_base_url(base_url)
timeout = (
request_options.get("timeout_in_seconds")
if request_options is not None and request_options.get("timeout_in_seconds") is not None
- else self.base_timeout
+ else self.base_timeout()
)
json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
@@ -362,9 +376,9 @@ async def request(
headers=jsonable_encoder(
remove_none_from_dict(
{
- **self.base_headers,
+ **self.base_headers(),
**(headers if headers is not None else {}),
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
+ **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}),
}
)
),
@@ -375,7 +389,7 @@ async def request(
{
**(params if params is not None else {}),
**(
- request_options.get("additional_query_parameters", {})
+ request_options.get("additional_query_parameters", {}) or {}
if request_options is not None
else {}
),
@@ -388,7 +402,11 @@ async def request(
json=json_body,
data=data_body,
content=content,
- files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None,
+ files=(
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
+ if files is not None
+ else None
+ ),
timeout=timeout,
)
@@ -425,14 +443,14 @@ async def stream(
files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
+ retries: int = 2,
omit: typing.Optional[typing.Any] = None,
) -> typing.AsyncIterator[httpx.Response]:
base_url = self.get_base_url(base_url)
timeout = (
request_options.get("timeout_in_seconds")
if request_options is not None and request_options.get("timeout_in_seconds") is not None
- else self.base_timeout
+ else self.base_timeout()
)
json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
@@ -443,7 +461,7 @@ async def stream(
headers=jsonable_encoder(
remove_none_from_dict(
{
- **self.base_headers,
+ **self.base_headers(),
**(headers if headers is not None else {}),
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
}
@@ -469,7 +487,11 @@ async def stream(
json=json_body,
data=data_body,
content=content,
- files=convert_file_dict_to_httpx_tuples(remove_none_from_dict(files)) if files is not None else None,
+ files=(
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
+ if files is not None
+ else None
+ ),
timeout=timeout,
) as stream:
yield stream
diff --git a/src/polytomic/core/jsonable_encoder.py b/src/polytomic/core/jsonable_encoder.py
index 7f48273..afee366 100644
--- a/src/polytomic/core/jsonable_encoder.py
+++ b/src/polytomic/core/jsonable_encoder.py
@@ -8,33 +8,26 @@
https://github.com/tiangolo/fastapi/blob/master/fastapi/encoders.py
"""
+import base64
import dataclasses
import datetime as dt
-from collections import defaultdict
from enum import Enum
from pathlib import PurePath
from types import GeneratorType
-from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
+from typing import Any, Callable, Dict, List, Optional, Set, Union
+import pydantic
from .datetime_utils import serialize_datetime
-from .pydantic_utilities import pydantic_v1
+from .pydantic_utilities import (
+ IS_PYDANTIC_V2,
+ encode_by_type,
+ to_jsonable_with_fallback,
+)
SetIntStr = Set[Union[int, str]]
DictIntStrAny = Dict[Union[int, str], Any]
-def generate_encoders_by_class_tuples(
- type_encoder_map: Dict[Any, Callable[[Any], Any]]
-) -> Dict[Callable[[Any], Any], Tuple[Any, ...]]:
- encoders_by_class_tuples: Dict[Callable[[Any], Any], Tuple[Any, ...]] = defaultdict(tuple)
- for type_, encoder in type_encoder_map.items():
- encoders_by_class_tuples[encoder] += (type_,)
- return encoders_by_class_tuples
-
-
-encoders_by_class_tuples = generate_encoders_by_class_tuples(pydantic_v1.json.ENCODERS_BY_TYPE)
-
-
def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any], Any]]] = None) -> Any:
custom_encoder = custom_encoder or {}
if custom_encoder:
@@ -44,17 +37,24 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any]
for encoder_type, encoder_instance in custom_encoder.items():
if isinstance(obj, encoder_type):
return encoder_instance(obj)
- if isinstance(obj, pydantic_v1.BaseModel):
- encoder = getattr(obj.__config__, "json_encoders", {})
+ if isinstance(obj, pydantic.BaseModel):
+ if IS_PYDANTIC_V2:
+ encoder = getattr(obj.model_config, "json_encoders", {}) # type: ignore # Pydantic v2
+ else:
+ encoder = getattr(obj.__config__, "json_encoders", {}) # type: ignore # Pydantic v1
if custom_encoder:
encoder.update(custom_encoder)
obj_dict = obj.dict(by_alias=True)
if "__root__" in obj_dict:
obj_dict = obj_dict["__root__"]
+ if "root" in obj_dict:
+ obj_dict = obj_dict["root"]
return jsonable_encoder(obj_dict, custom_encoder=encoder)
if dataclasses.is_dataclass(obj):
- obj_dict = dataclasses.asdict(obj)
+ obj_dict = dataclasses.asdict(obj) # type: ignore
return jsonable_encoder(obj_dict, custom_encoder=custom_encoder)
+ if isinstance(obj, bytes):
+ return base64.b64encode(obj).decode("utf-8")
if isinstance(obj, Enum):
return obj.value
if isinstance(obj, PurePath):
@@ -80,20 +80,21 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any]
encoded_list.append(jsonable_encoder(item, custom_encoder=custom_encoder))
return encoded_list
- if type(obj) in pydantic_v1.json.ENCODERS_BY_TYPE:
- return pydantic_v1.json.ENCODERS_BY_TYPE[type(obj)](obj)
- for encoder, classes_tuple in encoders_by_class_tuples.items():
- if isinstance(obj, classes_tuple):
- return encoder(obj)
+ def fallback_serializer(o: Any) -> Any:
+ attempt_encode = encode_by_type(o)
+ if attempt_encode is not None:
+ return attempt_encode
- try:
- data = dict(obj)
- except Exception as e:
- errors: List[Exception] = []
- errors.append(e)
try:
- data = vars(obj)
+ data = dict(o)
except Exception as e:
+ errors: List[Exception] = []
errors.append(e)
- raise ValueError(errors) from e
- return jsonable_encoder(data, custom_encoder=custom_encoder)
+ try:
+ data = vars(o)
+ except Exception as e:
+ errors.append(e)
+ raise ValueError(errors) from e
+ return jsonable_encoder(data, custom_encoder=custom_encoder)
+
+ return to_jsonable_with_fallback(obj, fallback_serializer)
diff --git a/src/polytomic/core/pydantic_utilities.py b/src/polytomic/core/pydantic_utilities.py
index a72c1a5..f7467bc 100644
--- a/src/polytomic/core/pydantic_utilities.py
+++ b/src/polytomic/core/pydantic_utilities.py
@@ -1,28 +1,294 @@
# This file was auto-generated by Fern from our API Definition.
+# nopycln: file
+import datetime as dt
import typing
+from collections import defaultdict
import pydantic
+import typing_extensions
+from .datetime_utils import serialize_datetime
+from .serialization import convert_and_respect_annotation_metadata
IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.")
if IS_PYDANTIC_V2:
- import pydantic.v1 as pydantic_v1 # type: ignore # nopycln: import
+ # isort will try to reformat the comments on these imports, which breaks mypy
+ # isort: off
+ from pydantic.v1.datetime_parse import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
+ parse_date as parse_date,
+ )
+ from pydantic.v1.datetime_parse import ( # pyright: ignore[reportMissingImports] # Pydantic v2
+ parse_datetime as parse_datetime,
+ )
+ from pydantic.v1.json import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
+ ENCODERS_BY_TYPE as encoders_by_type,
+ )
+ from pydantic.v1.typing import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
+ get_args as get_args,
+ )
+ from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
+ get_origin as get_origin,
+ )
+ from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
+ is_literal_type as is_literal_type,
+ )
+ from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
+ is_union as is_union,
+ )
+ from pydantic.v1.fields import ModelField as ModelField # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
else:
- import pydantic as pydantic_v1 # type: ignore # nopycln: import
+ from pydantic.datetime_parse import parse_date as parse_date # type: ignore # Pydantic v1
+ from pydantic.datetime_parse import parse_datetime as parse_datetime # type: ignore # Pydantic v1
+ from pydantic.fields import ModelField as ModelField # type: ignore # Pydantic v1
+ from pydantic.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore # Pydantic v1
+ from pydantic.typing import get_args as get_args # type: ignore # Pydantic v1
+ from pydantic.typing import get_origin as get_origin # type: ignore # Pydantic v1
+ from pydantic.typing import is_literal_type as is_literal_type # type: ignore # Pydantic v1
+ from pydantic.typing import is_union as is_union # type: ignore # Pydantic v1
+
+ # isort: on
+
+
+T = typing.TypeVar("T")
+Model = typing.TypeVar("Model", bound=pydantic.BaseModel)
+
+
+def parse_obj_as(type_: typing.Type[T], object_: typing.Any) -> T:
+ dealiased_object = convert_and_respect_annotation_metadata(object_=object_, annotation=type_, direction="read")
+ if IS_PYDANTIC_V2:
+ adapter = pydantic.TypeAdapter(type_) # type: ignore # Pydantic v2
+ return adapter.validate_python(dealiased_object)
+ else:
+ return pydantic.parse_obj_as(type_, dealiased_object)
+
+
+def to_jsonable_with_fallback(
+ obj: typing.Any, fallback_serializer: typing.Callable[[typing.Any], typing.Any]
+) -> typing.Any:
+ if IS_PYDANTIC_V2:
+ from pydantic_core import to_jsonable_python
+
+ return to_jsonable_python(obj, fallback=fallback_serializer)
+ else:
+ return fallback_serializer(obj)
+
+
+class UniversalBaseModel(pydantic.BaseModel):
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
+ # Allow fields beginning with `model_` to be used in the model
+ protected_namespaces=(),
+ ) # type: ignore # Pydantic v2
+
+ @pydantic.model_serializer(mode="wrap", when_used="json") # type: ignore # Pydantic v2
+ def serialize_model(self, handler: pydantic.SerializerFunctionWrapHandler) -> typing.Any: # type: ignore # Pydantic v2
+ serialized = handler(self)
+ data = {k: serialize_datetime(v) if isinstance(v, dt.datetime) else v for k, v in serialized.items()}
+ return data
+
+ else:
+
+ class Config:
+ smart_union = True
+ json_encoders = {dt.datetime: serialize_datetime}
+
+ @classmethod
+ def model_construct(
+ cls: typing.Type["Model"], _fields_set: typing.Optional[typing.Set[str]] = None, **values: typing.Any
+ ) -> "Model":
+ dealiased_object = convert_and_respect_annotation_metadata(object_=values, annotation=cls, direction="read")
+ return cls.construct(_fields_set, **dealiased_object)
+
+ @classmethod
+ def construct(
+ cls: typing.Type["Model"], _fields_set: typing.Optional[typing.Set[str]] = None, **values: typing.Any
+ ) -> "Model":
+ dealiased_object = convert_and_respect_annotation_metadata(object_=values, annotation=cls, direction="read")
+ if IS_PYDANTIC_V2:
+ return super().model_construct(_fields_set, **dealiased_object) # type: ignore # Pydantic v2
+ else:
+ return super().construct(_fields_set, **dealiased_object)
+
+ def json(self, **kwargs: typing.Any) -> str:
+ kwargs_with_defaults: typing.Any = {
+ "by_alias": True,
+ "exclude_unset": True,
+ **kwargs,
+ }
+ if IS_PYDANTIC_V2:
+ return super().model_dump_json(**kwargs_with_defaults) # type: ignore # Pydantic v2
+ else:
+ return super().json(**kwargs_with_defaults)
+
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
+ """
+ Override the default dict method to `exclude_unset` by default. This function patches
+ `exclude_unset` to work include fields within non-None default values.
+ """
+ # Note: the logic here is multiplexed given the levers exposed in Pydantic V1 vs V2
+ # Pydantic V1's .dict can be extremely slow, so we do not want to call it twice.
+ #
+ # We'd ideally do the same for Pydantic V2, but it shells out to a library to serialize models
+ # that we have less control over, and this is less intrusive than custom serializers for now.
+ if IS_PYDANTIC_V2:
+ kwargs_with_defaults_exclude_unset: typing.Any = {
+ **kwargs,
+ "by_alias": True,
+ "exclude_unset": True,
+ "exclude_none": False,
+ }
+ kwargs_with_defaults_exclude_none: typing.Any = {
+ **kwargs,
+ "by_alias": True,
+ "exclude_none": True,
+ "exclude_unset": False,
+ }
+ dict_dump = deep_union_pydantic_dicts(
+ super().model_dump(**kwargs_with_defaults_exclude_unset), # type: ignore # Pydantic v2
+ super().model_dump(**kwargs_with_defaults_exclude_none), # type: ignore # Pydantic v2
+ )
+
+ else:
+ _fields_set = self.__fields_set__.copy()
+
+ fields = _get_model_fields(self.__class__)
+ for name, field in fields.items():
+ if name not in _fields_set:
+ default = _get_field_default(field)
+
+ # If the default values are non-null act like they've been set
+ # This effectively allows exclude_unset to work like exclude_none where
+ # the latter passes through intentionally set none values.
+ if default is not None or ("exclude_unset" in kwargs and not kwargs["exclude_unset"]):
+ _fields_set.add(name)
+
+ if default is not None:
+ self.__fields_set__.add(name)
+
+ kwargs_with_defaults_exclude_unset_include_fields: typing.Any = {
+ "by_alias": True,
+ "exclude_unset": True,
+ "include": _fields_set,
+ **kwargs,
+ }
+
+ dict_dump = super().dict(**kwargs_with_defaults_exclude_unset_include_fields)
+
+ return convert_and_respect_annotation_metadata(object_=dict_dump, annotation=self.__class__, direction="write")
+
+
+def _union_list_of_pydantic_dicts(
+ source: typing.List[typing.Any], destination: typing.List[typing.Any]
+) -> typing.List[typing.Any]:
+ converted_list: typing.List[typing.Any] = []
+ for i, item in enumerate(source):
+ destination_value = destination[i] # type: ignore
+ if isinstance(item, dict):
+ converted_list.append(deep_union_pydantic_dicts(item, destination_value))
+ elif isinstance(item, list):
+ converted_list.append(_union_list_of_pydantic_dicts(item, destination_value))
+ else:
+ converted_list.append(item)
+ return converted_list
def deep_union_pydantic_dicts(
source: typing.Dict[str, typing.Any], destination: typing.Dict[str, typing.Any]
) -> typing.Dict[str, typing.Any]:
for key, value in source.items():
+ node = destination.setdefault(key, {})
if isinstance(value, dict):
- node = destination.setdefault(key, {})
deep_union_pydantic_dicts(value, node)
+ # Note: we do not do this same processing for sets given we do not have sets of models
+ # and given the sets are unordered, the processing of the set and matching objects would
+ # be non-trivial.
+ elif isinstance(value, list):
+ destination[key] = _union_list_of_pydantic_dicts(value, node)
else:
destination[key] = value
return destination
-__all__ = ["pydantic_v1"]
+if IS_PYDANTIC_V2:
+
+ class V2RootModel(UniversalBaseModel, pydantic.RootModel): # type: ignore # Pydantic v2
+ pass
+
+ UniversalRootModel: typing_extensions.TypeAlias = V2RootModel # type: ignore
+else:
+ UniversalRootModel: typing_extensions.TypeAlias = UniversalBaseModel # type: ignore
+
+
+def encode_by_type(o: typing.Any) -> typing.Any:
+ encoders_by_class_tuples: typing.Dict[typing.Callable[[typing.Any], typing.Any], typing.Tuple[typing.Any, ...]] = (
+ defaultdict(tuple)
+ )
+ for type_, encoder in encoders_by_type.items():
+ encoders_by_class_tuples[encoder] += (type_,)
+
+ if type(o) in encoders_by_type:
+ return encoders_by_type[type(o)](o)
+ for encoder, classes_tuple in encoders_by_class_tuples.items():
+ if isinstance(o, classes_tuple):
+ return encoder(o)
+
+
+def update_forward_refs(model: typing.Type["Model"], **localns: typing.Any) -> None:
+ if IS_PYDANTIC_V2:
+ model.model_rebuild(raise_errors=False) # type: ignore # Pydantic v2
+ else:
+ model.update_forward_refs(**localns)
+
+
+# Mirrors Pydantic's internal typing
+AnyCallable = typing.Callable[..., typing.Any]
+
+
+def universal_root_validator(
+ pre: bool = False,
+) -> typing.Callable[[AnyCallable], AnyCallable]:
+ def decorator(func: AnyCallable) -> AnyCallable:
+ if IS_PYDANTIC_V2:
+ return pydantic.model_validator(mode="before" if pre else "after")(func) # type: ignore # Pydantic v2
+ else:
+ return pydantic.root_validator(pre=pre)(func) # type: ignore # Pydantic v1
+
+ return decorator
+
+
+def universal_field_validator(field_name: str, pre: bool = False) -> typing.Callable[[AnyCallable], AnyCallable]:
+ def decorator(func: AnyCallable) -> AnyCallable:
+ if IS_PYDANTIC_V2:
+ return pydantic.field_validator(field_name, mode="before" if pre else "after")(func) # type: ignore # Pydantic v2
+ else:
+ return pydantic.validator(field_name, pre=pre)(func) # type: ignore # Pydantic v1
+
+ return decorator
+
+
+PydanticField = typing.Union[ModelField, pydantic.fields.FieldInfo]
+
+
+def _get_model_fields(
+ model: typing.Type["Model"],
+) -> typing.Mapping[str, PydanticField]:
+ if IS_PYDANTIC_V2:
+ return model.model_fields # type: ignore # Pydantic v2
+ else:
+ return model.__fields__ # type: ignore # Pydantic v1
+
+
+def _get_field_default(field: PydanticField) -> typing.Any:
+ try:
+ value = field.get_default() # type: ignore # Pydantic < v1.10.15
+ except:
+ value = field.default
+ if IS_PYDANTIC_V2:
+ from pydantic_core import PydanticUndefined
+
+ if value == PydanticUndefined:
+ return None
+ return value
+ return value
diff --git a/src/polytomic/core/query_encoder.py b/src/polytomic/core/query_encoder.py
index 1f5f766..3183001 100644
--- a/src/polytomic/core/query_encoder.py
+++ b/src/polytomic/core/query_encoder.py
@@ -1,33 +1,58 @@
# This file was auto-generated by Fern from our API Definition.
-from collections import ChainMap
-from typing import Any, Dict, Optional
+from typing import Any, Dict, List, Optional, Tuple
-from .pydantic_utilities import pydantic_v1
+import pydantic
# Flattens dicts to be of the form {"key[subkey][subkey2]": value} where value is not a dict
-def traverse_query_dict(dict_flat: Dict[str, Any], key_prefix: Optional[str] = None) -> Dict[str, Any]:
- result = {}
+def traverse_query_dict(dict_flat: Dict[str, Any], key_prefix: Optional[str] = None) -> List[Tuple[str, Any]]:
+ result = []
for k, v in dict_flat.items():
key = f"{key_prefix}[{k}]" if key_prefix is not None else k
if isinstance(v, dict):
- result.update(traverse_query_dict(v, key))
+ result.extend(traverse_query_dict(v, key))
+ elif isinstance(v, list):
+ for arr_v in v:
+ if isinstance(arr_v, dict):
+ result.extend(traverse_query_dict(arr_v, key))
+ else:
+ result.append((key, arr_v))
else:
- result[key] = v
+ result.append((key, v))
return result
-def single_query_encoder(query_key: str, query_value: Any) -> Dict[str, Any]:
- if isinstance(query_value, pydantic_v1.BaseModel) or isinstance(query_value, dict):
- if isinstance(query_value, pydantic_v1.BaseModel):
+def single_query_encoder(query_key: str, query_value: Any) -> List[Tuple[str, Any]]:
+ if isinstance(query_value, pydantic.BaseModel) or isinstance(query_value, dict):
+ if isinstance(query_value, pydantic.BaseModel):
obj_dict = query_value.dict(by_alias=True)
else:
obj_dict = query_value
return traverse_query_dict(obj_dict, query_key)
+ elif isinstance(query_value, list):
+ encoded_values: List[Tuple[str, Any]] = []
+ for value in query_value:
+ if isinstance(value, pydantic.BaseModel) or isinstance(value, dict):
+ if isinstance(value, pydantic.BaseModel):
+ obj_dict = value.dict(by_alias=True)
+ elif isinstance(value, dict):
+ obj_dict = value
- return {query_key: query_value}
+ encoded_values.extend(single_query_encoder(query_key, obj_dict))
+ else:
+ encoded_values.append((query_key, value))
+ return encoded_values
-def encode_query(query: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]:
- return dict(ChainMap(*[single_query_encoder(k, v) for k, v in query.items()])) if query is not None else None
+ return [(query_key, query_value)]
+
+
+def encode_query(query: Optional[Dict[str, Any]]) -> Optional[List[Tuple[str, Any]]]:
+ if query is None:
+ return None
+
+ encoded_query = []
+ for k, v in query.items():
+ encoded_query.extend(single_query_encoder(k, v))
+ return encoded_query
diff --git a/src/polytomic/core/request_options.py b/src/polytomic/core/request_options.py
index d0bf0db..1b38804 100644
--- a/src/polytomic/core/request_options.py
+++ b/src/polytomic/core/request_options.py
@@ -23,6 +23,8 @@ class RequestOptions(typing.TypedDict, total=False):
- additional_query_parameters: typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's query parameters dict
- additional_body_parameters: typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's body parameters dict
+
+ - chunk_size: int. The size, in bytes, to process each chunk of data being streamed back within the response. This equates to leveraging `chunk_size` within `requests` or `httpx`, and is only leveraged for file downloads.
"""
timeout_in_seconds: NotRequired[int]
@@ -30,3 +32,4 @@ class RequestOptions(typing.TypedDict, total=False):
additional_headers: NotRequired[typing.Dict[str, typing.Any]]
additional_query_parameters: NotRequired[typing.Dict[str, typing.Any]]
additional_body_parameters: NotRequired[typing.Dict[str, typing.Any]]
+ chunk_size: NotRequired[int]
diff --git a/src/polytomic/core/serialization.py b/src/polytomic/core/serialization.py
new file mode 100644
index 0000000..e3d17f0
--- /dev/null
+++ b/src/polytomic/core/serialization.py
@@ -0,0 +1,271 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import collections
+import inspect
+import typing
+
+import pydantic
+import typing_extensions
+
+
+class FieldMetadata:
+ """
+ Metadata class used to annotate fields to provide additional information.
+
+ Example:
+ class MyDict(TypedDict):
+ field: typing.Annotated[str, FieldMetadata(alias="field_name")]
+
+ Will serialize: `{"field": "value"}`
+ To: `{"field_name": "value"}`
+ """
+
+ alias: str
+
+ def __init__(self, *, alias: str) -> None:
+ self.alias = alias
+
+
+def convert_and_respect_annotation_metadata(
+ *,
+ object_: typing.Any,
+ annotation: typing.Any,
+ inner_type: typing.Optional[typing.Any] = None,
+ direction: typing.Literal["read", "write"],
+) -> typing.Any:
+ """
+ Respect the metadata annotations on a field, such as aliasing. This function effectively
+ manipulates the dict-form of an object to respect the metadata annotations. This is primarily used for
+ TypedDicts, which cannot support aliasing out of the box, and can be extended for additional
+ utilities, such as defaults.
+
+ Parameters
+ ----------
+ object_ : typing.Any
+
+ annotation : type
+ The type we're looking to apply typing annotations from
+
+ inner_type : typing.Optional[type]
+
+ Returns
+ -------
+ typing.Any
+ """
+
+ if object_ is None:
+ return None
+ if inner_type is None:
+ inner_type = annotation
+
+ clean_type = _remove_annotations(inner_type)
+ # Pydantic models
+ if (
+ inspect.isclass(clean_type)
+ and issubclass(clean_type, pydantic.BaseModel)
+ and isinstance(object_, typing.Mapping)
+ ):
+ return _convert_mapping(object_, clean_type, direction)
+ # TypedDicts
+ if typing_extensions.is_typeddict(clean_type) and isinstance(object_, typing.Mapping):
+ return _convert_mapping(object_, clean_type, direction)
+
+ if (
+ typing_extensions.get_origin(clean_type) == typing.Dict
+ or typing_extensions.get_origin(clean_type) == dict
+ or clean_type == typing.Dict
+ ) and isinstance(object_, typing.Dict):
+ key_type = typing_extensions.get_args(clean_type)[0]
+ value_type = typing_extensions.get_args(clean_type)[1]
+
+ return {
+ key: convert_and_respect_annotation_metadata(
+ object_=value,
+ annotation=annotation,
+ inner_type=value_type,
+ direction=direction,
+ )
+ for key, value in object_.items()
+ }
+
+ # If you're iterating on a string, do not bother to coerce it to a sequence.
+ if not isinstance(object_, str):
+ if (
+ typing_extensions.get_origin(clean_type) == typing.Set
+ or typing_extensions.get_origin(clean_type) == set
+ or clean_type == typing.Set
+ ) and isinstance(object_, typing.Set):
+ inner_type = typing_extensions.get_args(clean_type)[0]
+ return {
+ convert_and_respect_annotation_metadata(
+ object_=item,
+ annotation=annotation,
+ inner_type=inner_type,
+ direction=direction,
+ )
+ for item in object_
+ }
+ elif (
+ (
+ typing_extensions.get_origin(clean_type) == typing.List
+ or typing_extensions.get_origin(clean_type) == list
+ or clean_type == typing.List
+ )
+ and isinstance(object_, typing.List)
+ ) or (
+ (
+ typing_extensions.get_origin(clean_type) == typing.Sequence
+ or typing_extensions.get_origin(clean_type) == collections.abc.Sequence
+ or clean_type == typing.Sequence
+ )
+ and isinstance(object_, typing.Sequence)
+ ):
+ inner_type = typing_extensions.get_args(clean_type)[0]
+ return [
+ convert_and_respect_annotation_metadata(
+ object_=item,
+ annotation=annotation,
+ inner_type=inner_type,
+ direction=direction,
+ )
+ for item in object_
+ ]
+
+ if typing_extensions.get_origin(clean_type) == typing.Union:
+ # We should be able to ~relatively~ safely try to convert keys against all
+ # member types in the union, the edge case here is if one member aliases a field
+ # of the same name to a different name from another member
+ # Or if another member aliases a field of the same name that another member does not.
+ for member in typing_extensions.get_args(clean_type):
+ object_ = convert_and_respect_annotation_metadata(
+ object_=object_,
+ annotation=annotation,
+ inner_type=member,
+ direction=direction,
+ )
+ return object_
+
+ annotated_type = _get_annotation(annotation)
+ if annotated_type is None:
+ return object_
+
+ # If the object is not a TypedDict, a Union, or other container (list, set, sequence, etc.)
+ # Then we can safely call it on the recursive conversion.
+ return object_
+
+
+def _convert_mapping(
+ object_: typing.Mapping[str, object],
+ expected_type: typing.Any,
+ direction: typing.Literal["read", "write"],
+) -> typing.Mapping[str, object]:
+ converted_object: typing.Dict[str, object] = {}
+ annotations = typing_extensions.get_type_hints(expected_type, include_extras=True)
+ aliases_to_field_names = _get_alias_to_field_name(annotations)
+ for key, value in object_.items():
+ if direction == "read" and key in aliases_to_field_names:
+ dealiased_key = aliases_to_field_names.get(key)
+ if dealiased_key is not None:
+ type_ = annotations.get(dealiased_key)
+ else:
+ type_ = annotations.get(key)
+ # Note you can't get the annotation by the field name if you're in read mode, so you must check the aliases map
+ #
+ # So this is effectively saying if we're in write mode, and we don't have a type, or if we're in read mode and we don't have an alias
+ # then we can just pass the value through as is
+ if type_ is None:
+ converted_object[key] = value
+ elif direction == "read" and key not in aliases_to_field_names:
+ converted_object[key] = convert_and_respect_annotation_metadata(
+ object_=value, annotation=type_, direction=direction
+ )
+ else:
+ converted_object[_alias_key(key, type_, direction, aliases_to_field_names)] = (
+ convert_and_respect_annotation_metadata(object_=value, annotation=type_, direction=direction)
+ )
+ return converted_object
+
+
+def _get_annotation(type_: typing.Any) -> typing.Optional[typing.Any]:
+ maybe_annotated_type = typing_extensions.get_origin(type_)
+ if maybe_annotated_type is None:
+ return None
+
+ if maybe_annotated_type == typing_extensions.NotRequired:
+ type_ = typing_extensions.get_args(type_)[0]
+ maybe_annotated_type = typing_extensions.get_origin(type_)
+
+ if maybe_annotated_type == typing_extensions.Annotated:
+ return type_
+
+ return None
+
+
+def _remove_annotations(type_: typing.Any) -> typing.Any:
+ maybe_annotated_type = typing_extensions.get_origin(type_)
+ if maybe_annotated_type is None:
+ return type_
+
+ if maybe_annotated_type == typing_extensions.NotRequired:
+ return _remove_annotations(typing_extensions.get_args(type_)[0])
+
+ if maybe_annotated_type == typing_extensions.Annotated:
+ return _remove_annotations(typing_extensions.get_args(type_)[0])
+
+ return type_
+
+
+def get_alias_to_field_mapping(type_: typing.Any) -> typing.Dict[str, str]:
+ annotations = typing_extensions.get_type_hints(type_, include_extras=True)
+ return _get_alias_to_field_name(annotations)
+
+
+def get_field_to_alias_mapping(type_: typing.Any) -> typing.Dict[str, str]:
+ annotations = typing_extensions.get_type_hints(type_, include_extras=True)
+ return _get_field_to_alias_name(annotations)
+
+
+def _get_alias_to_field_name(
+ field_to_hint: typing.Dict[str, typing.Any],
+) -> typing.Dict[str, str]:
+ aliases = {}
+ for field, hint in field_to_hint.items():
+ maybe_alias = _get_alias_from_type(hint)
+ if maybe_alias is not None:
+ aliases[maybe_alias] = field
+ return aliases
+
+
+def _get_field_to_alias_name(
+ field_to_hint: typing.Dict[str, typing.Any],
+) -> typing.Dict[str, str]:
+ aliases = {}
+ for field, hint in field_to_hint.items():
+ maybe_alias = _get_alias_from_type(hint)
+ if maybe_alias is not None:
+ aliases[field] = maybe_alias
+ return aliases
+
+
+def _get_alias_from_type(type_: typing.Any) -> typing.Optional[str]:
+ maybe_annotated_type = _get_annotation(type_)
+
+ if maybe_annotated_type is not None:
+ # The actual annotations are 1 onward, the first is the annotated type
+ annotations = typing_extensions.get_args(maybe_annotated_type)[1:]
+
+ for annotation in annotations:
+ if isinstance(annotation, FieldMetadata) and annotation.alias is not None:
+ return annotation.alias
+ return None
+
+
+def _alias_key(
+ key: str,
+ type_: typing.Any,
+ direction: typing.Literal["read", "write"],
+ aliases_to_field_names: typing.Dict[str, str],
+) -> str:
+ if direction == "read":
+ return aliases_to_field_names.get(key, key)
+ return _get_alias_from_type(type_=type_) or key
diff --git a/src/polytomic/events/client.py b/src/polytomic/events/client.py
index 7eeac64..01d4d77 100644
--- a/src/polytomic/events/client.py
+++ b/src/polytomic/events/client.py
@@ -1,21 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import pydantic_v1
+import datetime as dt
from ..core.request_options import RequestOptions
-from ..errors.internal_server_error import InternalServerError
+from ..types.events_envelope import EventsEnvelope
+from ..core.datetime_utils import serialize_datetime
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.unauthorized_error import UnauthorizedError
+from ..types.rest_err_response import RestErrResponse
from ..errors.unprocessable_entity_error import UnprocessableEntityError
from ..types.api_error import ApiError as types_api_error_ApiError
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
from ..types.event_types_envelope import EventTypesEnvelope
-from ..types.events_envelope import EventsEnvelope
-from ..types.rest_err_response import RestErrResponse
+from ..core.client_wrapper import AsyncClientWrapper
class EventsClient:
@@ -30,7 +30,7 @@ def list(
starting_after: typing.Optional[dt.datetime] = None,
ending_before: typing.Optional[dt.datetime] = None,
limit: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None
+ request_options: typing.Optional[RequestOptions] = None,
) -> EventsEnvelope:
"""
Parameters
@@ -57,7 +57,7 @@ def list(
--------
import datetime
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -87,16 +87,42 @@ def list(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(EventsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ EventsEnvelope,
+ parse_obj_as(
+ type_=EventsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -117,7 +143,7 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None)
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -126,13 +152,29 @@ def get_types(self, *, request_options: typing.Optional[RequestOptions] = None)
client.events.get_types()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/events_types", method="GET", request_options=request_options
+ "api/events_types",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(EventTypesEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ EventTypesEnvelope,
+ parse_obj_as(
+ type_=EventTypesEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
_response_json = _response.json()
except JSONDecodeError:
raise core_api_error_ApiError(status_code=_response.status_code, body=_response.text)
@@ -151,7 +193,7 @@ async def list(
starting_after: typing.Optional[dt.datetime] = None,
ending_before: typing.Optional[dt.datetime] = None,
limit: typing.Optional[int] = None,
- request_options: typing.Optional[RequestOptions] = None
+ request_options: typing.Optional[RequestOptions] = None,
) -> EventsEnvelope:
"""
Parameters
@@ -179,7 +221,7 @@ async def list(
import asyncio
import datetime
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -215,16 +257,42 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(EventsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ EventsEnvelope,
+ parse_obj_as(
+ type_=EventsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -247,7 +315,7 @@ async def get_types(self, *, request_options: typing.Optional[RequestOptions] =
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -262,13 +330,29 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/events_types", method="GET", request_options=request_options
+ "api/events_types",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(EventTypesEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ EventTypesEnvelope,
+ parse_obj_as(
+ type_=EventTypesEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
_response_json = _response.json()
except JSONDecodeError:
raise core_api_error_ApiError(status_code=_response.status_code, body=_response.text)
diff --git a/src/polytomic/identity/client.py b/src/polytomic/identity/client.py
index 401f235..daf2a20 100644
--- a/src/polytomic/identity/client.py
+++ b/src/polytomic/identity/client.py
@@ -1,17 +1,17 @@
# This file was auto-generated by Fern from our API Definition.
+from ..core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.pydantic_utilities import pydantic_v1
from ..core.request_options import RequestOptions
-from ..errors.internal_server_error import InternalServerError
-from ..errors.unauthorized_error import UnauthorizedError
-from ..types.api_error import ApiError as types_api_error_ApiError
from ..types.get_identity_response_envelope import GetIdentityResponseEnvelope
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unauthorized_error import UnauthorizedError
from ..types.rest_err_response import RestErrResponse
+from ..errors.internal_server_error import InternalServerError
+from ..types.api_error import ApiError as types_api_error_ApiError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
+from ..core.client_wrapper import AsyncClientWrapper
class IdentityClient:
@@ -32,7 +32,7 @@ def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> Get
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -40,15 +40,39 @@ def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> Get
)
client.identity.get()
"""
- _response = self._client_wrapper.httpx_client.request("api/me", method="GET", request_options=request_options)
+ _response = self._client_wrapper.httpx_client.request(
+ "api/me",
+ method="GET",
+ request_options=request_options,
+ )
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetIdentityResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetIdentityResponseEnvelope,
+ parse_obj_as(
+ type_=GetIdentityResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -76,7 +100,7 @@ async def get(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -91,16 +115,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/me", method="GET", request_options=request_options
+ "api/me",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetIdentityResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetIdentityResponseEnvelope,
+ parse_obj_as(
+ type_=GetIdentityResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/jobs/client.py b/src/polytomic/jobs/client.py
index 89c461e..32ba6b8 100644
--- a/src/polytomic/jobs/client.py
+++ b/src/polytomic/jobs/client.py
@@ -1,20 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
+from ..core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
from ..core.request_options import RequestOptions
+from ..types.job_response_envelope import JobResponseEnvelope
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.bad_request_error import BadRequestError
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.job_response_envelope import JobResponseEnvelope
+from ..errors.unauthorized_error import UnauthorizedError
from ..types.rest_err_response import RestErrResponse
+from ..errors.not_found_error import NotFoundError
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
+from ..core.client_wrapper import AsyncClientWrapper
class JobsClient:
@@ -41,7 +41,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -53,24 +53,58 @@ def get(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(JobResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ JobResponseEnvelope,
+ parse_obj_as(
+ type_=JobResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -104,7 +138,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -122,24 +156,58 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/jobs/{jsonable_encoder(type)}/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(JobResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ JobResponseEnvelope,
+ parse_obj_as(
+ type_=JobResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/model_sync/client.py b/src/polytomic/model_sync/client.py
index 6e094f3..395f1f3 100644
--- a/src/polytomic/model_sync/client.py
+++ b/src/polytomic/model_sync/client.py
@@ -1,42 +1,44 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
+from .executions.client import ExecutionsClient
from ..core.request_options import RequestOptions
+from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.bad_request_error import BadRequestError
-from ..errors.conflict_error import ConflictError
+from ..types.api_error import ApiError as types_api_error_ApiError
+from ..errors.unauthorized_error import UnauthorizedError
+from ..types.rest_err_response import RestErrResponse
from ..errors.forbidden_error import ForbiddenError
-from ..errors.internal_server_error import InternalServerError
from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
-from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.activate_sync_envelope import ActivateSyncEnvelope
-from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.enrichment import Enrichment
-from ..types.filter import Filter
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
+from ..types.model_field_response import ModelFieldResponse
from ..types.get_connection_meta_envelope import GetConnectionMetaEnvelope
-from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope
-from ..types.identity import Identity
+from ..types.target_response_envelope import TargetResponseEnvelope
+from ..types.v_4_target_objects_response_envelope import V4TargetObjectsResponseEnvelope
+from ..types.sync_mode import SyncMode
from ..types.list_model_sync_response_envelope import ListModelSyncResponseEnvelope
-from ..types.model_field_response import ModelFieldResponse
from ..types.model_sync_field import ModelSyncField
-from ..types.model_sync_response_envelope import ModelSyncResponseEnvelope
-from ..types.override import Override
-from ..types.rest_err_response import RestErrResponse
from ..types.schedule import Schedule
+from ..types.target import Target
+from ..types.enrichment import Enrichment
+from ..types.filter import Filter
+from ..types.identity import Identity
+from ..types.override import Override
+from ..types.model_sync_response_envelope import ModelSyncResponseEnvelope
+from ..core.serialization import convert_and_respect_annotation_metadata
+from ..errors.unprocessable_entity_error import UnprocessableEntityError
from ..types.schedule_option_response_envelope import ScheduleOptionResponseEnvelope
+from ..types.activate_sync_envelope import ActivateSyncEnvelope
from ..types.start_model_sync_response_envelope import StartModelSyncResponseEnvelope
-from ..types.sync_mode import SyncMode
+from ..errors.conflict_error import ConflictError
from ..types.sync_status_envelope import SyncStatusEnvelope
-from ..types.target import Target
-from ..types.target_response_envelope import TargetResponseEnvelope
-from ..types.v_4_target_objects_response_envelope import V4TargetObjectsResponseEnvelope
-from .executions.client import AsyncExecutionsClient, ExecutionsClient
+from ..core.client_wrapper import AsyncClientWrapper
+from .executions.client import AsyncExecutionsClient
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -71,7 +73,7 @@ def get_source(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -84,29 +86,69 @@ def get_source(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/source",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetModelSyncSourceMetaEnvelope,
+ parse_obj_as(
+ type_=GetModelSyncSourceMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -137,7 +179,7 @@ def get_source_fields(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -150,29 +192,69 @@ def get_source_fields(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/source/fields",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelFieldResponse, _response.json()) # type: ignore
+ return typing.cast(
+ ModelFieldResponse,
+ parse_obj_as(
+ type_=ModelFieldResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -206,7 +288,7 @@ def get_target(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -219,29 +301,70 @@ def get_target(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/target",
method="GET",
- params={"type": type, "search": search},
+ params={
+ "type": type,
+ "search": search,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetConnectionMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetConnectionMetaEnvelope,
+ parse_obj_as(
+ type_=GetConnectionMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -275,7 +398,7 @@ def get_target_fields(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -290,25 +413,60 @@ def get_target_fields(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/target/fields",
method="GET",
- params={"target": target, "refresh": refresh},
+ params={
+ "target": target,
+ "refresh": refresh,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(TargetResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ TargetResponseEnvelope,
+ parse_obj_as(
+ type_=TargetResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -333,7 +491,7 @@ def get_target_objects(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -350,24 +508,62 @@ def get_target_objects(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4TargetObjectsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4TargetObjectsResponseEnvelope,
+ parse_obj_as(
+ type_=V4TargetObjectsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -401,7 +597,7 @@ def list(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -415,25 +611,61 @@ def list(
_response = self._client_wrapper.httpx_client.request(
"api/syncs",
method="GET",
- params={"active": active, "mode": mode, "target_connection_id": target_connection_id},
+ params={
+ "active": active,
+ "mode": mode,
+ "target_connection_id": target_connection_id,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ListModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -453,10 +685,12 @@ def create(
filter_logic: typing.Optional[str] = OMIT,
filters: typing.Optional[typing.Sequence[Filter]] = OMIT,
identity: typing.Optional[Identity] = OMIT,
+ only_enrich_updates: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT,
overrides: typing.Optional[typing.Sequence[Override]] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
+ skip_initial_backfill: typing.Optional[bool] = OMIT,
sync_all_records: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ModelSyncResponseEnvelope:
@@ -484,6 +718,8 @@ def create(
identity : typing.Optional[Identity]
+ only_enrich_updates : typing.Optional[bool]
+
organization_id : typing.Optional[str]
override_fields : typing.Optional[typing.Sequence[ModelSyncField]]
@@ -494,6 +730,8 @@ def create(
policies : typing.Optional[typing.Sequence[str]]
+ skip_initial_backfill : typing.Optional[bool]
+
sync_all_records : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
@@ -506,8 +744,7 @@ def create(
Examples
--------
- from polytomic import ModelSyncField, Schedule, Target
- from polytomic.client import Polytomic
+ from polytomic import ModelSyncField, Polytomic, Schedule, Target
client = Polytomic(
version="YOUR_VERSION",
@@ -533,44 +770,101 @@ def create(
method="POST",
json={
"active": active,
- "enricher": enricher,
- "fields": fields,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
"filter_logic": filter_logic,
- "filters": filters,
- "identity": identity,
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[Filter], direction="write"
+ ),
+ "identity": convert_and_respect_annotation_metadata(
+ object_=identity, annotation=Identity, direction="write"
+ ),
"mode": mode,
"name": name,
+ "only_enrich_updates": only_enrich_updates,
"organization_id": organization_id,
- "override_fields": override_fields,
- "overrides": overrides,
+ "override_fields": convert_and_respect_annotation_metadata(
+ object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
+ "overrides": convert_and_respect_annotation_metadata(
+ object_=overrides, annotation=typing.Sequence[Override], direction="write"
+ ),
"policies": policies,
- "schedule": schedule,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=Schedule, direction="write"
+ ),
+ "skip_initial_backfill": skip_initial_backfill,
"sync_all_records": sync_all_records,
- "target": target,
+ "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"),
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -593,7 +887,7 @@ def get_schedule_options(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -602,16 +896,38 @@ def get_schedule_options(
client.model_sync.get_schedule_options()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/syncs/schedules", method="GET", request_options=request_options
+ "api/syncs/schedules",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ScheduleOptionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ScheduleOptionResponseEnvelope,
+ parse_obj_as(
+ type_=ScheduleOptionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -634,7 +950,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -645,20 +961,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -679,10 +1023,12 @@ def update(
filter_logic: typing.Optional[str] = OMIT,
filters: typing.Optional[typing.Sequence[Filter]] = OMIT,
identity: typing.Optional[Identity] = OMIT,
+ only_enrich_updates: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT,
overrides: typing.Optional[typing.Sequence[Override]] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
+ skip_initial_backfill: typing.Optional[bool] = OMIT,
sync_all_records: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ModelSyncResponseEnvelope:
@@ -712,6 +1058,8 @@ def update(
identity : typing.Optional[Identity]
+ only_enrich_updates : typing.Optional[bool]
+
organization_id : typing.Optional[str]
override_fields : typing.Optional[typing.Sequence[ModelSyncField]]
@@ -722,6 +1070,8 @@ def update(
policies : typing.Optional[typing.Sequence[str]]
+ skip_initial_backfill : typing.Optional[bool]
+
sync_all_records : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
@@ -734,8 +1084,7 @@ def update(
Examples
--------
- from polytomic import ModelSyncField, Schedule, Target
- from polytomic.client import Polytomic
+ from polytomic import ModelSyncField, Polytomic, Schedule, Target
client = Polytomic(
version="YOUR_VERSION",
@@ -762,48 +1111,111 @@ def update(
method="PUT",
json={
"active": active,
- "enricher": enricher,
- "fields": fields,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
"filter_logic": filter_logic,
- "filters": filters,
- "identity": identity,
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[Filter], direction="write"
+ ),
+ "identity": convert_and_respect_annotation_metadata(
+ object_=identity, annotation=Identity, direction="write"
+ ),
"mode": mode,
"name": name,
+ "only_enrich_updates": only_enrich_updates,
"organization_id": organization_id,
- "override_fields": override_fields,
- "overrides": overrides,
+ "override_fields": convert_and_respect_annotation_metadata(
+ object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
+ "overrides": convert_and_respect_annotation_metadata(
+ object_=overrides, annotation=typing.Sequence[Override], direction="write"
+ ),
"policies": policies,
- "schedule": schedule,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=Schedule, direction="write"
+ ),
+ "skip_initial_backfill": skip_initial_backfill,
"sync_all_records": sync_all_records,
- "target": target,
+ "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"),
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -825,7 +1237,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -836,24 +1248,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -880,7 +1320,7 @@ def activate(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -894,26 +1334,60 @@ def activate(
_response = self._client_wrapper.httpx_client.request(
f"api/syncs/{jsonable_encoder(id)}/activate",
method="POST",
- json={"active": active},
+ json={
+ "active": active,
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ActivateSyncEnvelope,
+ parse_obj_as(
+ type_=ActivateSyncEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -951,7 +1425,7 @@ def start(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -964,34 +1438,84 @@ def start(
_response = self._client_wrapper.httpx_client.request(
f"api/syncs/{jsonable_encoder(id)}/executions",
method="POST",
- json={"identities": identities, "resync": resync},
+ json={
+ "identities": identities,
+ "resync": resync,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(StartModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ StartModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=StartModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 409:
raise ConflictError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1014,7 +1538,7 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -1025,20 +1549,48 @@ def get_status(self, id: str, *, request_options: typing.Optional[RequestOptions
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(SyncStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ SyncStatusEnvelope,
+ parse_obj_as(
+ type_=SyncStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1077,7 +1629,7 @@ async def get_source(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1096,29 +1648,69 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/source",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetModelSyncSourceMetaEnvelope,
+ parse_obj_as(
+ type_=GetModelSyncSourceMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1151,7 +1743,7 @@ async def get_source_fields(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1170,29 +1762,69 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/source/fields",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelFieldResponse, _response.json()) # type: ignore
+ return typing.cast(
+ ModelFieldResponse,
+ parse_obj_as(
+ type_=ModelFieldResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1228,7 +1860,7 @@ async def get_target(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1247,29 +1879,70 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/target",
method="GET",
- params={"type": type, "search": search},
+ params={
+ "type": type,
+ "search": search,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetConnectionMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetConnectionMetaEnvelope,
+ parse_obj_as(
+ type_=GetConnectionMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1305,7 +1978,7 @@ async def get_target_fields(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1326,25 +1999,60 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/target/fields",
method="GET",
- params={"target": target, "refresh": refresh},
+ params={
+ "target": target,
+ "refresh": refresh,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(TargetResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ TargetResponseEnvelope,
+ parse_obj_as(
+ type_=TargetResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1371,7 +2079,7 @@ async def get_target_objects(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1394,24 +2102,62 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4TargetObjectsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4TargetObjectsResponseEnvelope,
+ parse_obj_as(
+ type_=V4TargetObjectsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1447,7 +2193,7 @@ async def list(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1467,25 +2213,61 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/syncs",
method="GET",
- params={"active": active, "mode": mode, "target_connection_id": target_connection_id},
+ params={
+ "active": active,
+ "mode": mode,
+ "target_connection_id": target_connection_id,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ListModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1505,10 +2287,12 @@ async def create(
filter_logic: typing.Optional[str] = OMIT,
filters: typing.Optional[typing.Sequence[Filter]] = OMIT,
identity: typing.Optional[Identity] = OMIT,
+ only_enrich_updates: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT,
overrides: typing.Optional[typing.Sequence[Override]] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
+ skip_initial_backfill: typing.Optional[bool] = OMIT,
sync_all_records: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ModelSyncResponseEnvelope:
@@ -1536,6 +2320,8 @@ async def create(
identity : typing.Optional[Identity]
+ only_enrich_updates : typing.Optional[bool]
+
organization_id : typing.Optional[str]
override_fields : typing.Optional[typing.Sequence[ModelSyncField]]
@@ -1546,6 +2332,8 @@ async def create(
policies : typing.Optional[typing.Sequence[str]]
+ skip_initial_backfill : typing.Optional[bool]
+
sync_all_records : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
@@ -1560,8 +2348,7 @@ async def create(
--------
import asyncio
- from polytomic import ModelSyncField, Schedule, Target
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic, ModelSyncField, Schedule, Target
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1593,44 +2380,101 @@ async def main() -> None:
method="POST",
json={
"active": active,
- "enricher": enricher,
- "fields": fields,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
"filter_logic": filter_logic,
- "filters": filters,
- "identity": identity,
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[Filter], direction="write"
+ ),
+ "identity": convert_and_respect_annotation_metadata(
+ object_=identity, annotation=Identity, direction="write"
+ ),
"mode": mode,
"name": name,
+ "only_enrich_updates": only_enrich_updates,
"organization_id": organization_id,
- "override_fields": override_fields,
- "overrides": overrides,
+ "override_fields": convert_and_respect_annotation_metadata(
+ object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
+ "overrides": convert_and_respect_annotation_metadata(
+ object_=overrides, annotation=typing.Sequence[Override], direction="write"
+ ),
"policies": policies,
- "schedule": schedule,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=Schedule, direction="write"
+ ),
+ "skip_initial_backfill": skip_initial_backfill,
"sync_all_records": sync_all_records,
- "target": target,
+ "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"),
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1655,7 +2499,7 @@ async def get_schedule_options(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1670,16 +2514,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/syncs/schedules", method="GET", request_options=request_options
+ "api/syncs/schedules",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ScheduleOptionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ScheduleOptionResponseEnvelope,
+ parse_obj_as(
+ type_=ScheduleOptionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1706,7 +2572,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1723,20 +2589,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1757,10 +2651,12 @@ async def update(
filter_logic: typing.Optional[str] = OMIT,
filters: typing.Optional[typing.Sequence[Filter]] = OMIT,
identity: typing.Optional[Identity] = OMIT,
+ only_enrich_updates: typing.Optional[bool] = OMIT,
organization_id: typing.Optional[str] = OMIT,
override_fields: typing.Optional[typing.Sequence[ModelSyncField]] = OMIT,
overrides: typing.Optional[typing.Sequence[Override]] = OMIT,
policies: typing.Optional[typing.Sequence[str]] = OMIT,
+ skip_initial_backfill: typing.Optional[bool] = OMIT,
sync_all_records: typing.Optional[bool] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> ModelSyncResponseEnvelope:
@@ -1790,6 +2686,8 @@ async def update(
identity : typing.Optional[Identity]
+ only_enrich_updates : typing.Optional[bool]
+
organization_id : typing.Optional[str]
override_fields : typing.Optional[typing.Sequence[ModelSyncField]]
@@ -1800,6 +2698,8 @@ async def update(
policies : typing.Optional[typing.Sequence[str]]
+ skip_initial_backfill : typing.Optional[bool]
+
sync_all_records : typing.Optional[bool]
request_options : typing.Optional[RequestOptions]
@@ -1814,8 +2714,7 @@ async def update(
--------
import asyncio
- from polytomic import ModelSyncField, Schedule, Target
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic, ModelSyncField, Schedule, Target
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1848,48 +2747,111 @@ async def main() -> None:
method="PUT",
json={
"active": active,
- "enricher": enricher,
- "fields": fields,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
+ "fields": convert_and_respect_annotation_metadata(
+ object_=fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
"filter_logic": filter_logic,
- "filters": filters,
- "identity": identity,
+ "filters": convert_and_respect_annotation_metadata(
+ object_=filters, annotation=typing.Sequence[Filter], direction="write"
+ ),
+ "identity": convert_and_respect_annotation_metadata(
+ object_=identity, annotation=Identity, direction="write"
+ ),
"mode": mode,
"name": name,
+ "only_enrich_updates": only_enrich_updates,
"organization_id": organization_id,
- "override_fields": override_fields,
- "overrides": overrides,
+ "override_fields": convert_and_respect_annotation_metadata(
+ object_=override_fields, annotation=typing.Sequence[ModelSyncField], direction="write"
+ ),
+ "overrides": convert_and_respect_annotation_metadata(
+ object_=overrides, annotation=typing.Sequence[Override], direction="write"
+ ),
"policies": policies,
- "schedule": schedule,
+ "schedule": convert_and_respect_annotation_metadata(
+ object_=schedule, annotation=Schedule, direction="write"
+ ),
+ "skip_initial_backfill": skip_initial_backfill,
"sync_all_records": sync_all_records,
- "target": target,
+ "target": convert_and_respect_annotation_metadata(object_=target, annotation=Target, direction="write"),
+ },
+ headers={
+ "content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1913,7 +2875,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1930,24 +2892,52 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1976,7 +2966,7 @@ async def activate(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1996,26 +2986,60 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/syncs/{jsonable_encoder(id)}/activate",
method="POST",
- json={"active": active},
+ json={
+ "active": active,
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ActivateSyncEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ActivateSyncEnvelope,
+ parse_obj_as(
+ type_=ActivateSyncEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -2055,7 +3079,7 @@ async def start(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -2074,34 +3098,84 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/syncs/{jsonable_encoder(id)}/executions",
method="POST",
- json={"identities": identities, "resync": resync},
+ json={
+ "identities": identities,
+ "resync": resync,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(StartModelSyncResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ StartModelSyncResponseEnvelope,
+ parse_obj_as(
+ type_=StartModelSyncResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ typing.cast(
+ types_api_error_ApiError,
+ parse_obj_as(
+ type_=types_api_error_ApiError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
)
if _response.status_code == 409:
raise ConflictError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -2128,7 +3202,7 @@ async def get_status(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -2145,20 +3219,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(id)}/status", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(id)}/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(SyncStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ SyncStatusEnvelope,
+ parse_obj_as(
+ type_=SyncStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/model_sync/executions/client.py b/src/polytomic/model_sync/executions/client.py
index 943ddd2..e11a347 100644
--- a/src/polytomic/model_sync/executions/client.py
+++ b/src/polytomic/model_sync/executions/client.py
@@ -1,23 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
+from ...core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ...core.api_error import ApiError as core_api_error_ApiError
-from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ...core.jsonable_encoder import jsonable_encoder
-from ...core.pydantic_utilities import pydantic_v1
from ...core.request_options import RequestOptions
-from ...errors.bad_request_error import BadRequestError
-from ...errors.internal_server_error import InternalServerError
-from ...errors.not_found_error import NotFoundError
+from ...types.list_execution_response_envelope import ListExecutionResponseEnvelope
+from ...core.jsonable_encoder import jsonable_encoder
+from ...core.pydantic_utilities import parse_obj_as
from ...errors.unauthorized_error import UnauthorizedError
+from ...types.rest_err_response import RestErrResponse
+from ...errors.not_found_error import NotFoundError
from ...types.api_error import ApiError as types_api_error_ApiError
-from ...types.execution_logs_response_envelope import ExecutionLogsResponseEnvelope
+from json.decoder import JSONDecodeError
+from ...core.api_error import ApiError as core_api_error_ApiError
from ...types.get_execution_response_envelope import GetExecutionResponseEnvelope
-from ...types.list_execution_response_envelope import ListExecutionResponseEnvelope
-from ...types.rest_err_response import RestErrResponse
+from ...errors.internal_server_error import InternalServerError
from ...types.v_2_execution_log_type import V2ExecutionLogType
+from ...types.execution_logs_response_envelope import ExecutionLogsResponseEnvelope
+from ...errors.bad_request_error import BadRequestError
+from ...core.client_wrapper import AsyncClientWrapper
class ExecutionsClient:
@@ -42,7 +42,7 @@ def list(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -53,16 +53,38 @@ def list(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(sync_id)}/executions", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(sync_id)}/executions",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListExecutionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListExecutionResponseEnvelope,
+ parse_obj_as(
+ type_=ListExecutionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -89,7 +111,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -107,16 +129,42 @@ def get(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetExecutionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetExecutionResponseEnvelope,
+ parse_obj_as(
+ type_=GetExecutionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -150,7 +198,7 @@ def get_log_urls(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -169,20 +217,52 @@ def get_log_urls(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ExecutionLogsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ExecutionLogsResponseEnvelope,
+ parse_obj_as(
+ type_=ExecutionLogsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -218,7 +298,7 @@ def get_logs(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -241,17 +321,43 @@ def get_logs(
return
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -283,7 +389,7 @@ async def list(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -300,16 +406,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/syncs/{jsonable_encoder(sync_id)}/executions", method="GET", request_options=request_options
+ f"api/syncs/{jsonable_encoder(sync_id)}/executions",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListExecutionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListExecutionResponseEnvelope,
+ parse_obj_as(
+ type_=ListExecutionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -338,7 +466,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -362,16 +490,42 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetExecutionResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetExecutionResponseEnvelope,
+ parse_obj_as(
+ type_=GetExecutionResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -407,7 +561,7 @@ async def get_log_urls(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -432,20 +586,52 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ExecutionLogsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ExecutionLogsResponseEnvelope,
+ parse_obj_as(
+ type_=ExecutionLogsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -483,7 +669,7 @@ async def get_logs(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -512,17 +698,43 @@ async def main() -> None:
return
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/models/client.py b/src/polytomic/models/client.py
index ff7b7f9..45efe7f 100644
--- a/src/polytomic/models/client.py
+++ b/src/polytomic/models/client.py
@@ -1,29 +1,30 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
from ..core.request_options import RequestOptions
+from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.bad_request_error import BadRequestError
+from ..types.api_error import ApiError as types_api_error_ApiError
+from ..errors.unauthorized_error import UnauthorizedError
+from ..types.rest_err_response import RestErrResponse
from ..errors.forbidden_error import ForbiddenError
-from ..errors.internal_server_error import InternalServerError
from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
-from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.enrichment import Enrichment
-from ..types.get_model_sync_source_meta_envelope import GetModelSyncSourceMetaEnvelope
-from ..types.model_list_response_envelope import ModelListResponseEnvelope
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
+from ..types.v_2_enricher_configuration import V2EnricherConfiguration
+from ..types.v_2_get_enrichment_input_fields_response_envelope import V2GetEnrichmentInputFieldsResponseEnvelope
from ..types.model_model_field_request import ModelModelFieldRequest
+from ..types.enrichment import Enrichment
from ..types.model_relation import ModelRelation
from ..types.model_response_envelope import ModelResponseEnvelope
+from ..core.serialization import convert_and_respect_annotation_metadata
+from ..types.model_list_response_envelope import ModelListResponseEnvelope
from ..types.model_sample_response_envelope import ModelSampleResponseEnvelope
-from ..types.rest_err_response import RestErrResponse
-from ..types.v_2_enricher_configuration import V2EnricherConfiguration
-from ..types.v_2_get_enrichment_input_fields_response_envelope import V2GetEnrichmentInputFieldsResponseEnvelope
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -57,7 +58,7 @@ def get_enrichment_source(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -70,29 +71,69 @@ def get_enrichment_source(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/enrichment-source",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetModelSyncSourceMetaEnvelope,
+ parse_obj_as(
+ type_=GetModelSyncSourceMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -125,7 +166,7 @@ def post(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -138,26 +179,63 @@ def post(
_response = self._client_wrapper.httpx_client.request(
f"api/enrichment/{jsonable_encoder(connection_id)}/inputfields",
method="POST",
- json={"configuration": configuration},
+ json={
+ "configuration": configuration,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V2GetEnrichmentInputFieldsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V2GetEnrichmentInputFieldsResponseEnvelope,
+ parse_obj_as(
+ type_=V2GetEnrichmentInputFieldsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -167,7 +245,7 @@ def post(
def preview(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -185,7 +263,7 @@ def preview(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -221,7 +299,7 @@ def preview(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -236,19 +314,27 @@ def preview(
_response = self._client_wrapper.httpx_client.request(
"api/model-preview",
method="POST",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
"name": name,
"organization_id": organization_id,
"policies": policies,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
request_options=request_options,
@@ -256,20 +342,52 @@ def preview(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -290,7 +408,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -299,16 +417,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo
client.models.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/models", method="GET", request_options=request_options
+ "api/models",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelListResponseEnvelope,
+ parse_obj_as(
+ type_=ModelListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -318,7 +458,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Mo
def create(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -336,7 +476,7 @@ def create(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -372,7 +512,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -387,19 +527,27 @@ def create(
_response = self._client_wrapper.httpx_client.request(
"api/models",
method="POST",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
"name": name,
"organization_id": organization_id,
"policies": policies,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
request_options=request_options,
@@ -407,20 +555,52 @@ def create(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -447,7 +627,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -460,21 +640,49 @@ def get(
_response = self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="GET",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -485,7 +693,7 @@ def update(
self,
id: str,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -506,7 +714,7 @@ def update(
----------
id : str
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -544,7 +752,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -561,12 +769,18 @@ def update(
_response = self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="PUT",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
@@ -574,28 +788,65 @@ def update(
"organization_id": organization_id,
"policies": policies,
"refresh": refresh,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -621,7 +872,7 @@ def remove(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -634,25 +885,53 @@ def remove(
_response = self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="DELETE",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -681,7 +960,7 @@ def sample(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -694,25 +973,59 @@ def sample(
_response = self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}/sample",
method="GET",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSampleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSampleResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSampleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -750,7 +1063,7 @@ async def get_enrichment_source(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -769,29 +1082,69 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(id)}/modelsync/enrichment-source",
method="GET",
- params={"params": jsonable_encoder(params)},
+ params={
+ "params": params,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(GetModelSyncSourceMetaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ GetModelSyncSourceMetaEnvelope,
+ parse_obj_as(
+ type_=GetModelSyncSourceMetaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -826,7 +1179,7 @@ async def post(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -845,26 +1198,63 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/enrichment/{jsonable_encoder(connection_id)}/inputfields",
method="POST",
- json={"configuration": configuration},
+ json={
+ "configuration": configuration,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V2GetEnrichmentInputFieldsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V2GetEnrichmentInputFieldsResponseEnvelope,
+ parse_obj_as(
+ type_=V2GetEnrichmentInputFieldsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -874,7 +1264,7 @@ async def main() -> None:
async def preview(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -892,7 +1282,7 @@ async def preview(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -930,7 +1320,7 @@ async def preview(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -951,19 +1341,27 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/model-preview",
method="POST",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
"name": name,
"organization_id": organization_id,
"policies": policies,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
request_options=request_options,
@@ -971,20 +1369,52 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1007,7 +1437,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1022,16 +1452,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/models", method="GET", request_options=request_options
+ "api/models",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelListResponseEnvelope,
+ parse_obj_as(
+ type_=ModelListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1041,7 +1493,7 @@ async def main() -> None:
async def create(
self,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -1059,7 +1511,7 @@ async def create(
"""
Parameters
----------
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -1097,7 +1549,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1118,19 +1570,27 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/models",
method="POST",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
"name": name,
"organization_id": organization_id,
"policies": policies,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
request_options=request_options,
@@ -1138,20 +1598,52 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1180,7 +1672,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1199,21 +1691,49 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="GET",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1224,7 +1744,7 @@ async def update(
self,
id: str,
*,
- configuration: typing.Dict[str, typing.Any],
+ configuration: typing.Dict[str, typing.Optional[typing.Any]],
connection_id: str,
name: str,
async_: typing.Optional[bool] = None,
@@ -1245,7 +1765,7 @@ async def update(
----------
id : str
- configuration : typing.Dict[str, typing.Any]
+ configuration : typing.Dict[str, typing.Optional[typing.Any]]
connection_id : str
@@ -1285,7 +1805,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1308,12 +1828,18 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="PUT",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
json={
- "additional_fields": additional_fields,
+ "additional_fields": convert_and_respect_annotation_metadata(
+ object_=additional_fields, annotation=typing.Sequence[ModelModelFieldRequest], direction="write"
+ ),
"configuration": configuration,
"connection_id": connection_id,
- "enricher": enricher,
+ "enricher": convert_and_respect_annotation_metadata(
+ object_=enricher, annotation=Enrichment, direction="write"
+ ),
"fields": fields,
"identifier": identifier,
"labels": labels,
@@ -1321,28 +1847,65 @@ async def main() -> None:
"organization_id": organization_id,
"policies": policies,
"refresh": refresh,
- "relations": relations,
+ "relations": convert_and_respect_annotation_metadata(
+ object_=relations, annotation=typing.Sequence[ModelRelation], direction="write"
+ ),
"tracking_columns": tracking_columns,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelResponseEnvelope,
+ parse_obj_as(
+ type_=ModelResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1370,7 +1933,7 @@ async def remove(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1389,25 +1952,53 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}",
method="DELETE",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -1438,7 +2029,7 @@ async def sample(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -1457,25 +2048,59 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/models/{jsonable_encoder(id)}/sample",
method="GET",
- params={"async": async_},
+ params={
+ "async": async_,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ModelSampleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ModelSampleResponseEnvelope,
+ parse_obj_as(
+ type_=ModelSampleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/organization/client.py b/src/polytomic/organization/client.py
index 64da3b9..5826ec6 100644
--- a/src/polytomic/organization/client.py
+++ b/src/polytomic/organization/client.py
@@ -1,21 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
+from ..types.organizations_envelope import OrganizationsEnvelope
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.unauthorized_error import UnauthorizedError
-from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..types.rest_err_response import RestErrResponse
+from ..errors.internal_server_error import InternalServerError
from ..types.api_error import ApiError as types_api_error_ApiError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
from ..types.organization_envelope import OrganizationEnvelope
-from ..types.organizations_envelope import OrganizationsEnvelope
-from ..types.rest_err_response import RestErrResponse
+from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..core.jsonable_encoder import jsonable_encoder
+from ..errors.not_found_error import NotFoundError
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -43,7 +43,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Or
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -52,16 +52,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Or
client.organization.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/organizations", method="GET", request_options=request_options
+ "api/organizations",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationsEnvelope,
+ parse_obj_as(
+ type_=OrganizationsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -108,7 +130,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -129,21 +151,50 @@ def create(
"sso_domain": sso_domain,
"sso_org_id": sso_org_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -170,7 +221,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -181,16 +232,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/organizations/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -240,7 +313,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -262,21 +335,50 @@ def update(
"sso_domain": sso_domain,
"sso_org_id": sso_org_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -302,7 +404,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -313,20 +415,42 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/organizations/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -358,7 +482,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -373,16 +497,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/organizations", method="GET", request_options=request_options
+ "api/organizations",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationsEnvelope,
+ parse_obj_as(
+ type_=OrganizationsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -431,7 +577,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -458,21 +604,50 @@ async def main() -> None:
"sso_domain": sso_domain,
"sso_org_id": sso_org_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -501,7 +676,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -518,16 +693,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/organizations/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -579,7 +776,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -607,21 +804,50 @@ async def main() -> None:
"sso_domain": sso_domain,
"sso_org_id": sso_org_id,
},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(OrganizationEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ OrganizationEnvelope,
+ parse_obj_as(
+ type_=OrganizationEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -649,7 +875,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -666,20 +892,42 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/organizations/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/permissions/client.py b/src/polytomic/permissions/client.py
index 309626c..ba89074 100644
--- a/src/polytomic/permissions/client.py
+++ b/src/polytomic/permissions/client.py
@@ -1,8 +1,11 @@
# This file was auto-generated by Fern from our API Definition.
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from .policies.client import AsyncPoliciesClient, PoliciesClient
-from .roles.client import AsyncRolesClient, RolesClient
+from ..core.client_wrapper import SyncClientWrapper
+from .policies.client import PoliciesClient
+from .roles.client import RolesClient
+from ..core.client_wrapper import AsyncClientWrapper
+from .policies.client import AsyncPoliciesClient
+from .roles.client import AsyncRolesClient
class PermissionsClient:
diff --git a/src/polytomic/permissions/policies/client.py b/src/polytomic/permissions/policies/client.py
index 834051a..a0fc74a 100644
--- a/src/polytomic/permissions/policies/client.py
+++ b/src/polytomic/permissions/policies/client.py
@@ -1,23 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ...core.api_error import ApiError as core_api_error_ApiError
-from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ...core.jsonable_encoder import jsonable_encoder
-from ...core.pydantic_utilities import pydantic_v1
+from ...core.client_wrapper import SyncClientWrapper
from ...core.request_options import RequestOptions
-from ...errors.bad_request_error import BadRequestError
-from ...errors.forbidden_error import ForbiddenError
-from ...errors.internal_server_error import InternalServerError
-from ...errors.not_found_error import NotFoundError
+from ...types.list_policies_response_envelope import ListPoliciesResponseEnvelope
+from ...core.pydantic_utilities import parse_obj_as
from ...errors.unauthorized_error import UnauthorizedError
+from ...types.rest_err_response import RestErrResponse
+from ...errors.internal_server_error import InternalServerError
from ...types.api_error import ApiError as types_api_error_ApiError
-from ...types.list_policies_response_envelope import ListPoliciesResponseEnvelope
+from json.decoder import JSONDecodeError
+from ...core.api_error import ApiError as core_api_error_ApiError
from ...types.policy_action import PolicyAction
from ...types.policy_response_envelope import PolicyResponseEnvelope
-from ...types.rest_err_response import RestErrResponse
+from ...core.serialization import convert_and_respect_annotation_metadata
+from ...errors.bad_request_error import BadRequestError
+from ...errors.forbidden_error import ForbiddenError
+from ...errors.not_found_error import NotFoundError
+from ...core.jsonable_encoder import jsonable_encoder
+from ...core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -41,7 +42,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -50,16 +51,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Li
client.permissions.policies.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/permissions/policies", method="GET", request_options=request_options
+ "api/permissions/policies",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListPoliciesResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListPoliciesResponseEnvelope,
+ parse_obj_as(
+ type_=ListPoliciesResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -93,7 +116,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -106,30 +129,77 @@ def create(
_response = self._client_wrapper.httpx_client.request(
"api/permissions/policies",
method="POST",
- json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ "policy_actions": convert_and_respect_annotation_metadata(
+ object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -152,7 +222,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -163,20 +233,48 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/permissions/policies/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/permissions/policies/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -213,7 +311,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -227,30 +325,77 @@ def update(
_response = self._client_wrapper.httpx_client.request(
f"api/permissions/policies/{jsonable_encoder(id)}",
method="PUT",
- json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ "policy_actions": convert_and_respect_annotation_metadata(
+ object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -272,7 +417,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -283,24 +428,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/permissions/policies/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/permissions/policies/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -328,7 +501,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -343,16 +516,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/permissions/policies", method="GET", request_options=request_options
+ "api/permissions/policies",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListPoliciesResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListPoliciesResponseEnvelope,
+ parse_obj_as(
+ type_=ListPoliciesResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -388,7 +583,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -407,30 +602,77 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/permissions/policies",
method="POST",
- json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ "policy_actions": convert_and_respect_annotation_metadata(
+ object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -455,7 +697,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -472,20 +714,48 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/permissions/policies/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/permissions/policies/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -524,7 +794,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -544,30 +814,77 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/permissions/policies/{jsonable_encoder(id)}",
method="PUT",
- json={"name": name, "organization_id": organization_id, "policy_actions": policy_actions},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ "policy_actions": convert_and_respect_annotation_metadata(
+ object_=policy_actions, annotation=typing.Sequence[PolicyAction], direction="write"
+ ),
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(PolicyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ PolicyResponseEnvelope,
+ parse_obj_as(
+ type_=PolicyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -591,7 +908,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -608,24 +925,52 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/permissions/policies/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/permissions/policies/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/permissions/roles/client.py b/src/polytomic/permissions/roles/client.py
index 61ae86e..b7a80bc 100644
--- a/src/polytomic/permissions/roles/client.py
+++ b/src/polytomic/permissions/roles/client.py
@@ -1,22 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
import typing
+from ...core.client_wrapper import SyncClientWrapper
+from ...core.request_options import RequestOptions
+from ...types.role_list_response_envelope import RoleListResponseEnvelope
+from ...core.pydantic_utilities import parse_obj_as
+from ...errors.unauthorized_error import UnauthorizedError
+from ...types.rest_err_response import RestErrResponse
+from ...errors.internal_server_error import InternalServerError
+from ...types.api_error import ApiError as types_api_error_ApiError
from json.decoder import JSONDecodeError
-
from ...core.api_error import ApiError as core_api_error_ApiError
-from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ...core.jsonable_encoder import jsonable_encoder
-from ...core.pydantic_utilities import pydantic_v1
-from ...core.request_options import RequestOptions
+from ...types.role_response_envelope import RoleResponseEnvelope
from ...errors.bad_request_error import BadRequestError
from ...errors.forbidden_error import ForbiddenError
-from ...errors.internal_server_error import InternalServerError
from ...errors.not_found_error import NotFoundError
-from ...errors.unauthorized_error import UnauthorizedError
-from ...types.api_error import ApiError as types_api_error_ApiError
-from ...types.rest_err_response import RestErrResponse
-from ...types.role_list_response_envelope import RoleListResponseEnvelope
-from ...types.role_response_envelope import RoleResponseEnvelope
+from ...core.jsonable_encoder import jsonable_encoder
+from ...core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -40,7 +40,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ro
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -49,16 +49,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> Ro
client.permissions.roles.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/permissions/roles", method="GET", request_options=request_options
+ "api/permissions/roles",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleListResponseEnvelope,
+ parse_obj_as(
+ type_=RoleListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -89,7 +111,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -102,30 +124,74 @@ def create(
_response = self._client_wrapper.httpx_client.request(
"api/permissions/roles",
method="POST",
- json={"name": name, "organization_id": organization_id},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -148,7 +214,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -159,16 +225,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/permissions/roles/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/permissions/roles/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -202,7 +290,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -216,30 +304,74 @@ def update(
_response = self._client_wrapper.httpx_client.request(
f"api/permissions/roles/{jsonable_encoder(id)}",
method="PUT",
- json={"name": name, "organization_id": organization_id},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -261,7 +393,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -272,24 +404,52 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/permissions/roles/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/permissions/roles/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -317,7 +477,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -332,16 +492,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/permissions/roles", method="GET", request_options=request_options
+ "api/permissions/roles",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleListResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleListResponseEnvelope,
+ parse_obj_as(
+ type_=RoleListResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -374,7 +556,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -393,30 +575,74 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/permissions/roles",
method="POST",
- json={"name": name, "organization_id": organization_id},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -441,7 +667,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -458,16 +684,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/permissions/roles/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/permissions/roles/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -503,7 +751,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -523,30 +771,74 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/permissions/roles/{jsonable_encoder(id)}",
method="PUT",
- json={"name": name, "organization_id": organization_id},
+ json={
+ "name": name,
+ "organization_id": organization_id,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(RoleResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ RoleResponseEnvelope,
+ parse_obj_as(
+ type_=RoleResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -570,7 +862,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -587,24 +879,52 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/permissions/roles/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/permissions/roles/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/query_runner/client.py b/src/polytomic/query_runner/client.py
index c1a321a..cd5fc5b 100644
--- a/src/polytomic/query_runner/client.py
+++ b/src/polytomic/query_runner/client.py
@@ -1,21 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
from ..core.request_options import RequestOptions
+from ..types.v_4_run_query_envelope import V4RunQueryEnvelope
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.bad_request_error import BadRequestError
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
from ..types.api_error import ApiError as types_api_error_ApiError
+from ..errors.unauthorized_error import UnauthorizedError
from ..types.rest_err_response import RestErrResponse
+from ..errors.not_found_error import NotFoundError
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
from ..types.v_4_query_results_envelope import V4QueryResultsEnvelope
-from ..types.v_4_run_query_envelope import V4RunQueryEnvelope
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -50,7 +50,7 @@ def run_query(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -64,27 +64,64 @@ def run_query(
_response = self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(connection_id)}/query",
method="POST",
- params={"query": query},
+ params={
+ "query": query,
+ },
json={},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4RunQueryEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4RunQueryEnvelope,
+ parse_obj_as(
+ type_=V4RunQueryEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -111,7 +148,7 @@ def get_query(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -122,24 +159,61 @@ def get_query(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/queries/{jsonable_encoder(id)}", method="GET", params={"page": page}, request_options=request_options
+ f"api/queries/{jsonable_encoder(id)}",
+ method="GET",
+ params={
+ "page": page,
+ },
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4QueryResultsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4QueryResultsEnvelope,
+ parse_obj_as(
+ type_=V4QueryResultsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -178,7 +252,7 @@ async def run_query(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -198,27 +272,64 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/connections/{jsonable_encoder(connection_id)}/query",
method="POST",
- params={"query": query},
+ params={
+ "query": query,
+ },
json={},
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4RunQueryEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4RunQueryEnvelope,
+ parse_obj_as(
+ type_=V4RunQueryEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -247,7 +358,7 @@ async def get_query(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -264,24 +375,61 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/queries/{jsonable_encoder(id)}", method="GET", params={"page": page}, request_options=request_options
+ f"api/queries/{jsonable_encoder(id)}",
+ method="GET",
+ params={
+ "page": page,
+ },
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(V4QueryResultsEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ V4QueryResultsEnvelope,
+ parse_obj_as(
+ type_=V4QueryResultsEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/schemas/client.py b/src/polytomic/schemas/client.py
index 83d3e2c..9792ffc 100644
--- a/src/polytomic/schemas/client.py
+++ b/src/polytomic/schemas/client.py
@@ -1,23 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
+from ..core.client_wrapper import SyncClientWrapper
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
from ..core.request_options import RequestOptions
+from ..core.jsonable_encoder import jsonable_encoder
from ..errors.bad_request_error import BadRequestError
-from ..errors.forbidden_error import ForbiddenError
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.bulk_sync_source_schema_envelope import BulkSyncSourceSchemaEnvelope
-from ..types.bulk_sync_source_status_envelope import BulkSyncSourceStatusEnvelope
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unauthorized_error import UnauthorizedError
from ..types.rest_err_response import RestErrResponse
+from ..errors.not_found_error import NotFoundError
+from ..errors.internal_server_error import InternalServerError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
+from ..types.bulk_sync_source_status_envelope import BulkSyncSourceStatusEnvelope
+from ..types.bulk_sync_source_schema_envelope import BulkSyncSourceSchemaEnvelope
from ..types.schema_records_response_envelope import SchemaRecordsResponseEnvelope
+from ..errors.forbidden_error import ForbiddenError
+from ..core.client_wrapper import AsyncClientWrapper
class SchemasClient:
@@ -39,7 +39,7 @@ def refresh(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -50,24 +50,52 @@ def refresh(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/schemas/refresh", method="POST", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/schemas/refresh",
+ method="POST",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -92,7 +120,7 @@ def get_status(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -103,24 +131,58 @@ def get_status(
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/schemas/status", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/schemas/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceStatusEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -147,7 +209,7 @@ def get(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -165,20 +227,52 @@ def get(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -205,7 +299,7 @@ def get_records(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -223,24 +317,62 @@ def get_records(
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(SchemaRecordsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ SchemaRecordsResponseEnvelope,
+ parse_obj_as(
+ type_=SchemaRecordsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -269,7 +401,7 @@ async def refresh(self, id: str, *, request_options: typing.Optional[RequestOpti
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -286,24 +418,52 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/schemas/refresh", method="POST", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/schemas/refresh",
+ method="POST",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -330,7 +490,7 @@ async def get_status(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -347,24 +507,58 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/connections/{jsonable_encoder(id)}/schemas/status", method="GET", request_options=request_options
+ f"api/connections/{jsonable_encoder(id)}/schemas/status",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceStatusEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceStatusEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceStatusEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -393,7 +587,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -417,20 +611,52 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(BulkSyncSourceSchemaEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ BulkSyncSourceSchemaEnvelope,
+ parse_obj_as(
+ type_=BulkSyncSourceSchemaEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -459,7 +685,7 @@ async def get_records(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -483,24 +709,62 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(SchemaRecordsResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ SchemaRecordsResponseEnvelope,
+ parse_obj_as(
+ type_=SchemaRecordsResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 400:
raise BadRequestError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 403:
raise ForbiddenError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/types/activate_sync_envelope.py b/src/polytomic/types/activate_sync_envelope.py
index 9e068c9..3c5646c 100644
--- a/src/polytomic/types/activate_sync_envelope.py
+++ b/src/polytomic/types/activate_sync_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .activate_sync_output import ActivateSyncOutput
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ActivateSyncEnvelope(pydantic_v1.BaseModel):
+class ActivateSyncEnvelope(UniversalBaseModel):
data: typing.Optional[ActivateSyncOutput] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/activate_sync_input.py b/src/polytomic/types/activate_sync_input.py
index c4d78aa..3508640 100644
--- a/src/polytomic/types/activate_sync_input.py
+++ b/src/polytomic/types/activate_sync_input.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
import typing
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ActivateSyncInput(pydantic_v1.BaseModel):
+class ActivateSyncInput(UniversalBaseModel):
active: bool
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/activate_sync_output.py b/src/polytomic/types/activate_sync_output.py
index 7968393..bceaf9d 100644
--- a/src/polytomic/types/activate_sync_output.py
+++ b/src/polytomic/types/activate_sync_output.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ActivateSyncOutput(pydantic_v1.BaseModel):
+class ActivateSyncOutput(UniversalBaseModel):
active: typing.Optional[bool] = None
id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/api_error.py b/src/polytomic/types/api_error.py
index 484d43b..0767356 100644
--- a/src/polytomic/types/api_error.py
+++ b/src/polytomic/types/api_error.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ApiError(pydantic_v1.BaseModel):
+class ApiError(UniversalBaseModel):
key: typing.Optional[str] = None
message: typing.Optional[str] = None
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = None
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
status: typing.Optional[int] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/api_key_response.py b/src/polytomic/types/api_key_response.py
index 38bb349..a8c634e 100644
--- a/src/polytomic/types/api_key_response.py
+++ b/src/polytomic/types/api_key_response.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ApiKeyResponse(pydantic_v1.BaseModel):
+class ApiKeyResponse(UniversalBaseModel):
value: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/api_key_response_envelope.py b/src/polytomic/types/api_key_response_envelope.py
index d6f2258..e4c0d18 100644
--- a/src/polytomic/types/api_key_response_envelope.py
+++ b/src/polytomic/types/api_key_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .api_key_response import ApiKeyResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ApiKeyResponseEnvelope(pydantic_v1.BaseModel):
+class ApiKeyResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ApiKeyResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_field.py b/src/polytomic/types/bulk_field.py
index 7899860..4bfef76 100644
--- a/src/polytomic/types/bulk_field.py
+++ b/src/polytomic/types/bulk_field.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkField(pydantic_v1.BaseModel):
+class BulkField(UniversalBaseModel):
enabled: typing.Optional[bool] = None
id: typing.Optional[str] = None
obfuscated: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_filter.py b/src/polytomic/types/bulk_filter.py
index 35bdee5..7651644 100644
--- a/src/polytomic/types/bulk_filter.py
+++ b/src/polytomic/types/bulk_filter.py
@@ -1,36 +1,26 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .filter_function import FilterFunction
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class BulkFilter(pydantic_v1.BaseModel):
- field_id: typing.Optional[str] = pydantic_v1.Field(default=None)
+class BulkFilter(UniversalBaseModel):
+ field_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Schema field ID to filter on.
"""
function: FilterFunction
- value: typing.Optional[typing.Any] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ value: typing.Optional[typing.Optional[typing.Any]] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_itemized_schedule.py b/src/polytomic/types/bulk_itemized_schedule.py
index 0ff3803..7454bec 100644
--- a/src/polytomic/types/bulk_itemized_schedule.py
+++ b/src/polytomic/types/bulk_itemized_schedule.py
@@ -1,38 +1,29 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
-
-import datetime as dt
-import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.pydantic_utilities import UniversalBaseModel
from .bulk_selective_mode import BulkSelectiveMode
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import typing
+import pydantic
+from ..core.pydantic_utilities import update_forward_refs
-class BulkItemizedSchedule(pydantic_v1.BaseModel):
+class BulkItemizedSchedule(UniversalBaseModel):
item: BulkSelectiveMode
- schedule: BulkSchedule
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ schedule: "BulkSchedule"
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration # noqa: E402
from .bulk_schedule import BulkSchedule # noqa: E402
-BulkItemizedSchedule.update_forward_refs()
+update_forward_refs(BulkItemizedSchedule)
diff --git a/src/polytomic/types/bulk_multi_schedule_configuration.py b/src/polytomic/types/bulk_multi_schedule_configuration.py
index e544fbe..7ec091b 100644
--- a/src/polytomic/types/bulk_multi_schedule_configuration.py
+++ b/src/polytomic/types/bulk_multi_schedule_configuration.py
@@ -1,37 +1,28 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
-
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+from ..core.pydantic_utilities import update_forward_refs
-class BulkMultiScheduleConfiguration(pydantic_v1.BaseModel):
- schedules: typing.Optional[typing.List[BulkItemizedSchedule]] = None
+class BulkMultiScheduleConfiguration(UniversalBaseModel):
+ schedules: typing.Optional[typing.List["BulkItemizedSchedule"]] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
from .bulk_itemized_schedule import BulkItemizedSchedule # noqa: E402
+from .bulk_schedule import BulkSchedule # noqa: E402
-BulkMultiScheduleConfiguration.update_forward_refs()
+update_forward_refs(BulkMultiScheduleConfiguration)
diff --git a/src/polytomic/types/bulk_schedule.py b/src/polytomic/types/bulk_schedule.py
index 78c3743..19dee15 100644
--- a/src/polytomic/types/bulk_schedule.py
+++ b/src/polytomic/types/bulk_schedule.py
@@ -1,43 +1,34 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
-
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schedule_frequency import ScheduleFrequency
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+from ..core.pydantic_utilities import update_forward_refs
-class BulkSchedule(pydantic_v1.BaseModel):
+class BulkSchedule(UniversalBaseModel):
day_of_month: typing.Optional[str] = None
day_of_week: typing.Optional[str] = None
frequency: ScheduleFrequency
hour: typing.Optional[str] = None
minute: typing.Optional[str] = None
month: typing.Optional[str] = None
- multi: typing.Optional[BulkMultiScheduleConfiguration] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ multi: typing.Optional["BulkMultiScheduleConfiguration"] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+from .bulk_itemized_schedule import BulkItemizedSchedule # noqa: E402
from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration # noqa: E402
-BulkSchedule.update_forward_refs()
+update_forward_refs(BulkSchedule)
diff --git a/src/polytomic/types/bulk_schema.py b/src/polytomic/types/bulk_schema.py
index 243b449..2bfea13 100644
--- a/src/polytomic/types/bulk_schema.py
+++ b/src/polytomic/types/bulk_schema.py
@@ -1,15 +1,15 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .bulk_field import BulkField
from .bulk_filter import BulkFilter
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSchema(pydantic_v1.BaseModel):
+class BulkSchema(UniversalBaseModel):
data_cutoff_timestamp: typing.Optional[dt.datetime] = None
disable_data_cutoff: typing.Optional[bool] = None
enabled: typing.Optional[bool] = None
@@ -20,20 +20,11 @@ class BulkSchema(pydantic_v1.BaseModel):
partition_key: typing.Optional[str] = None
tracking_field: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_schema_envelope.py b/src/polytomic/types/bulk_schema_envelope.py
index cc1e764..7c42446 100644
--- a/src/polytomic/types/bulk_schema_envelope.py
+++ b/src/polytomic/types/bulk_schema_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_schema import BulkSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSchemaEnvelope(pydantic_v1.BaseModel):
+class BulkSchemaEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_canceled_event.py b/src/polytomic/types/bulk_sync_canceled_event.py
index bb8900c..e6e4e69 100644
--- a/src/polytomic/types/bulk_sync_canceled_event.py
+++ b/src/polytomic/types/bulk_sync_canceled_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkSyncCanceledEvent(pydantic_v1.BaseModel):
+class BulkSyncCanceledEvent(UniversalBaseModel):
destination_connection_id: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -15,20 +14,11 @@ class BulkSyncCanceledEvent(pydantic_v1.BaseModel):
sync_id: typing.Optional[str] = None
sync_name: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_completed_event.py b/src/polytomic/types/bulk_sync_completed_event.py
index 603cdc8..904f8df 100644
--- a/src/polytomic/types/bulk_sync_completed_event.py
+++ b/src/polytomic/types/bulk_sync_completed_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkSyncCompletedEvent(pydantic_v1.BaseModel):
+class BulkSyncCompletedEvent(UniversalBaseModel):
destination_connection_id: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -16,20 +15,11 @@ class BulkSyncCompletedEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
trigger_source: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_completed_with_error_event.py b/src/polytomic/types/bulk_sync_completed_with_error_event.py
index bd7c0e4..7b892a4 100644
--- a/src/polytomic/types/bulk_sync_completed_with_error_event.py
+++ b/src/polytomic/types/bulk_sync_completed_with_error_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkSyncCompletedWithErrorEvent(pydantic_v1.BaseModel):
+class BulkSyncCompletedWithErrorEvent(UniversalBaseModel):
destination_connection_id: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -16,20 +15,11 @@ class BulkSyncCompletedWithErrorEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
trigger_source: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_dest.py b/src/polytomic/types/bulk_sync_dest.py
index 7e1d965..2a9540e 100644
--- a/src/polytomic/types/bulk_sync_dest.py
+++ b/src/polytomic/types/bulk_sync_dest.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .supported_bulk_mode import SupportedBulkMode
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncDest(pydantic_v1.BaseModel):
- configuration: typing.Optional[typing.Dict[str, typing.Any]] = None
+class BulkSyncDest(UniversalBaseModel):
+ configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
modes: typing.Optional[typing.List[SupportedBulkMode]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_dest_envelope.py b/src/polytomic/types/bulk_sync_dest_envelope.py
index 382352c..1c193f4 100644
--- a/src/polytomic/types/bulk_sync_dest_envelope.py
+++ b/src/polytomic/types/bulk_sync_dest_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_dest import BulkSyncDest
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncDestEnvelope(pydantic_v1.BaseModel):
+class BulkSyncDestEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncDest] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_execution.py b/src/polytomic/types/bulk_sync_execution.py
index 6b2470a..4d9bf6e 100644
--- a/src/polytomic/types/bulk_sync_execution.py
+++ b/src/polytomic/types/bulk_sync_execution.py
@@ -1,16 +1,16 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .bulk_execution_status import BulkExecutionStatus
+import datetime as dt
from .bulk_fetch_mode import BulkFetchMode
from .bulk_sync_schema_execution import BulkSyncSchemaExecution
+from .bulk_execution_status import BulkExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncExecution(pydantic_v1.BaseModel):
+class BulkSyncExecution(UniversalBaseModel):
completed_at: typing.Optional[dt.datetime] = None
created_at: typing.Optional[dt.datetime] = None
fetch_mode: typing.Optional[BulkFetchMode] = None
@@ -22,20 +22,11 @@ class BulkSyncExecution(pydantic_v1.BaseModel):
status: typing.Optional[BulkExecutionStatus] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_execution_envelope.py b/src/polytomic/types/bulk_sync_execution_envelope.py
index e3a0923..65464e0 100644
--- a/src/polytomic/types/bulk_sync_execution_envelope.py
+++ b/src/polytomic/types/bulk_sync_execution_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_execution import BulkSyncExecution
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncExecutionEnvelope(pydantic_v1.BaseModel):
+class BulkSyncExecutionEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncExecution] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_execution_status.py b/src/polytomic/types/bulk_sync_execution_status.py
index c8d4f24..08b1d4c 100644
--- a/src/polytomic/types/bulk_sync_execution_status.py
+++ b/src/polytomic/types/bulk_sync_execution_status.py
@@ -1,36 +1,29 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing_extensions
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .bulk_execution_status import BulkExecutionStatus
+import datetime as dt
+from ..core.serialization import FieldMetadata
from .bulk_sync_schema_execution_status import BulkSyncSchemaExecutionStatus
+from .bulk_execution_status import BulkExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncExecutionStatus(pydantic_v1.BaseModel):
- next_execution_time: typing.Optional[dt.datetime] = pydantic_v1.Field(alias="nextExecutionTime", default=None)
+class BulkSyncExecutionStatus(UniversalBaseModel):
+ next_execution_time: typing_extensions.Annotated[
+ typing.Optional[dt.datetime], FieldMetadata(alias="nextExecutionTime")
+ ] = None
schemas: typing.Optional[typing.List[BulkSyncSchemaExecutionStatus]] = None
status: typing.Optional[BulkExecutionStatus] = None
sync_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_failed_event.py b/src/polytomic/types/bulk_sync_failed_event.py
index 47bf977..ae66b76 100644
--- a/src/polytomic/types/bulk_sync_failed_event.py
+++ b/src/polytomic/types/bulk_sync_failed_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkSyncFailedEvent(pydantic_v1.BaseModel):
+class BulkSyncFailedEvent(UniversalBaseModel):
destination_connection_id: typing.Optional[str] = None
error: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
@@ -17,20 +16,11 @@ class BulkSyncFailedEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
trigger_source: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_list_envelope.py b/src/polytomic/types/bulk_sync_list_envelope.py
index b0cce59..4fb285b 100644
--- a/src/polytomic/types/bulk_sync_list_envelope.py
+++ b/src/polytomic/types/bulk_sync_list_envelope.py
@@ -1,30 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+from .bulk_itemized_schedule import BulkItemizedSchedule
+from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration
+from .bulk_schedule import BulkSchedule
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_response import BulkSyncResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncListEnvelope(pydantic_v1.BaseModel):
+class BulkSyncListEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[BulkSyncResponse]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_response.py b/src/polytomic/types/bulk_sync_response.py
index ebfd61b..bc0c103 100644
--- a/src/polytomic/types/bulk_sync_response.py
+++ b/src/polytomic/types/bulk_sync_response.py
@@ -1,66 +1,61 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+from .bulk_itemized_schedule import BulkItemizedSchedule
+from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration
+from .bulk_schedule import BulkSchedule
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_discover import BulkDiscover
-from .bulk_schedule import BulkSchedule
+import datetime as dt
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class BulkSyncResponse(pydantic_v1.BaseModel):
+class BulkSyncResponse(UniversalBaseModel):
active: typing.Optional[bool] = None
automatically_add_new_fields: typing.Optional[BulkDiscover] = None
automatically_add_new_objects: typing.Optional[BulkDiscover] = None
data_cutoff_timestamp: typing.Optional[dt.datetime] = None
- destination_configuration: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
+ destination_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(
+ default=None
+ )
"""
Destination-specific bulk sync configuration. e.g. output schema name, s3 file format, etc.
"""
destination_connection_id: typing.Optional[str] = None
disable_record_timestamps: typing.Optional[bool] = None
- discover: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ discover: typing.Optional[bool] = pydantic.Field(default=None)
"""
DEPRECATED: Use automatically_add_new_objects/automatically_add_new_fields instead
"""
id: typing.Optional[str] = None
mode: typing.Optional[str] = None
- name: typing.Optional[str] = pydantic_v1.Field(default=None)
+ name: typing.Optional[str] = pydantic.Field(default=None)
"""
Name of the bulk sync
"""
organization_id: typing.Optional[str] = None
- policies: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None)
+ policies: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
"""
List of permissions policies applied to the bulk sync.
"""
schedule: typing.Optional[BulkSchedule] = None
- source_configuration: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
+ source_configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
"""
Source-specific bulk sync configuration. e.g. replication slot name, sync lookback, etc.
"""
source_connection_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_response_envelope.py b/src/polytomic/types/bulk_sync_response_envelope.py
index 191e155..5a9db4c 100644
--- a/src/polytomic/types/bulk_sync_response_envelope.py
+++ b/src/polytomic/types/bulk_sync_response_envelope.py
@@ -1,30 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+from .bulk_itemized_schedule import BulkItemizedSchedule
+from .bulk_multi_schedule_configuration import BulkMultiScheduleConfiguration
+from .bulk_schedule import BulkSchedule
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_response import BulkSyncResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncResponseEnvelope(pydantic_v1.BaseModel):
+class BulkSyncResponseEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_running_event.py b/src/polytomic/types/bulk_sync_running_event.py
index 78a4d92..adda8d7 100644
--- a/src/polytomic/types/bulk_sync_running_event.py
+++ b/src/polytomic/types/bulk_sync_running_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class BulkSyncRunningEvent(pydantic_v1.BaseModel):
+class BulkSyncRunningEvent(UniversalBaseModel):
destination_connection_id: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -15,20 +14,11 @@ class BulkSyncRunningEvent(pydantic_v1.BaseModel):
sync_id: typing.Optional[str] = None
sync_name: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_schema_execution.py b/src/polytomic/types/bulk_sync_schema_execution.py
index 65f1538..990706b 100644
--- a/src/polytomic/types/bulk_sync_schema_execution.py
+++ b/src/polytomic/types/bulk_sync_schema_execution.py
@@ -1,39 +1,30 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
+import typing_extensions
+from ..core.serialization import FieldMetadata
from .bulk_schema_execution_status import BulkSchemaExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSchemaExecution(pydantic_v1.BaseModel):
+class BulkSyncSchemaExecution(UniversalBaseModel):
completed_at: typing.Optional[dt.datetime] = None
error_count: typing.Optional[int] = None
record_count: typing.Optional[int] = None
- schema_: typing.Optional[str] = pydantic_v1.Field(alias="schema", default=None)
+ schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="schema")] = None
started_at: typing.Optional[dt.datetime] = None
status: typing.Optional[BulkSchemaExecutionStatus] = None
status_message: typing.Optional[str] = None
warning_count: typing.Optional[int] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_schema_execution_status.py b/src/polytomic/types/bulk_sync_schema_execution_status.py
index d918b36..338eea0 100644
--- a/src/polytomic/types/bulk_sync_schema_execution_status.py
+++ b/src/polytomic/types/bulk_sync_schema_execution_status.py
@@ -1,44 +1,35 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
+import pydantic
+import typing_extensions
+from ..core.serialization import FieldMetadata
from .bulk_schema_execution_status import BulkSchemaExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class BulkSyncSchemaExecutionStatus(pydantic_v1.BaseModel):
+class BulkSyncSchemaExecutionStatus(UniversalBaseModel):
completed_at: typing.Optional[dt.datetime] = None
error_count: typing.Optional[int] = None
- execution_id: typing.Optional[str] = pydantic_v1.Field(default=None)
+ execution_id: typing.Optional[str] = pydantic.Field(default=None)
"""
ID of the most recent execution for the schema.
"""
record_count: typing.Optional[int] = None
- schema_: typing.Optional[str] = pydantic_v1.Field(alias="schema", default=None)
+ schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="schema")] = None
started_at: typing.Optional[dt.datetime] = None
status: typing.Optional[BulkSchemaExecutionStatus] = None
status_message: typing.Optional[str] = None
warning_count: typing.Optional[int] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_source.py b/src/polytomic/types/bulk_sync_source.py
index 031ecb4..969fc68 100644
--- a/src/polytomic/types/bulk_sync_source.py
+++ b/src/polytomic/types/bulk_sync_source.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schema import Schema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSource(pydantic_v1.BaseModel):
- configuration: typing.Optional[typing.Any] = None
+class BulkSyncSource(UniversalBaseModel):
+ configuration: typing.Optional[typing.Optional[typing.Any]] = None
schemas: typing.Optional[typing.List[Schema]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_source_envelope.py b/src/polytomic/types/bulk_sync_source_envelope.py
index bf69ec7..9401ad8 100644
--- a/src/polytomic/types/bulk_sync_source_envelope.py
+++ b/src/polytomic/types/bulk_sync_source_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_source import BulkSyncSource
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSourceEnvelope(pydantic_v1.BaseModel):
+class BulkSyncSourceEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncSource] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_source_schema_envelope.py b/src/polytomic/types/bulk_sync_source_schema_envelope.py
index 8b39700..941b8a9 100644
--- a/src/polytomic/types/bulk_sync_source_schema_envelope.py
+++ b/src/polytomic/types/bulk_sync_source_schema_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schema import Schema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSourceSchemaEnvelope(pydantic_v1.BaseModel):
+class BulkSyncSourceSchemaEnvelope(UniversalBaseModel):
data: typing.Optional[Schema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_source_status.py b/src/polytomic/types/bulk_sync_source_status.py
index 5b8ccc0..21e437a 100644
--- a/src/polytomic/types/bulk_sync_source_status.py
+++ b/src/polytomic/types/bulk_sync_source_status.py
@@ -1,31 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSourceStatus(pydantic_v1.BaseModel):
+class BulkSyncSourceStatus(UniversalBaseModel):
cache_status: typing.Optional[str] = None
last_refresh_finished: typing.Optional[dt.datetime] = None
last_refresh_started: typing.Optional[dt.datetime] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_source_status_envelope.py b/src/polytomic/types/bulk_sync_source_status_envelope.py
index 858b02d..cfbf051 100644
--- a/src/polytomic/types/bulk_sync_source_status_envelope.py
+++ b/src/polytomic/types/bulk_sync_source_status_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_source_status import BulkSyncSourceStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncSourceStatusEnvelope(pydantic_v1.BaseModel):
+class BulkSyncSourceStatusEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncSourceStatus] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_status_envelope.py b/src/polytomic/types/bulk_sync_status_envelope.py
index 827a370..8f08427 100644
--- a/src/polytomic/types/bulk_sync_status_envelope.py
+++ b/src/polytomic/types/bulk_sync_status_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_status_response import BulkSyncStatusResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncStatusEnvelope(pydantic_v1.BaseModel):
+class BulkSyncStatusEnvelope(UniversalBaseModel):
data: typing.Optional[BulkSyncStatusResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/bulk_sync_status_response.py b/src/polytomic/types/bulk_sync_status_response.py
index cbe4854..680022f 100644
--- a/src/polytomic/types/bulk_sync_status_response.py
+++ b/src/polytomic/types/bulk_sync_status_response.py
@@ -1,32 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_execution import BulkSyncExecution
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class BulkSyncStatusResponse(pydantic_v1.BaseModel):
+class BulkSyncStatusResponse(UniversalBaseModel):
current_execution: typing.Optional[BulkSyncExecution] = None
last_execution: typing.Optional[BulkSyncExecution] = None
next_execution_time: typing.Optional[dt.datetime] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/common_output_actor.py b/src/polytomic/types/common_output_actor.py
index e4c1317..fc1b01c 100644
--- a/src/polytomic/types/common_output_actor.py
+++ b/src/polytomic/types/common_output_actor.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class CommonOutputActor(pydantic_v1.BaseModel):
+class CommonOutputActor(UniversalBaseModel):
id: typing.Optional[str] = None
name: typing.Optional[str] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/configuration_value.py b/src/polytomic/types/configuration_value.py
index a19876a..02e7209 100644
--- a/src/polytomic/types/configuration_value.py
+++ b/src/polytomic/types/configuration_value.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ConfigurationValue(pydantic_v1.BaseModel):
- items: typing.Optional[typing.List[typing.Any]] = None
+class ConfigurationValue(UniversalBaseModel):
+ items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connect_card_response.py b/src/polytomic/types/connect_card_response.py
index 71a1d1f..bc4963d 100644
--- a/src/polytomic/types/connect_card_response.py
+++ b/src/polytomic/types/connect_card_response.py
@@ -1,30 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+class ConnectCardResponse(UniversalBaseModel):
+ redirect_url: typing.Optional[str] = pydantic.Field(default=None)
+ """
+ URL to redirect the user to in order to create the new connection.
+ """
-class ConnectCardResponse(pydantic_v1.BaseModel):
- redirect_url: typing.Optional[str] = None
token: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connect_card_response_envelope.py b/src/polytomic/types/connect_card_response_envelope.py
index 27104b5..15129ac 100644
--- a/src/polytomic/types/connect_card_response_envelope.py
+++ b/src/polytomic/types/connect_card_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connect_card_response import ConnectCardResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectCardResponseEnvelope(pydantic_v1.BaseModel):
+class ConnectCardResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ConnectCardResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_list_response_envelope.py b/src/polytomic/types/connection_list_response_envelope.py
index 0c513cb..756361c 100644
--- a/src/polytomic/types/connection_list_response_envelope.py
+++ b/src/polytomic/types/connection_list_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_response_schema import ConnectionResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionListResponseEnvelope(pydantic_v1.BaseModel):
+class ConnectionListResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[ConnectionResponseSchema]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_meta.py b/src/polytomic/types/connection_meta.py
index 17fb568..67f1eca 100644
--- a/src/polytomic/types/connection_meta.py
+++ b/src/polytomic/types/connection_meta.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ConnectionMeta(pydantic_v1.BaseModel):
+class ConnectionMeta(UniversalBaseModel):
has_items: typing.Optional[bool] = None
- items: typing.Optional[typing.List[typing.Any]] = None
+ items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None
requires_one_of: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_meta_response.py b/src/polytomic/types/connection_meta_response.py
index fbcd0b6..6811a25 100644
--- a/src/polytomic/types/connection_meta_response.py
+++ b/src/polytomic/types/connection_meta_response.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .configuration_value import ConfigurationValue
from .connection_meta import ConnectionMeta
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionMetaResponse(pydantic_v1.BaseModel):
+class ConnectionMetaResponse(UniversalBaseModel):
configuration: typing.Optional[typing.Dict[str, ConfigurationValue]] = None
items: typing.Optional[typing.Dict[str, typing.Optional[ConnectionMeta]]] = None
requires_one_of: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_parameter_value.py b/src/polytomic/types/connection_parameter_value.py
index dc60ada..c93bcc0 100644
--- a/src/polytomic/types/connection_parameter_value.py
+++ b/src/polytomic/types/connection_parameter_value.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ConnectionParameterValue(pydantic_v1.BaseModel):
+class ConnectionParameterValue(UniversalBaseModel):
label: typing.Optional[str] = None
- value: typing.Optional[typing.Any] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ value: typing.Optional[typing.Optional[typing.Any]] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_parameter_values_resp.py b/src/polytomic/types/connection_parameter_values_resp.py
index bfd325f..a400205 100644
--- a/src/polytomic/types/connection_parameter_values_resp.py
+++ b/src/polytomic/types/connection_parameter_values_resp.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_parameter_value import ConnectionParameterValue
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionParameterValuesResp(pydantic_v1.BaseModel):
+class ConnectionParameterValuesResp(UniversalBaseModel):
allows_creation: typing.Optional[bool] = None
values: typing.Optional[typing.List[ConnectionParameterValue]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_parameter_values_response_envelope.py b/src/polytomic/types/connection_parameter_values_response_envelope.py
index 68c17d9..2668ab3 100644
--- a/src/polytomic/types/connection_parameter_values_response_envelope.py
+++ b/src/polytomic/types/connection_parameter_values_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_parameter_values_resp import ConnectionParameterValuesResp
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionParameterValuesResponseEnvelope(pydantic_v1.BaseModel):
+class ConnectionParameterValuesResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.Dict[str, typing.Optional[ConnectionParameterValuesResp]]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_response_envelope.py b/src/polytomic/types/connection_response_envelope.py
index 9220ded..8fde2d5 100644
--- a/src/polytomic/types/connection_response_envelope.py
+++ b/src/polytomic/types/connection_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_response_schema import ConnectionResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionResponseEnvelope(pydantic_v1.BaseModel):
+class ConnectionResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ConnectionResponseSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_response_schema.py b/src/polytomic/types/connection_response_schema.py
index 4d911f5..c8b2429 100644
--- a/src/polytomic/types/connection_response_schema.py
+++ b/src/polytomic/types/connection_response_schema.py
@@ -1,20 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .connection_type_schema import ConnectionTypeSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class ConnectionResponseSchema(pydantic_v1.BaseModel):
- api_calls_last_24_hours: typing.Optional[int] = pydantic_v1.Field(default=None)
+class ConnectionResponseSchema(UniversalBaseModel):
+ api_calls_last_24_hours: typing.Optional[int] = pydantic.Field(default=None)
"""
API calls made to service in the last 24h (supported integrations only).
"""
- configuration: typing.Optional[typing.Dict[str, typing.Any]] = None
+ configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
id: typing.Optional[str] = None
name: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -23,20 +22,11 @@ class ConnectionResponseSchema(pydantic_v1.BaseModel):
status_error: typing.Optional[str] = None
type: typing.Optional[ConnectionTypeSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_type.py b/src/polytomic/types/connection_type.py
index 1c19c66..43328e8 100644
--- a/src/polytomic/types/connection_type.py
+++ b/src/polytomic/types/connection_type.py
@@ -1,34 +1,26 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing_extensions
import typing
+from ..core.serialization import FieldMetadata
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ConnectionType(pydantic_v1.BaseModel):
- env_config: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(alias="envConfig", default=None)
+class ConnectionType(UniversalBaseModel):
+ env_config: typing_extensions.Annotated[
+ typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]], FieldMetadata(alias="envConfig")
+ ] = None
id: typing.Optional[str] = None
name: typing.Optional[str] = None
use_oauth: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_type_response_envelope.py b/src/polytomic/types/connection_type_response_envelope.py
index 71f22ea..2f17156 100644
--- a/src/polytomic/types/connection_type_response_envelope.py
+++ b/src/polytomic/types/connection_type_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_type import ConnectionType
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ConnectionTypeResponseEnvelope(pydantic_v1.BaseModel):
+class ConnectionTypeResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[ConnectionType]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/connection_type_schema.py b/src/polytomic/types/connection_type_schema.py
index a0c6da4..243e431 100644
--- a/src/polytomic/types/connection_type_schema.py
+++ b/src/polytomic/types/connection_type_schema.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ConnectionTypeSchema(pydantic_v1.BaseModel):
+class ConnectionTypeSchema(UniversalBaseModel):
id: typing.Optional[str] = None
name: typing.Optional[str] = None
operations: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/create_connection_response_envelope.py b/src/polytomic/types/create_connection_response_envelope.py
index 6895ab8..0e944b6 100644
--- a/src/polytomic/types/create_connection_response_envelope.py
+++ b/src/polytomic/types/create_connection_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .create_connection_response_schema import CreateConnectionResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class CreateConnectionResponseEnvelope(pydantic_v1.BaseModel):
+class CreateConnectionResponseEnvelope(UniversalBaseModel):
data: typing.Optional[CreateConnectionResponseSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/create_connection_response_schema.py b/src/polytomic/types/create_connection_response_schema.py
index ea4dbff..20effd6 100644
--- a/src/polytomic/types/create_connection_response_schema.py
+++ b/src/polytomic/types/create_connection_response_schema.py
@@ -1,25 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .connection_type_schema import ConnectionTypeSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class CreateConnectionResponseSchema(pydantic_v1.BaseModel):
- auth_code: typing.Optional[str] = pydantic_v1.Field(default=None)
+class CreateConnectionResponseSchema(UniversalBaseModel):
+ auth_code: typing.Optional[str] = pydantic.Field(default=None)
"""
Code to enter in order to complete connection authentication.
"""
- auth_url: typing.Optional[str] = pydantic_v1.Field(default=None)
+ auth_url: typing.Optional[str] = pydantic.Field(default=None)
"""
URL to visit to complete connection authentication.
"""
- configuration: typing.Optional[typing.Dict[str, typing.Any]] = None
+ configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
id: typing.Optional[str] = None
name: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -28,20 +27,11 @@ class CreateConnectionResponseSchema(pydantic_v1.BaseModel):
status_error: typing.Optional[str] = None
type: typing.Optional[ConnectionTypeSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/create_model_request.py b/src/polytomic/types/create_model_request.py
index ef2674d..6c50475 100644
--- a/src/polytomic/types/create_model_request.py
+++ b/src/polytomic/types/create_model_request.py
@@ -1,18 +1,17 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .enrichment import Enrichment
from .model_model_field_request import ModelModelFieldRequest
+from .enrichment import Enrichment
from .model_relation import ModelRelation
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class CreateModelRequest(pydantic_v1.BaseModel):
+class CreateModelRequest(UniversalBaseModel):
additional_fields: typing.Optional[typing.List[ModelModelFieldRequest]] = None
- configuration: typing.Dict[str, typing.Any]
+ configuration: typing.Dict[str, typing.Optional[typing.Any]]
connection_id: str
enricher: typing.Optional[Enrichment] = None
fields: typing.Optional[typing.List[str]] = None
@@ -24,20 +23,11 @@ class CreateModelRequest(pydantic_v1.BaseModel):
relations: typing.Optional[typing.List[ModelRelation]] = None
tracking_columns: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/enrichment.py b/src/polytomic/types/enrichment.py
index ec56e30..7def672 100644
--- a/src/polytomic/types/enrichment.py
+++ b/src/polytomic/types/enrichment.py
@@ -1,44 +1,34 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .model_field import ModelField
from .v_2_enricher_configuration import V2EnricherConfiguration
+import pydantic
+from .model_field import ModelField
from .v_2_enricher_mapping import V2EnricherMapping
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class Enrichment(pydantic_v1.BaseModel):
+class Enrichment(UniversalBaseModel):
configuration: typing.Optional[V2EnricherConfiguration] = None
connection_id: typing.Optional[str] = None
- enricher_id: typing.Optional[str] = pydantic_v1.Field(default=None)
+ enricher_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Must be provided to update an existing enrichment
"""
- fields: typing.Optional[typing.List[ModelField]] = pydantic_v1.Field(default=None)
+ fields: typing.Optional[typing.List[ModelField]] = pydantic.Field(default=None)
"""
If not provided, all fields will be enabled.
"""
mappings: typing.Optional[V2EnricherMapping] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/event.py b/src/polytomic/types/event.py
index c519e7b..963d107 100644
--- a/src/polytomic/types/event.py
+++ b/src/polytomic/types/event.py
@@ -1,34 +1,25 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .event_body import EventBody
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class Event(pydantic_v1.BaseModel):
+class Event(UniversalBaseModel):
created_at: typing.Optional[dt.datetime] = None
event: typing.Optional[EventBody] = None
id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/event_body.py b/src/polytomic/types/event_body.py
index 2d86f70..6ea03e1 100644
--- a/src/polytomic/types/event_body.py
+++ b/src/polytomic/types/event_body.py
@@ -1,17 +1,16 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
-from .bulk_sync_canceled_event import BulkSyncCanceledEvent
+from .sync_running_event import SyncRunningEvent
+from .sync_completed_event import SyncCompletedEvent
+from .sync_failed_event import SyncFailedEvent
+from .sync_canceled_event import SyncCanceledEvent
+from .sync_completed_with_errors_event import SyncCompletedWithErrorsEvent
+from .bulk_sync_running_event import BulkSyncRunningEvent
from .bulk_sync_completed_event import BulkSyncCompletedEvent
+from .bulk_sync_canceled_event import BulkSyncCanceledEvent
from .bulk_sync_completed_with_error_event import BulkSyncCompletedWithErrorEvent
from .bulk_sync_failed_event import BulkSyncFailedEvent
-from .bulk_sync_running_event import BulkSyncRunningEvent
-from .sync_canceled_event import SyncCanceledEvent
-from .sync_completed_event import SyncCompletedEvent
-from .sync_completed_with_errors_event import SyncCompletedWithErrorsEvent
-from .sync_failed_event import SyncFailedEvent
-from .sync_running_event import SyncRunningEvent
EventBody = typing.Union[
SyncRunningEvent,
diff --git a/src/polytomic/types/event_types_envelope.py b/src/polytomic/types/event_types_envelope.py
index dc33581..57c5088 100644
--- a/src/polytomic/types/event_types_envelope.py
+++ b/src/polytomic/types/event_types_envelope.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class EventTypesEnvelope(pydantic_v1.BaseModel):
+class EventTypesEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/events_envelope.py b/src/polytomic/types/events_envelope.py
index 5ad67ac..b540371 100644
--- a/src/polytomic/types/events_envelope.py
+++ b/src/polytomic/types/events_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .event import Event
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class EventsEnvelope(pydantic_v1.BaseModel):
+class EventsEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[Event]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/execution_counts.py b/src/polytomic/types/execution_counts.py
index b8010c8..a14c06d 100644
--- a/src/polytomic/types/execution_counts.py
+++ b/src/polytomic/types/execution_counts.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ExecutionCounts(pydantic_v1.BaseModel):
+class ExecutionCounts(UniversalBaseModel):
delete: typing.Optional[int] = None
error: typing.Optional[int] = None
insert: typing.Optional[int] = None
total: typing.Optional[int] = None
update: typing.Optional[int] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/execution_log_response.py b/src/polytomic/types/execution_log_response.py
index f7498e0..bcef29e 100644
--- a/src/polytomic/types/execution_log_response.py
+++ b/src/polytomic/types/execution_log_response.py
@@ -1,30 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ExecutionLogResponse(pydantic_v1.BaseModel):
+class ExecutionLogResponse(UniversalBaseModel):
expires: typing.Optional[dt.datetime] = None
urls: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/execution_logs_response_envelope.py b/src/polytomic/types/execution_logs_response_envelope.py
index 12d6176..63cbcd2 100644
--- a/src/polytomic/types/execution_logs_response_envelope.py
+++ b/src/polytomic/types/execution_logs_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .execution_log_response import ExecutionLogResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ExecutionLogsResponseEnvelope(pydantic_v1.BaseModel):
+class ExecutionLogsResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ExecutionLogResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/field_configuration.py b/src/polytomic/types/field_configuration.py
index 8cedef4..07057de 100644
--- a/src/polytomic/types/field_configuration.py
+++ b/src/polytomic/types/field_configuration.py
@@ -1,38 +1,28 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class FieldConfiguration(pydantic_v1.BaseModel):
- enabled: typing.Optional[bool] = pydantic_v1.Field(default=None)
+class FieldConfiguration(UniversalBaseModel):
+ enabled: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether the field is enabled for syncing.
"""
id: typing.Optional[str] = None
- obfuscate: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ obfuscate: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether the field should be obfuscated.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/filter.py b/src/polytomic/types/filter.py
index b4008c9..b95dbc9 100644
--- a/src/polytomic/types/filter.py
+++ b/src/polytomic/types/filter.py
@@ -1,22 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from .source import Source
+import pydantic
from .filter_field_reference_type import FilterFieldReferenceType
from .filter_function import FilterFunction
-from .source import Source
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class Filter(pydantic_v1.BaseModel):
+class Filter(UniversalBaseModel):
"""
Either `field` or `field_id` must be provided. If `field` is provided, `field_id` is ignored.
"""
field: typing.Optional[Source] = None
- field_id: typing.Optional[str] = pydantic_v1.Field(default=None)
+ field_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Model or Target field name to filter on.
"""
@@ -24,22 +23,13 @@ class Filter(pydantic_v1.BaseModel):
field_type: typing.Optional[FilterFieldReferenceType] = None
function: FilterFunction
label: typing.Optional[str] = None
- value: typing.Optional[typing.Any] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ value: typing.Optional[typing.Optional[typing.Any]] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_connection_meta_envelope.py b/src/polytomic/types/get_connection_meta_envelope.py
index 0abfd70..e387173 100644
--- a/src/polytomic/types/get_connection_meta_envelope.py
+++ b/src/polytomic/types/get_connection_meta_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .connection_meta_response import ConnectionMetaResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class GetConnectionMetaEnvelope(pydantic_v1.BaseModel):
+class GetConnectionMetaEnvelope(UniversalBaseModel):
data: typing.Optional[ConnectionMetaResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_execution_response_envelope.py b/src/polytomic/types/get_execution_response_envelope.py
index a536b9d..4edb7db 100644
--- a/src/polytomic/types/get_execution_response_envelope.py
+++ b/src/polytomic/types/get_execution_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .get_execution_response_schema import GetExecutionResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class GetExecutionResponseEnvelope(pydantic_v1.BaseModel):
+class GetExecutionResponseEnvelope(UniversalBaseModel):
data: typing.Optional[GetExecutionResponseSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_execution_response_schema.py b/src/polytomic/types/get_execution_response_schema.py
index 6185e80..543548a 100644
--- a/src/polytomic/types/get_execution_response_schema.py
+++ b/src/polytomic/types/get_execution_response_schema.py
@@ -1,15 +1,15 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .execution_counts import ExecutionCounts
from .execution_status import ExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class GetExecutionResponseSchema(pydantic_v1.BaseModel):
+class GetExecutionResponseSchema(UniversalBaseModel):
completed_at: typing.Optional[dt.datetime] = None
counts: typing.Optional[ExecutionCounts] = None
created_at: typing.Optional[dt.datetime] = None
@@ -19,20 +19,11 @@ class GetExecutionResponseSchema(pydantic_v1.BaseModel):
status: typing.Optional[ExecutionStatus] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_identity_response_envelope.py b/src/polytomic/types/get_identity_response_envelope.py
index 0598c67..306c001 100644
--- a/src/polytomic/types/get_identity_response_envelope.py
+++ b/src/polytomic/types/get_identity_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .get_identity_response_schema import GetIdentityResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class GetIdentityResponseEnvelope(pydantic_v1.BaseModel):
+class GetIdentityResponseEnvelope(UniversalBaseModel):
data: typing.Optional[GetIdentityResponseSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_identity_response_schema.py b/src/polytomic/types/get_identity_response_schema.py
index ea768fc..41759ec 100644
--- a/src/polytomic/types/get_identity_response_schema.py
+++ b/src/polytomic/types/get_identity_response_schema.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class GetIdentityResponseSchema(pydantic_v1.BaseModel):
+class GetIdentityResponseSchema(UniversalBaseModel):
email: typing.Optional[str] = None
id: typing.Optional[str] = None
is_organization: typing.Optional[bool] = None
@@ -18,20 +17,11 @@ class GetIdentityResponseSchema(pydantic_v1.BaseModel):
organization_name: typing.Optional[str] = None
role: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/get_model_sync_source_meta_envelope.py b/src/polytomic/types/get_model_sync_source_meta_envelope.py
index c688e77..731c14a 100644
--- a/src/polytomic/types/get_model_sync_source_meta_envelope.py
+++ b/src/polytomic/types/get_model_sync_source_meta_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .model_sync_source_meta_response import ModelSyncSourceMetaResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class GetModelSyncSourceMetaEnvelope(pydantic_v1.BaseModel):
+class GetModelSyncSourceMetaEnvelope(UniversalBaseModel):
data: typing.Optional[ModelSyncSourceMetaResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/identity.py b/src/polytomic/types/identity.py
index 7e1a457..e34b270 100644
--- a/src/polytomic/types/identity.py
+++ b/src/polytomic/types/identity.py
@@ -1,35 +1,25 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
-import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.pydantic_utilities import UniversalBaseModel
from .schema_identity_function import SchemaIdentityFunction
+import typing
from .source import Source
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class Identity(pydantic_v1.BaseModel):
+class Identity(UniversalBaseModel):
function: SchemaIdentityFunction
new_field: typing.Optional[bool] = None
remote_field_type_id: typing.Optional[str] = None
source: Source
target: str
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/identity_function.py b/src/polytomic/types/identity_function.py
index 4165475..429e1ae 100644
--- a/src/polytomic/types/identity_function.py
+++ b/src/polytomic/types/identity_function.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class IdentityFunction(pydantic_v1.BaseModel):
+class IdentityFunction(UniversalBaseModel):
id: typing.Optional[str] = None
label: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/job_response.py b/src/polytomic/types/job_response.py
index e0b3440..7d601ad 100644
--- a/src/polytomic/types/job_response.py
+++ b/src/polytomic/types/job_response.py
@@ -1,34 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .work_task_status import WorkTaskStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class JobResponse(pydantic_v1.BaseModel):
+class JobResponse(UniversalBaseModel):
error: typing.Optional[str] = None
job_id: typing.Optional[str] = None
- result: typing.Optional[typing.Any] = None
+ result: typing.Optional[typing.Optional[typing.Any]] = None
status: typing.Optional[WorkTaskStatus] = None
type: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/job_response_envelope.py b/src/polytomic/types/job_response_envelope.py
index 381433e..8097319 100644
--- a/src/polytomic/types/job_response_envelope.py
+++ b/src/polytomic/types/job_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .job_response import JobResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class JobResponseEnvelope(pydantic_v1.BaseModel):
+class JobResponseEnvelope(UniversalBaseModel):
data: typing.Optional[JobResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/jsonschema_definitions.py b/src/polytomic/types/jsonschema_definitions.py
index ad4baed..7081989 100644
--- a/src/polytomic/types/jsonschema_definitions.py
+++ b/src/polytomic/types/jsonschema_definitions.py
@@ -2,6 +2,6 @@
import typing
-from .jsonschema_schema import JsonschemaSchema
+JsonschemaDefinitions = typing.Dict[str, "JsonschemaSchema"]
-JsonschemaDefinitions = typing.Dict[str, JsonschemaSchema]
+from .jsonschema_schema import JsonschemaSchema
diff --git a/src/polytomic/types/jsonschema_form.py b/src/polytomic/types/jsonschema_form.py
index 3481808..379bb56 100644
--- a/src/polytomic/types/jsonschema_form.py
+++ b/src/polytomic/types/jsonschema_form.py
@@ -2,4 +2,4 @@
import typing
-JsonschemaForm = typing.Dict[str, typing.Any]
+JsonschemaForm = typing.Dict[str, typing.Optional[typing.Any]]
diff --git a/src/polytomic/types/jsonschema_schema.py b/src/polytomic/types/jsonschema_schema.py
index 4319cc0..cc657fb 100644
--- a/src/polytomic/types/jsonschema_schema.py
+++ b/src/polytomic/types/jsonschema_schema.py
@@ -1,101 +1,105 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
-
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing_extensions
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.serialization import FieldMetadata
from .v_2_ordered_map_string_github_com_invopop_jsonschema_schema import (
V2OrderedMapStringGithubComInvopopJsonschemaSchema,
)
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+from ..core.pydantic_utilities import update_forward_refs
-class JsonschemaSchema(pydantic_v1.BaseModel):
- anchor: typing.Optional[str] = pydantic_v1.Field(alias="$anchor", default=None)
- comment: typing.Optional[str] = pydantic_v1.Field(alias="$comment", default=None)
- defs: typing.Optional[JsonschemaDefinitions] = pydantic_v1.Field(alias="$defs", default=None)
- dynamic_ref: typing.Optional[str] = pydantic_v1.Field(alias="$dynamicRef", default=None)
- id: typing.Optional[str] = pydantic_v1.Field(alias="$id", default=None)
- ref: typing.Optional[str] = pydantic_v1.Field(alias="$ref", default=None)
- schema_: typing.Optional[str] = pydantic_v1.Field(alias="$schema", default=None)
- additional_properties: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(
- alias="additionalProperties", default=None
- )
- all_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="allOf", default=None)
- any_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="anyOf", default=None)
- const: typing.Optional[typing.Any] = None
- contains: typing.Optional[JsonschemaSchema] = None
- content_encoding: typing.Optional[str] = pydantic_v1.Field(alias="contentEncoding", default=None)
- content_media_type: typing.Optional[str] = pydantic_v1.Field(alias="contentMediaType", default=None)
- content_schema: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="contentSchema", default=None)
- default: typing.Optional[typing.Any] = None
- dependent_required: typing.Optional[typing.Dict[str, typing.List[str]]] = pydantic_v1.Field(
- alias="dependentRequired", default=None
- )
- dependent_schemas: typing.Optional[typing.Dict[str, JsonschemaSchema]] = pydantic_v1.Field(
- alias="dependentSchemas", default=None
+class JsonschemaSchema(UniversalBaseModel):
+ anchor: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$anchor")] = None
+ comment: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$comment")] = None
+ defs: typing_extensions.Annotated[typing.Optional["JsonschemaDefinitions"], FieldMetadata(alias="$defs")] = None
+ dynamic_ref: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$dynamicRef")] = None
+ id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$id")] = None
+ ref: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$ref")] = None
+ schema_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="$schema")] = None
+ additional_properties: typing_extensions.Annotated[
+ typing.Optional["JsonschemaSchema"], FieldMetadata(alias="additionalProperties")
+ ] = None
+ all_of: typing_extensions.Annotated[
+ typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="allOf")
+ ] = None
+ any_of: typing_extensions.Annotated[
+ typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="anyOf")
+ ] = None
+ const: typing.Optional[typing.Optional[typing.Any]] = None
+ contains: typing.Optional["JsonschemaSchema"] = None
+ content_encoding: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="contentEncoding")] = None
+ content_media_type: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="contentMediaType")] = (
+ None
)
+ content_schema: typing_extensions.Annotated[
+ typing.Optional["JsonschemaSchema"], FieldMetadata(alias="contentSchema")
+ ] = None
+ default: typing.Optional[typing.Optional[typing.Any]] = None
+ dependent_required: typing_extensions.Annotated[
+ typing.Optional[typing.Dict[str, typing.List[str]]], FieldMetadata(alias="dependentRequired")
+ ] = None
+ dependent_schemas: typing_extensions.Annotated[
+ typing.Optional[typing.Dict[str, "JsonschemaSchema"]], FieldMetadata(alias="dependentSchemas")
+ ] = None
deprecated: typing.Optional[bool] = None
description: typing.Optional[str] = None
- else_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="else", default=None)
- enum: typing.Optional[typing.List[typing.Any]] = None
- examples: typing.Optional[typing.List[typing.Any]] = None
- exclusive_maximum: typing.Optional[str] = pydantic_v1.Field(alias="exclusiveMaximum", default=None)
- exclusive_minimum: typing.Optional[str] = pydantic_v1.Field(alias="exclusiveMinimum", default=None)
+ else_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="else")] = None
+ enum: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None
+ examples: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None
+ exclusive_maximum: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="exclusiveMaximum")] = None
+ exclusive_minimum: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="exclusiveMinimum")] = None
format: typing.Optional[str] = None
- if_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="if", default=None)
- items: typing.Optional[JsonschemaSchema] = None
- max_contains: typing.Optional[int] = pydantic_v1.Field(alias="maxContains", default=None)
- max_items: typing.Optional[int] = pydantic_v1.Field(alias="maxItems", default=None)
- max_length: typing.Optional[int] = pydantic_v1.Field(alias="maxLength", default=None)
- max_properties: typing.Optional[int] = pydantic_v1.Field(alias="maxProperties", default=None)
+ if_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="if")] = None
+ items: typing.Optional["JsonschemaSchema"] = None
+ max_contains: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxContains")] = None
+ max_items: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxItems")] = None
+ max_length: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxLength")] = None
+ max_properties: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxProperties")] = None
maximum: typing.Optional[str] = None
- min_contains: typing.Optional[int] = pydantic_v1.Field(alias="minContains", default=None)
- min_items: typing.Optional[int] = pydantic_v1.Field(alias="minItems", default=None)
- min_length: typing.Optional[int] = pydantic_v1.Field(alias="minLength", default=None)
- min_properties: typing.Optional[int] = pydantic_v1.Field(alias="minProperties", default=None)
+ min_contains: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minContains")] = None
+ min_items: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minItems")] = None
+ min_length: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minLength")] = None
+ min_properties: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="minProperties")] = None
minimum: typing.Optional[str] = None
- multiple_of: typing.Optional[str] = pydantic_v1.Field(alias="multipleOf", default=None)
- not_: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="not", default=None)
- one_of: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="oneOf", default=None)
+ multiple_of: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="multipleOf")] = None
+ not_: typing_extensions.Annotated[typing.Optional["JsonschemaSchema"], FieldMetadata(alias="not")] = None
+ one_of: typing_extensions.Annotated[
+ typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="oneOf")
+ ] = None
pattern: typing.Optional[str] = None
- pattern_properties: typing.Optional[typing.Dict[str, JsonschemaSchema]] = pydantic_v1.Field(
- alias="patternProperties", default=None
- )
- prefix_items: typing.Optional[typing.List[JsonschemaSchema]] = pydantic_v1.Field(alias="prefixItems", default=None)
+ pattern_properties: typing_extensions.Annotated[
+ typing.Optional[typing.Dict[str, "JsonschemaSchema"]], FieldMetadata(alias="patternProperties")
+ ] = None
+ prefix_items: typing_extensions.Annotated[
+ typing.Optional[typing.List["JsonschemaSchema"]], FieldMetadata(alias="prefixItems")
+ ] = None
properties: typing.Optional[V2OrderedMapStringGithubComInvopopJsonschemaSchema] = None
- property_names: typing.Optional[JsonschemaSchema] = pydantic_v1.Field(alias="propertyNames", default=None)
- read_only: typing.Optional[bool] = pydantic_v1.Field(alias="readOnly", default=None)
+ property_names: typing_extensions.Annotated[
+ typing.Optional["JsonschemaSchema"], FieldMetadata(alias="propertyNames")
+ ] = None
+ read_only: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="readOnly")] = None
required: typing.Optional[typing.List[str]] = None
- then: typing.Optional[JsonschemaSchema] = None
+ then: typing.Optional["JsonschemaSchema"] = None
title: typing.Optional[str] = None
type: typing.Optional[str] = None
- unique_items: typing.Optional[bool] = pydantic_v1.Field(alias="uniqueItems", default=None)
- write_only: typing.Optional[bool] = pydantic_v1.Field(alias="writeOnly", default=None)
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ unique_items: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="uniqueItems")] = None
+ write_only: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="writeOnly")] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
from .jsonschema_definitions import JsonschemaDefinitions # noqa: E402
-JsonschemaSchema.update_forward_refs()
+update_forward_refs(JsonschemaSchema)
diff --git a/src/polytomic/types/label_label.py b/src/polytomic/types/label_label.py
index 9a15ec0..2a919ae 100644
--- a/src/polytomic/types/label_label.py
+++ b/src/polytomic/types/label_label.py
@@ -2,4 +2,4 @@
import typing
-LabelLabel = typing.Dict[str, typing.Any]
+LabelLabel = typing.Dict[str, typing.Optional[typing.Any]]
diff --git a/src/polytomic/types/list_bulk_schema.py b/src/polytomic/types/list_bulk_schema.py
index a8aa333..6a6640b 100644
--- a/src/polytomic/types/list_bulk_schema.py
+++ b/src/polytomic/types/list_bulk_schema.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_schema import BulkSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListBulkSchema(pydantic_v1.BaseModel):
+class ListBulkSchema(UniversalBaseModel):
data: typing.Optional[typing.List[BulkSchema]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_bulk_sync_execution_status_envelope.py b/src/polytomic/types/list_bulk_sync_execution_status_envelope.py
index c6b7c66..92d9d14 100644
--- a/src/polytomic/types/list_bulk_sync_execution_status_envelope.py
+++ b/src/polytomic/types/list_bulk_sync_execution_status_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_execution_status import BulkSyncExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListBulkSyncExecutionStatusEnvelope(pydantic_v1.BaseModel):
+class ListBulkSyncExecutionStatusEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[BulkSyncExecutionStatus]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_bulk_sync_executions_envelope.py b/src/polytomic/types/list_bulk_sync_executions_envelope.py
index 4921bd5..0d09a7a 100644
--- a/src/polytomic/types/list_bulk_sync_executions_envelope.py
+++ b/src/polytomic/types/list_bulk_sync_executions_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .bulk_sync_execution import BulkSyncExecution
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListBulkSyncExecutionsEnvelope(pydantic_v1.BaseModel):
+class ListBulkSyncExecutionsEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[BulkSyncExecution]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_execution_response_envelope.py b/src/polytomic/types/list_execution_response_envelope.py
index efaf8d6..ae3d2fb 100644
--- a/src/polytomic/types/list_execution_response_envelope.py
+++ b/src/polytomic/types/list_execution_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .get_execution_response_schema import GetExecutionResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListExecutionResponseEnvelope(pydantic_v1.BaseModel):
+class ListExecutionResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[GetExecutionResponseSchema]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_model_sync_response_envelope.py b/src/polytomic/types/list_model_sync_response_envelope.py
index f278169..f4d9ade 100644
--- a/src/polytomic/types/list_model_sync_response_envelope.py
+++ b/src/polytomic/types/list_model_sync_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .model_sync_response import ModelSyncResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListModelSyncResponseEnvelope(pydantic_v1.BaseModel):
+class ListModelSyncResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[ModelSyncResponse]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_policies_response_envelope.py b/src/polytomic/types/list_policies_response_envelope.py
index 0bda3ca..06b5313 100644
--- a/src/polytomic/types/list_policies_response_envelope.py
+++ b/src/polytomic/types/list_policies_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .policy_response import PolicyResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListPoliciesResponseEnvelope(pydantic_v1.BaseModel):
+class ListPoliciesResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[PolicyResponse]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/list_users_envelope.py b/src/polytomic/types/list_users_envelope.py
index 2aea8ae..3f0e8e7 100644
--- a/src/polytomic/types/list_users_envelope.py
+++ b/src/polytomic/types/list_users_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .user import User
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ListUsersEnvelope(pydantic_v1.BaseModel):
+class ListUsersEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[User]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/mode.py b/src/polytomic/types/mode.py
index f9d817e..3792f02 100644
--- a/src/polytomic/types/mode.py
+++ b/src/polytomic/types/mode.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class Mode(pydantic_v1.BaseModel):
+class Mode(UniversalBaseModel):
description: typing.Optional[str] = None
label: typing.Optional[str] = None
mode: typing.Optional[str] = None
@@ -15,20 +14,11 @@ class Mode(pydantic_v1.BaseModel):
supports_field_sync_mode: typing.Optional[bool] = None
supports_target_filters: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_field.py b/src/polytomic/types/model_field.py
index f5f8bd5..a04c845 100644
--- a/src/polytomic/types/model_field.py
+++ b/src/polytomic/types/model_field.py
@@ -1,15 +1,14 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ModelField(pydantic_v1.BaseModel):
+class ModelField(UniversalBaseModel):
description: typing.Optional[str] = None
- example: typing.Optional[typing.Any] = None
+ example: typing.Optional[typing.Optional[typing.Any]] = None
id: typing.Optional[str] = None
label: typing.Optional[str] = None
name: typing.Optional[str] = None
@@ -18,20 +17,11 @@ class ModelField(pydantic_v1.BaseModel):
unique: typing.Optional[bool] = None
user_added: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_field_response.py b/src/polytomic/types/model_field_response.py
index 1df84ed..1fd1092 100644
--- a/src/polytomic/types/model_field_response.py
+++ b/src/polytomic/types/model_field_response.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .model_field import ModelField
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelFieldResponse(pydantic_v1.BaseModel):
+class ModelFieldResponse(UniversalBaseModel):
data: typing.Optional[typing.List[ModelField]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_list_response_envelope.py b/src/polytomic/types/model_list_response_envelope.py
index 7f783e3..67be25f 100644
--- a/src/polytomic/types/model_list_response_envelope.py
+++ b/src/polytomic/types/model_list_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .model_response import ModelResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelListResponseEnvelope(pydantic_v1.BaseModel):
+class ModelListResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[ModelResponse]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_model_field_request.py b/src/polytomic/types/model_model_field_request.py
index 4966b9d..c8aee31 100644
--- a/src/polytomic/types/model_model_field_request.py
+++ b/src/polytomic/types/model_model_field_request.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ModelModelFieldRequest(pydantic_v1.BaseModel):
+class ModelModelFieldRequest(UniversalBaseModel):
example: typing.Optional[str] = None
label: str
name: str
type: str
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_relation.py b/src/polytomic/types/model_relation.py
index d1eb93c..65c67ab 100644
--- a/src/polytomic/types/model_relation.py
+++ b/src/polytomic/types/model_relation.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing_extensions
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.serialization import FieldMetadata
from .model_relation_to import ModelRelationTo
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelRelation(pydantic_v1.BaseModel):
- from_: typing.Optional[str] = pydantic_v1.Field(alias="from", default=None)
+class ModelRelation(UniversalBaseModel):
+ from_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="from")] = None
to: typing.Optional[ModelRelationTo] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_relation_to.py b/src/polytomic/types/model_relation_to.py
index 5e17ff1..fec6974 100644
--- a/src/polytomic/types/model_relation_to.py
+++ b/src/polytomic/types/model_relation_to.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class ModelRelationTo(pydantic_v1.BaseModel):
+class ModelRelationTo(UniversalBaseModel):
field: typing.Optional[str] = None
model_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_response.py b/src/polytomic/types/model_response.py
index 5f7172a..d4e1f71 100644
--- a/src/polytomic/types/model_response.py
+++ b/src/polytomic/types/model_response.py
@@ -1,19 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .common_output_actor import CommonOutputActor
from .enrichment import Enrichment
-from .label_label import LabelLabel
from .model_field import ModelField
+from .label_label import LabelLabel
from .relation import Relation
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelResponse(pydantic_v1.BaseModel):
- configuration: typing.Optional[typing.Dict[str, typing.Any]] = None
+class ModelResponse(UniversalBaseModel):
+ configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
connection_id: typing.Optional[str] = None
created_at: typing.Optional[dt.datetime] = None
created_by: typing.Optional[CommonOutputActor] = None
@@ -32,20 +32,11 @@ class ModelResponse(pydantic_v1.BaseModel):
updated_by: typing.Optional[CommonOutputActor] = None
version: typing.Optional[int] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_response_envelope.py b/src/polytomic/types/model_response_envelope.py
index 7697eaf..61df370 100644
--- a/src/polytomic/types/model_response_envelope.py
+++ b/src/polytomic/types/model_response_envelope.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .job_response import JobResponse
from .model_response import ModelResponse
+from .job_response import JobResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelResponseEnvelope(pydantic_v1.BaseModel):
+class ModelResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ModelResponse] = None
job: typing.Optional[JobResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sample.py b/src/polytomic/types/model_sample.py
index 9453557..10ce391 100644
--- a/src/polytomic/types/model_sample.py
+++ b/src/polytomic/types/model_sample.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .v_2_sample_record import V2SampleRecord
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelSample(pydantic_v1.BaseModel):
+class ModelSample(UniversalBaseModel):
records: typing.Optional[typing.List[V2SampleRecord]] = None
warnings: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sample_response_envelope.py b/src/polytomic/types/model_sample_response_envelope.py
index 2e6bd61..1889c54 100644
--- a/src/polytomic/types/model_sample_response_envelope.py
+++ b/src/polytomic/types/model_sample_response_envelope.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .job_response import JobResponse
from .model_sample import ModelSample
+from .job_response import JobResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelSampleResponseEnvelope(pydantic_v1.BaseModel):
+class ModelSampleResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ModelSample] = None
job: typing.Optional[JobResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sync_field.py b/src/polytomic/types/model_sync_field.py
index 2a9ecfd..8447658 100644
--- a/src/polytomic/types/model_sync_field.py
+++ b/src/polytomic/types/model_sync_field.py
@@ -1,49 +1,39 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .source import Source
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class ModelSyncField(pydantic_v1.BaseModel):
- new: typing.Optional[bool] = pydantic_v1.Field(default=None)
+class ModelSyncField(UniversalBaseModel):
+ new: typing.Optional[bool] = pydantic.Field(default=None)
"""
New is set to true if the target field should be created by Polytomic. This is not supported by all backends.
"""
- override_value: typing.Optional[str] = pydantic_v1.Field(default=None)
+ override_value: typing.Optional[str] = pydantic.Field(default=None)
"""
Value to set in the target field; if provided, 'source' is ignored.
"""
source: typing.Optional[Source] = None
- sync_mode: typing.Optional[str] = pydantic_v1.Field(default=None)
+ sync_mode: typing.Optional[str] = pydantic.Field(default=None)
"""
Sync mode for the field; defaults to 'updateOrCreate'. If set to 'create', the field will not be synced if it already has a value. This is not supported by all backends.
"""
- target: str = pydantic_v1.Field()
+ target: str = pydantic.Field()
"""
Target field ID the source field value will be written to.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sync_response.py b/src/polytomic/types/model_sync_response.py
index a36f4ca..9fc9537 100644
--- a/src/polytomic/types/model_sync_response.py
+++ b/src/polytomic/types/model_sync_response.py
@@ -1,20 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .common_output_actor import CommonOutputActor
+from .model_sync_field import ModelSyncField
from .filter import Filter
from .identity import Identity
-from .model_sync_field import ModelSyncField
from .override import Override
from .schedule import Schedule
from .target import Target
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelSyncResponse(pydantic_v1.BaseModel):
+class ModelSyncResponse(UniversalBaseModel):
active: typing.Optional[bool] = None
created_at: typing.Optional[dt.datetime] = None
created_by: typing.Optional[CommonOutputActor] = None
@@ -25,30 +25,23 @@ class ModelSyncResponse(pydantic_v1.BaseModel):
identity: typing.Optional[Identity] = None
mode: typing.Optional[str] = None
name: typing.Optional[str] = None
+ only_enrich_updates: typing.Optional[bool] = None
organization_id: typing.Optional[str] = None
override_fields: typing.Optional[typing.List[ModelSyncField]] = None
overrides: typing.Optional[typing.List[Override]] = None
policies: typing.Optional[typing.List[str]] = None
schedule: typing.Optional[Schedule] = None
+ skip_initial_backfill: typing.Optional[bool] = None
sync_all_records: typing.Optional[bool] = None
target: typing.Optional[Target] = None
updated_at: typing.Optional[dt.datetime] = None
updated_by: typing.Optional[CommonOutputActor] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sync_response_envelope.py b/src/polytomic/types/model_sync_response_envelope.py
index e15fefa..7b4afe2 100644
--- a/src/polytomic/types/model_sync_response_envelope.py
+++ b/src/polytomic/types/model_sync_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .model_sync_response import ModelSyncResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelSyncResponseEnvelope(pydantic_v1.BaseModel):
+class ModelSyncResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ModelSyncResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/model_sync_source_meta_response.py b/src/polytomic/types/model_sync_source_meta_response.py
index 70f5a39..552befd 100644
--- a/src/polytomic/types/model_sync_source_meta_response.py
+++ b/src/polytomic/types/model_sync_source_meta_response.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .configuration_value import ConfigurationValue
from .source_meta import SourceMeta
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ModelSyncSourceMetaResponse(pydantic_v1.BaseModel):
+class ModelSyncSourceMetaResponse(UniversalBaseModel):
configuration: typing.Optional[typing.Dict[str, ConfigurationValue]] = None
items: typing.Optional[typing.Dict[str, typing.Optional[SourceMeta]]] = None
requires_one_of: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/organization.py b/src/polytomic/types/organization.py
index b4bb459..18977d0 100644
--- a/src/polytomic/types/organization.py
+++ b/src/polytomic/types/organization.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class Organization(pydantic_v1.BaseModel):
+class Organization(UniversalBaseModel):
id: typing.Optional[str] = None
issuer: typing.Optional[str] = None
name: typing.Optional[str] = None
sso_domain: typing.Optional[str] = None
sso_org_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/organization_envelope.py b/src/polytomic/types/organization_envelope.py
index f1e82d7..11b776a 100644
--- a/src/polytomic/types/organization_envelope.py
+++ b/src/polytomic/types/organization_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .organization import Organization
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class OrganizationEnvelope(pydantic_v1.BaseModel):
+class OrganizationEnvelope(UniversalBaseModel):
data: typing.Optional[Organization] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/organizations_envelope.py b/src/polytomic/types/organizations_envelope.py
index 3332826..693c6e2 100644
--- a/src/polytomic/types/organizations_envelope.py
+++ b/src/polytomic/types/organizations_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .organization import Organization
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class OrganizationsEnvelope(pydantic_v1.BaseModel):
+class OrganizationsEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[Organization]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/override.py b/src/polytomic/types/override.py
index b39e4ab..b44a322 100644
--- a/src/polytomic/types/override.py
+++ b/src/polytomic/types/override.py
@@ -1,43 +1,33 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .filter_function import FilterFunction
from .source import Source
+import pydantic
+from .filter_function import FilterFunction
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class Override(pydantic_v1.BaseModel):
+class Override(UniversalBaseModel):
"""
Either `field` or `field_id` must be provided. If `field_id` is provided, `field` is ignored.
"""
field: typing.Optional[Source] = None
- field_id: typing.Optional[str] = pydantic_v1.Field(default=None)
+ field_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Field ID of the model field to override.
"""
function: typing.Optional[FilterFunction] = None
- override: typing.Optional[typing.Any] = None
- value: typing.Optional[typing.Any] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ override: typing.Optional[typing.Optional[typing.Any]] = None
+ value: typing.Optional[typing.Optional[typing.Any]] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/pagination.py b/src/polytomic/types/pagination.py
index 355252c..518a988 100644
--- a/src/polytomic/types/pagination.py
+++ b/src/polytomic/types/pagination.py
@@ -1,37 +1,27 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class Pagination(pydantic_v1.BaseModel):
- next: typing.Optional[str] = pydantic_v1.Field(default=None)
+class Pagination(UniversalBaseModel):
+ next: typing.Optional[str] = pydantic.Field(default=None)
"""
URL to the next page of results, if available. This may be returned as a host relative path.
"""
- previous: typing.Optional[str] = pydantic_v1.Field(default=None)
+ previous: typing.Optional[str] = pydantic.Field(default=None)
"""
URL to the previous page of results, if available. This may be returned as a host relative path.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/pick_value.py b/src/polytomic/types/pick_value.py
index 590f8a9..46e6fce 100644
--- a/src/polytomic/types/pick_value.py
+++ b/src/polytomic/types/pick_value.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class PickValue(pydantic_v1.BaseModel):
+class PickValue(UniversalBaseModel):
label: typing.Optional[str] = None
value: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/policy_action.py b/src/polytomic/types/policy_action.py
index 2c6e960..b7a5614 100644
--- a/src/polytomic/types/policy_action.py
+++ b/src/polytomic/types/policy_action.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class PolicyAction(pydantic_v1.BaseModel):
+class PolicyAction(UniversalBaseModel):
action: str
role_ids: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/policy_response.py b/src/polytomic/types/policy_response.py
index a1e31d6..91d3259 100644
--- a/src/polytomic/types/policy_response.py
+++ b/src/polytomic/types/policy_response.py
@@ -1,34 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .policy_action import PolicyAction
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class PolicyResponse(pydantic_v1.BaseModel):
+class PolicyResponse(UniversalBaseModel):
id: typing.Optional[str] = None
name: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
policy_actions: typing.Optional[typing.List[PolicyAction]] = None
system: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/policy_response_envelope.py b/src/polytomic/types/policy_response_envelope.py
index 954b7e9..a41c20c 100644
--- a/src/polytomic/types/policy_response_envelope.py
+++ b/src/polytomic/types/policy_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .policy_response import PolicyResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class PolicyResponseEnvelope(pydantic_v1.BaseModel):
+class PolicyResponseEnvelope(UniversalBaseModel):
data: typing.Optional[PolicyResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/relation.py b/src/polytomic/types/relation.py
index f36b4f9..2813968 100644
--- a/src/polytomic/types/relation.py
+++ b/src/polytomic/types/relation.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing_extensions
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from ..core.serialization import FieldMetadata
from .relation_to import RelationTo
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class Relation(pydantic_v1.BaseModel):
- from_: typing.Optional[str] = pydantic_v1.Field(alias="from", default=None)
+class Relation(UniversalBaseModel):
+ from_: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="from")] = None
to: typing.Optional[RelationTo] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- allow_population_by_field_name = True
- populate_by_name = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/relation_to.py b/src/polytomic/types/relation_to.py
index 3343854..4139bf1 100644
--- a/src/polytomic/types/relation_to.py
+++ b/src/polytomic/types/relation_to.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class RelationTo(pydantic_v1.BaseModel):
+class RelationTo(UniversalBaseModel):
field: typing.Optional[str] = None
model_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/rest_err_response.py b/src/polytomic/types/rest_err_response.py
index d06254e..6cbc66f 100644
--- a/src/polytomic/types/rest_err_response.py
+++ b/src/polytomic/types/rest_err_response.py
@@ -1,47 +1,37 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class RestErrResponse(pydantic_v1.BaseModel):
- code: typing.Optional[int] = pydantic_v1.Field(default=None)
+class RestErrResponse(UniversalBaseModel):
+ code: typing.Optional[int] = pydantic.Field(default=None)
"""
Application-specific error code.
"""
- context: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
+ context: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
"""
Application context.
"""
- error: typing.Optional[str] = pydantic_v1.Field(default=None)
+ error: typing.Optional[str] = pydantic.Field(default=None)
"""
Error message.
"""
- status: typing.Optional[str] = pydantic_v1.Field(default=None)
+ status: typing.Optional[str] = pydantic.Field(default=None)
"""
Status text.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/role_list_response_envelope.py b/src/polytomic/types/role_list_response_envelope.py
index 7bea82c..39f5468 100644
--- a/src/polytomic/types/role_list_response_envelope.py
+++ b/src/polytomic/types/role_list_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .role_response import RoleResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class RoleListResponseEnvelope(pydantic_v1.BaseModel):
+class RoleListResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[RoleResponse]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/role_response.py b/src/polytomic/types/role_response.py
index f9ce7f3..efd272c 100644
--- a/src/polytomic/types/role_response.py
+++ b/src/polytomic/types/role_response.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class RoleResponse(pydantic_v1.BaseModel):
+class RoleResponse(UniversalBaseModel):
id: typing.Optional[str] = None
name: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
system: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/role_response_envelope.py b/src/polytomic/types/role_response_envelope.py
index 924dc6d..fee70d7 100644
--- a/src/polytomic/types/role_response_envelope.py
+++ b/src/polytomic/types/role_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .role_response import RoleResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class RoleResponseEnvelope(pydantic_v1.BaseModel):
+class RoleResponseEnvelope(UniversalBaseModel):
data: typing.Optional[RoleResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/run_after.py b/src/polytomic/types/run_after.py
index 32dd33e..d3e5ea5 100644
--- a/src/polytomic/types/run_after.py
+++ b/src/polytomic/types/run_after.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class RunAfter(pydantic_v1.BaseModel):
+class RunAfter(UniversalBaseModel):
bulk_sync_ids: typing.Optional[typing.List[str]] = None
sync_ids: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schedule.py b/src/polytomic/types/schedule.py
index 49201d9..c3525a2 100644
--- a/src/polytomic/types/schedule.py
+++ b/src/polytomic/types/schedule.py
@@ -1,15 +1,14 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .run_after import RunAfter
from .schedule_frequency import ScheduleFrequency
+from .run_after import RunAfter
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class Schedule(pydantic_v1.BaseModel):
+class Schedule(UniversalBaseModel):
connection_id: typing.Optional[str] = None
day_of_month: typing.Optional[str] = None
day_of_week: typing.Optional[str] = None
@@ -19,25 +18,16 @@ class Schedule(pydantic_v1.BaseModel):
minute: typing.Optional[str] = None
month: typing.Optional[str] = None
run_after: typing.Optional[RunAfter] = None
- run_after_success_only: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ run_after_success_only: typing.Optional[bool] = pydantic.Field(default=None)
"""
If true, the sync will only run if the dependent syncs completed successfully.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schedule_option_response.py b/src/polytomic/types/schedule_option_response.py
index dfeed16..1c7a29d 100644
--- a/src/polytomic/types/schedule_option_response.py
+++ b/src/polytomic/types/schedule_option_response.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schedule_schedule_option import ScheduleScheduleOption
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ScheduleOptionResponse(pydantic_v1.BaseModel):
+class ScheduleOptionResponse(UniversalBaseModel):
schedule_options: typing.Optional[typing.List[ScheduleScheduleOption]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schedule_option_response_envelope.py b/src/polytomic/types/schedule_option_response_envelope.py
index 3944f21..93f4e55 100644
--- a/src/polytomic/types/schedule_option_response_envelope.py
+++ b/src/polytomic/types/schedule_option_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schedule_option_response import ScheduleOptionResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ScheduleOptionResponseEnvelope(pydantic_v1.BaseModel):
+class ScheduleOptionResponseEnvelope(UniversalBaseModel):
data: typing.Optional[ScheduleOptionResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schedule_schedule_option.py b/src/polytomic/types/schedule_schedule_option.py
index 45f7e56..cb8e768 100644
--- a/src/polytomic/types/schedule_schedule_option.py
+++ b/src/polytomic/types/schedule_schedule_option.py
@@ -1,34 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .jsonschema_form import JsonschemaForm
from .schedule_frequency import ScheduleFrequency
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class ScheduleScheduleOption(pydantic_v1.BaseModel):
+class ScheduleScheduleOption(UniversalBaseModel):
configuration: typing.Optional[JsonschemaForm] = None
description: typing.Optional[str] = None
frequency: typing.Optional[ScheduleFrequency] = None
label: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schema.py b/src/polytomic/types/schema.py
index d3ab158..ee95d24 100644
--- a/src/polytomic/types/schema.py
+++ b/src/polytomic/types/schema.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .schema_field import SchemaField
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class Schema(pydantic_v1.BaseModel):
+class Schema(UniversalBaseModel):
fields: typing.Optional[typing.List[SchemaField]] = None
id: typing.Optional[str] = None
name: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schema_association.py b/src/polytomic/types/schema_association.py
index baa6fb8..e87ed04 100644
--- a/src/polytomic/types/schema_association.py
+++ b/src/polytomic/types/schema_association.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SchemaAssociation(pydantic_v1.BaseModel):
+class SchemaAssociation(UniversalBaseModel):
id: typing.Optional[str] = None
name: typing.Optional[str] = None
reference_to: typing.Optional[typing.List[str]] = None
referenced_field: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schema_configuration.py b/src/polytomic/types/schema_configuration.py
index 2d9c42a..530c3f4 100644
--- a/src/polytomic/types/schema_configuration.py
+++ b/src/polytomic/types/schema_configuration.py
@@ -1,22 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .bulk_filter import BulkFilter
+import datetime as dt
+import pydantic
from .v_2_schema_configuration_fields_item import V2SchemaConfigurationFieldsItem
+from .bulk_filter import BulkFilter
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class SchemaConfiguration(pydantic_v1.BaseModel):
+class SchemaConfiguration(UniversalBaseModel):
data_cutoff_timestamp: typing.Optional[dt.datetime] = None
- disable_data_cutoff: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ disable_data_cutoff: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether data cutoff is disabled for this schema.
"""
- enabled: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ enabled: typing.Optional[bool] = pydantic.Field(default=None)
"""
Whether the schema is enabled for syncing.
"""
@@ -27,20 +27,11 @@ class SchemaConfiguration(pydantic_v1.BaseModel):
partition_key: typing.Optional[str] = None
tracking_field: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schema_field.py b/src/polytomic/types/schema_field.py
index 62fcf05..6dafe7b 100644
--- a/src/polytomic/types/schema_field.py
+++ b/src/polytomic/types/schema_field.py
@@ -1,21 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .pick_value import PickValue
from .schema_association import SchemaAssociation
-from .types_type import TypesType
+import pydantic
from .util_field_type import UtilFieldType
+from .types_type import TypesType
+from .pick_value import PickValue
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class SchemaField(pydantic_v1.BaseModel):
+class SchemaField(UniversalBaseModel):
association: typing.Optional[SchemaAssociation] = None
id: typing.Optional[str] = None
name: typing.Optional[str] = None
- remote_type: typing.Optional[str] = pydantic_v1.Field(default=None)
+ remote_type: typing.Optional[str] = pydantic.Field(default=None)
"""
The type of the field from the remote system.
"""
@@ -24,20 +23,11 @@ class SchemaField(pydantic_v1.BaseModel):
type_spec: typing.Optional[TypesType] = None
values: typing.Optional[typing.List[PickValue]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/schema_records_response_envelope.py b/src/polytomic/types/schema_records_response_envelope.py
index 929b765..5131def 100644
--- a/src/polytomic/types/schema_records_response_envelope.py
+++ b/src/polytomic/types/schema_records_response_envelope.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+class SchemaRecordsResponseEnvelope(UniversalBaseModel):
+ data: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None
-class SchemaRecordsResponseEnvelope(pydantic_v1.BaseModel):
- data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/source.py b/src/polytomic/types/source.py
index 1e1eb5f..f5e6def 100644
--- a/src/polytomic/types/source.py
+++ b/src/polytomic/types/source.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
import typing
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class Source(pydantic_v1.BaseModel):
+class Source(UniversalBaseModel):
field: str
model_id: str
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/source_meta.py b/src/polytomic/types/source_meta.py
index 73824af..a447157 100644
--- a/src/polytomic/types/source_meta.py
+++ b/src/polytomic/types/source_meta.py
@@ -1,31 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SourceMeta(pydantic_v1.BaseModel):
+class SourceMeta(UniversalBaseModel):
has_items: typing.Optional[bool] = None
- items: typing.Optional[typing.List[typing.Any]] = None
+ items: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None
requires_one_of: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/start_model_sync_response_envelope.py b/src/polytomic/types/start_model_sync_response_envelope.py
index 18fd47c..f6b46c2 100644
--- a/src/polytomic/types/start_model_sync_response_envelope.py
+++ b/src/polytomic/types/start_model_sync_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .start_model_sync_response_schema import StartModelSyncResponseSchema
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class StartModelSyncResponseEnvelope(pydantic_v1.BaseModel):
+class StartModelSyncResponseEnvelope(UniversalBaseModel):
data: typing.Optional[StartModelSyncResponseSchema] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/start_model_sync_response_schema.py b/src/polytomic/types/start_model_sync_response_schema.py
index a206f9d..889b90e 100644
--- a/src/polytomic/types/start_model_sync_response_schema.py
+++ b/src/polytomic/types/start_model_sync_response_schema.py
@@ -1,32 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
from .execution_status import ExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class StartModelSyncResponseSchema(pydantic_v1.BaseModel):
+class StartModelSyncResponseSchema(UniversalBaseModel):
created_at: typing.Optional[dt.datetime] = None
id: typing.Optional[str] = None
status: typing.Optional[ExecutionStatus] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/supported_bulk_mode.py b/src/polytomic/types/supported_bulk_mode.py
index 486d2da..4b64c17 100644
--- a/src/polytomic/types/supported_bulk_mode.py
+++ b/src/polytomic/types/supported_bulk_mode.py
@@ -1,14 +1,13 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .sync_mode import SyncMode
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class SupportedBulkMode(pydantic_v1.BaseModel):
+class SupportedBulkMode(UniversalBaseModel):
description: typing.Optional[str] = None
id: typing.Optional[SyncMode] = None
label: typing.Optional[str] = None
@@ -16,20 +15,11 @@ class SupportedBulkMode(pydantic_v1.BaseModel):
supports_field_sync_mode: typing.Optional[bool] = None
supports_target_filters: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/supported_mode.py b/src/polytomic/types/supported_mode.py
index 22a3fbe..f63940f 100644
--- a/src/polytomic/types/supported_mode.py
+++ b/src/polytomic/types/supported_mode.py
@@ -1,44 +1,34 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .sync_mode import SyncMode
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class SupportedMode(pydantic_v1.BaseModel):
+class SupportedMode(UniversalBaseModel):
id: typing.Optional[SyncMode] = None
- requires_identity: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ requires_identity: typing.Optional[bool] = pydantic.Field(default=None)
"""
True if the sync mode requires an identity field mapping.
"""
- supports_per_field_mode: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ supports_per_field_mode: typing.Optional[bool] = pydantic.Field(default=None)
"""
True if the target supports per-field sync modes.
"""
- supports_target_filters: typing.Optional[bool] = pydantic_v1.Field(default=None)
+ supports_target_filters: typing.Optional[bool] = pydantic.Field(default=None)
"""
True if the sync mode supports target filters.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_canceled_event.py b/src/polytomic/types/sync_canceled_event.py
index e14c5ca..caf552e 100644
--- a/src/polytomic/types/sync_canceled_event.py
+++ b/src/polytomic/types/sync_canceled_event.py
@@ -1,14 +1,13 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .execution_status import ExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class SyncCanceledEvent(pydantic_v1.BaseModel):
+class SyncCanceledEvent(UniversalBaseModel):
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
status: typing.Optional[ExecutionStatus] = None
@@ -16,20 +15,11 @@ class SyncCanceledEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
target_connection_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_completed_event.py b/src/polytomic/types/sync_completed_event.py
index b3bcc97..64e935c 100644
--- a/src/polytomic/types/sync_completed_event.py
+++ b/src/polytomic/types/sync_completed_event.py
@@ -1,14 +1,13 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .execution_status import ExecutionStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class SyncCompletedEvent(pydantic_v1.BaseModel):
+class SyncCompletedEvent(UniversalBaseModel):
deleted_records: typing.Optional[typing.List[str]] = None
error_count: typing.Optional[int] = None
errored_records: typing.Optional[typing.List[str]] = None
@@ -29,20 +28,11 @@ class SyncCompletedEvent(pydantic_v1.BaseModel):
warning_count: typing.Optional[int] = None
warnings: typing.Optional[typing.List[str]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_completed_with_errors_event.py b/src/polytomic/types/sync_completed_with_errors_event.py
index 2e4d7c0..ad86808 100644
--- a/src/polytomic/types/sync_completed_with_errors_event.py
+++ b/src/polytomic/types/sync_completed_with_errors_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SyncCompletedWithErrorsEvent(pydantic_v1.BaseModel):
+class SyncCompletedWithErrorsEvent(UniversalBaseModel):
error: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
number_of_errors: typing.Optional[int] = None
@@ -17,20 +16,11 @@ class SyncCompletedWithErrorsEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
target_connection_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_destination_properties.py b/src/polytomic/types/sync_destination_properties.py
index 8b62d04..a9b3843 100644
--- a/src/polytomic/types/sync_destination_properties.py
+++ b/src/polytomic/types/sync_destination_properties.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SyncDestinationProperties(pydantic_v1.BaseModel):
+class SyncDestinationProperties(UniversalBaseModel):
does_not_report_operation_counts: typing.Optional[bool] = None
mappings_not_required: typing.Optional[bool] = None
new_target_label: typing.Optional[str] = None
@@ -21,20 +20,11 @@ class SyncDestinationProperties(pydantic_v1.BaseModel):
target_creator: typing.Optional[bool] = None
use_field_names_as_labels: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_failed_event.py b/src/polytomic/types/sync_failed_event.py
index 14ef5fa..c345f09 100644
--- a/src/polytomic/types/sync_failed_event.py
+++ b/src/polytomic/types/sync_failed_event.py
@@ -1,13 +1,12 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SyncFailedEvent(pydantic_v1.BaseModel):
+class SyncFailedEvent(UniversalBaseModel):
error: typing.Optional[str] = None
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
@@ -15,20 +14,11 @@ class SyncFailedEvent(pydantic_v1.BaseModel):
sync_name: typing.Optional[str] = None
target_connection_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_running_event.py b/src/polytomic/types/sync_running_event.py
index 482b6ab..a79fc2b 100644
--- a/src/polytomic/types/sync_running_event.py
+++ b/src/polytomic/types/sync_running_event.py
@@ -1,33 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class SyncRunningEvent(pydantic_v1.BaseModel):
+class SyncRunningEvent(UniversalBaseModel):
execution_id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
sync_id: typing.Optional[str] = None
sync_name: typing.Optional[str] = None
target_connection_id: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_status_envelope.py b/src/polytomic/types/sync_status_envelope.py
index e968cb8..2e6ca0a 100644
--- a/src/polytomic/types/sync_status_envelope.py
+++ b/src/polytomic/types/sync_status_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .sync_status_response import SyncStatusResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class SyncStatusEnvelope(pydantic_v1.BaseModel):
+class SyncStatusEnvelope(UniversalBaseModel):
data: typing.Optional[SyncStatusResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/sync_status_response.py b/src/polytomic/types/sync_status_response.py
index 4120091..0b48c5d 100644
--- a/src/polytomic/types/sync_status_response.py
+++ b/src/polytomic/types/sync_status_response.py
@@ -1,32 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .get_execution_response_schema import GetExecutionResponseSchema
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class SyncStatusResponse(pydantic_v1.BaseModel):
+class SyncStatusResponse(UniversalBaseModel):
current_execution: typing.Optional[GetExecutionResponseSchema] = None
last_execution: typing.Optional[GetExecutionResponseSchema] = None
next_execution_time: typing.Optional[dt.datetime] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/target.py b/src/polytomic/types/target.py
index c64b867..d63d08c 100644
--- a/src/polytomic/types/target.py
+++ b/src/polytomic/types/target.py
@@ -1,34 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class Target(pydantic_v1.BaseModel):
- configuration: typing.Optional[typing.Dict[str, typing.Any]] = None
+class Target(UniversalBaseModel):
+ configuration: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
connection_id: str
filter_logic: typing.Optional[str] = None
new_name: typing.Optional[str] = None
object: str
- search_values: typing.Optional[typing.Dict[str, typing.Any]] = None
-
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
+ search_values: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/target_field.py b/src/polytomic/types/target_field.py
index 6fb9cdf..37f9cf1 100644
--- a/src/polytomic/types/target_field.py
+++ b/src/polytomic/types/target_field.py
@@ -1,14 +1,13 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .identity_function import IdentityFunction
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class TargetField(pydantic_v1.BaseModel):
+class TargetField(UniversalBaseModel):
association: typing.Optional[bool] = None
createable: typing.Optional[bool] = None
description: typing.Optional[str] = None
@@ -22,20 +21,11 @@ class TargetField(pydantic_v1.BaseModel):
type: typing.Optional[str] = None
updateable: typing.Optional[bool] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/target_object.py b/src/polytomic/types/target_object.py
index 7984fea..c0f677e 100644
--- a/src/polytomic/types/target_object.py
+++ b/src/polytomic/types/target_object.py
@@ -1,43 +1,33 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .supported_mode import SupportedMode
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class TargetObject(pydantic_v1.BaseModel):
- id: typing.Optional[str] = pydantic_v1.Field(default=None)
+class TargetObject(UniversalBaseModel):
+ id: typing.Optional[str] = pydantic.Field(default=None)
"""
The identifier of the target object.
"""
- modes: typing.Optional[typing.List[SupportedMode]] = pydantic_v1.Field(default=None)
+ modes: typing.Optional[typing.List[SupportedMode]] = pydantic.Field(default=None)
"""
The supported sync modes and their properties for the target object.
"""
- name: typing.Optional[str] = pydantic_v1.Field(default=None)
+ name: typing.Optional[str] = pydantic.Field(default=None)
"""
The name of the target object.
"""
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/target_response.py b/src/polytomic/types/target_response.py
index e671171..476b504 100644
--- a/src/polytomic/types/target_response.py
+++ b/src/polytomic/types/target_response.py
@@ -1,16 +1,16 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+from .target_field import TargetField
from .mode import Mode
from .sync_destination_properties import SyncDestinationProperties
-from .target_field import TargetField
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class TargetResponse(pydantic_v1.BaseModel):
+class TargetResponse(UniversalBaseModel):
fields: typing.Optional[typing.List[TargetField]] = None
id: typing.Optional[str] = None
modes: typing.Optional[typing.List[Mode]] = None
@@ -18,20 +18,11 @@ class TargetResponse(pydantic_v1.BaseModel):
properties: typing.Optional[SyncDestinationProperties] = None
refreshed_at: typing.Optional[dt.datetime] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/target_response_envelope.py b/src/polytomic/types/target_response_envelope.py
index 5ac5004..c5659f6 100644
--- a/src/polytomic/types/target_response_envelope.py
+++ b/src/polytomic/types/target_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .target_response import TargetResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class TargetResponseEnvelope(pydantic_v1.BaseModel):
+class TargetResponseEnvelope(UniversalBaseModel):
data: typing.Optional[TargetResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/types_type.py b/src/polytomic/types/types_type.py
index 80cee50..f6a5e97 100644
--- a/src/polytomic/types/types_type.py
+++ b/src/polytomic/types/types_type.py
@@ -2,4 +2,4 @@
import typing
-TypesType = typing.Any
+TypesType = typing.Optional[typing.Any]
diff --git a/src/polytomic/types/user.py b/src/polytomic/types/user.py
index cdca945..85f2544 100644
--- a/src/polytomic/types/user.py
+++ b/src/polytomic/types/user.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class User(pydantic_v1.BaseModel):
+class User(UniversalBaseModel):
email: typing.Optional[str] = None
id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
role: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/user_envelope.py b/src/polytomic/types/user_envelope.py
index fd03ee5..ace238e 100644
--- a/src/polytomic/types/user_envelope.py
+++ b/src/polytomic/types/user_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .user import User
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class UserEnvelope(pydantic_v1.BaseModel):
+class UserEnvelope(UniversalBaseModel):
data: typing.Optional[User] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_2_enricher_configuration.py b/src/polytomic/types/v_2_enricher_configuration.py
index cfa4286..1214385 100644
--- a/src/polytomic/types/v_2_enricher_configuration.py
+++ b/src/polytomic/types/v_2_enricher_configuration.py
@@ -2,4 +2,4 @@
import typing
-V2EnricherConfiguration = typing.Dict[str, typing.Any]
+V2EnricherConfiguration = typing.Dict[str, typing.Optional[typing.Any]]
diff --git a/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py b/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py
index 820ac8d..dc92c55 100644
--- a/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py
+++ b/src/polytomic/types/v_2_get_enrichment_input_fields_response_envelope.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class V2GetEnrichmentInputFieldsResponseEnvelope(pydantic_v1.BaseModel):
+class V2GetEnrichmentInputFieldsResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[typing.List[str]]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py b/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py
index 5858b2f..89313f5 100644
--- a/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py
+++ b/src/polytomic/types/v_2_ordered_map_string_github_com_invopop_jsonschema_schema.py
@@ -2,4 +2,4 @@
import typing
-V2OrderedMapStringGithubComInvopopJsonschemaSchema = typing.Dict[str, typing.Any]
+V2OrderedMapStringGithubComInvopopJsonschemaSchema = typing.Dict[str, typing.Optional[typing.Any]]
diff --git a/src/polytomic/types/v_2_sample_record.py b/src/polytomic/types/v_2_sample_record.py
index 15fcf2b..adffdae 100644
--- a/src/polytomic/types/v_2_sample_record.py
+++ b/src/polytomic/types/v_2_sample_record.py
@@ -2,4 +2,4 @@
import typing
-V2SampleRecord = typing.Dict[str, typing.Dict[str, typing.Any]]
+V2SampleRecord = typing.Dict[str, typing.Dict[str, typing.Optional[typing.Any]]]
diff --git a/src/polytomic/types/v_2_schema_configuration_fields_item.py b/src/polytomic/types/v_2_schema_configuration_fields_item.py
index c678f3f..6dd310f 100644
--- a/src/polytomic/types/v_2_schema_configuration_fields_item.py
+++ b/src/polytomic/types/v_2_schema_configuration_fields_item.py
@@ -1,7 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-
from .field_configuration import FieldConfiguration
V2SchemaConfigurationFieldsItem = typing.Union[str, FieldConfiguration]
diff --git a/src/polytomic/types/v_4_bulk_sync_execution_logs.py b/src/polytomic/types/v_4_bulk_sync_execution_logs.py
index 1a498cf..1823436 100644
--- a/src/polytomic/types/v_4_bulk_sync_execution_logs.py
+++ b/src/polytomic/types/v_4_bulk_sync_execution_logs.py
@@ -2,4 +2,4 @@
import typing
-V4BulkSyncExecutionLogs = typing.Dict[str, typing.Any]
+V4BulkSyncExecutionLogs = typing.Dict[str, typing.Optional[typing.Any]]
diff --git a/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py b/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py
index 697ad9b..dc1a325 100644
--- a/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py
+++ b/src/polytomic/types/v_4_bulk_sync_execution_logs_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .v_4_bulk_sync_execution_logs import V4BulkSyncExecutionLogs
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class V4BulkSyncExecutionLogsEnvelope(pydantic_v1.BaseModel):
+class V4BulkSyncExecutionLogsEnvelope(UniversalBaseModel):
data: typing.Optional[V4BulkSyncExecutionLogs] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_export_sync_logs_envelope.py b/src/polytomic/types/v_4_export_sync_logs_envelope.py
index 58d0a18..c4d35c0 100644
--- a/src/polytomic/types/v_4_export_sync_logs_envelope.py
+++ b/src/polytomic/types/v_4_export_sync_logs_envelope.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .job_response import JobResponse
from .v_4_export_sync_logs_response import V4ExportSyncLogsResponse
+from .job_response import JobResponse
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class V4ExportSyncLogsEnvelope(pydantic_v1.BaseModel):
+class V4ExportSyncLogsEnvelope(UniversalBaseModel):
data: typing.Optional[V4ExportSyncLogsResponse] = None
job: typing.Optional[JobResponse] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_export_sync_logs_response.py b/src/polytomic/types/v_4_export_sync_logs_response.py
index 707f2c0..340ce7c 100644
--- a/src/polytomic/types/v_4_export_sync_logs_response.py
+++ b/src/polytomic/types/v_4_export_sync_logs_response.py
@@ -1,29 +1,19 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-
-class V4ExportSyncLogsResponse(pydantic_v1.BaseModel):
+class V4ExportSyncLogsResponse(UniversalBaseModel):
url: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_query_results_envelope.py b/src/polytomic/types/v_4_query_results_envelope.py
index 58f852d..ddadfc2 100644
--- a/src/polytomic/types/v_4_query_results_envelope.py
+++ b/src/polytomic/types/v_4_query_results_envelope.py
@@ -1,32 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
-from .pagination import Pagination
from .v_4_run_query_result import V4RunQueryResult
+from .pagination import Pagination
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class V4QueryResultsEnvelope(pydantic_v1.BaseModel):
+class V4QueryResultsEnvelope(UniversalBaseModel):
data: typing.Optional[V4RunQueryResult] = None
links: typing.Optional[Pagination] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_run_query_envelope.py b/src/polytomic/types/v_4_run_query_envelope.py
index f9fdf56..9e16f20 100644
--- a/src/polytomic/types/v_4_run_query_envelope.py
+++ b/src/polytomic/types/v_4_run_query_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .v_4_run_query_result import V4RunQueryResult
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class V4RunQueryEnvelope(pydantic_v1.BaseModel):
+class V4RunQueryEnvelope(UniversalBaseModel):
data: typing.Optional[V4RunQueryResult] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_run_query_result.py b/src/polytomic/types/v_4_run_query_result.py
index 4ef2025..f33eaae 100644
--- a/src/polytomic/types/v_4_run_query_result.py
+++ b/src/polytomic/types/v_4_run_query_result.py
@@ -1,56 +1,46 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import pydantic
from .work_task_status import WorkTaskStatus
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
-class V4RunQueryResult(pydantic_v1.BaseModel):
- count: typing.Optional[int] = pydantic_v1.Field(default=None)
+class V4RunQueryResult(UniversalBaseModel):
+ count: typing.Optional[int] = pydantic.Field(default=None)
"""
The number of rows returned by the query. This will not be returned until the query completes.
"""
error: typing.Optional[str] = None
- expires: typing.Optional[str] = pydantic_v1.Field(default=None)
+ expires: typing.Optional[str] = pydantic.Field(default=None)
"""
The time at which the query will expire and be deleted. This will not be returned until the query completes.
"""
- fields: typing.Optional[typing.List[str]] = pydantic_v1.Field(default=None)
+ fields: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
"""
The names of the fields returned by the query. This will not be returned until the query completes.
"""
- id: typing.Optional[str] = pydantic_v1.Field(default=None)
+ id: typing.Optional[str] = pydantic.Field(default=None)
"""
The ID of the query task.
"""
- results: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic_v1.Field(default=None)
+ results: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field(default=None)
"""
The query results, returned as an array of objects.
"""
status: typing.Optional[WorkTaskStatus] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/v_4_target_objects_response_envelope.py b/src/polytomic/types/v_4_target_objects_response_envelope.py
index 75e7846..872f744 100644
--- a/src/polytomic/types/v_4_target_objects_response_envelope.py
+++ b/src/polytomic/types/v_4_target_objects_response_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .target_object import TargetObject
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class V4TargetObjectsResponseEnvelope(pydantic_v1.BaseModel):
+class V4TargetObjectsResponseEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[TargetObject]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/webhook.py b/src/polytomic/types/webhook.py
index 1b09a6c..2157a08 100644
--- a/src/polytomic/types/webhook.py
+++ b/src/polytomic/types/webhook.py
@@ -1,33 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
+import datetime as dt
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class Webhook(pydantic_v1.BaseModel):
+class Webhook(UniversalBaseModel):
created_at: typing.Optional[dt.datetime] = None
endpoint: typing.Optional[str] = None
id: typing.Optional[str] = None
organization_id: typing.Optional[str] = None
secret: typing.Optional[str] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/webhook_envelope.py b/src/polytomic/types/webhook_envelope.py
index 2b7458b..442d571 100644
--- a/src/polytomic/types/webhook_envelope.py
+++ b/src/polytomic/types/webhook_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .webhook import Webhook
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class WebhookEnvelope(pydantic_v1.BaseModel):
+class WebhookEnvelope(UniversalBaseModel):
data: typing.Optional[Webhook] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/types/webhook_list_envelope.py b/src/polytomic/types/webhook_list_envelope.py
index d442fbd..8e6c30d 100644
--- a/src/polytomic/types/webhook_list_envelope.py
+++ b/src/polytomic/types/webhook_list_envelope.py
@@ -1,30 +1,20 @@
# This file was auto-generated by Fern from our API Definition.
-import datetime as dt
+from ..core.pydantic_utilities import UniversalBaseModel
import typing
-
-from ..core.datetime_utils import serialize_datetime
-from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
from .webhook import Webhook
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
-class WebhookListEnvelope(pydantic_v1.BaseModel):
+class WebhookListEnvelope(UniversalBaseModel):
data: typing.Optional[typing.List[Webhook]] = None
- def json(self, **kwargs: typing.Any) -> str:
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- return super().json(**kwargs_with_defaults)
-
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
-
- return deep_union_pydantic_dicts(
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
- )
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic_v1.Extra.allow
- json_encoders = {dt.datetime: serialize_datetime}
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/polytomic/users/client.py b/src/polytomic/users/client.py
index 96c5c4b..aa0148e 100644
--- a/src/polytomic/users/client.py
+++ b/src/polytomic/users/client.py
@@ -1,22 +1,22 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
-from ..errors.unauthorized_error import UnauthorizedError
-from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.api_error import ApiError as types_api_error_ApiError
-from ..types.api_key_response_envelope import ApiKeyResponseEnvelope
from ..types.list_users_envelope import ListUsersEnvelope
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unauthorized_error import UnauthorizedError
from ..types.rest_err_response import RestErrResponse
+from ..errors.not_found_error import NotFoundError
+from ..types.api_error import ApiError as types_api_error_ApiError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
from ..types.user_envelope import UserEnvelope
+from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..errors.internal_server_error import InternalServerError
+from ..types.api_key_response_envelope import ApiKeyResponseEnvelope
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -46,7 +46,7 @@ def list(self, org_id: str, *, request_options: typing.Optional[RequestOptions]
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -57,16 +57,38 @@ def list(self, org_id: str, *, request_options: typing.Optional[RequestOptions]
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(org_id)}/users", method="GET", request_options=request_options
+ f"api/organizations/{jsonable_encoder(org_id)}/users",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListUsersEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListUsersEnvelope,
+ parse_obj_as(
+ type_=ListUsersEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -104,7 +126,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -118,22 +140,54 @@ def create(
_response = self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users",
method="POST",
- json={"email": email, "role": role},
+ json={
+ "email": email,
+ "role": role,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -162,7 +216,7 @@ def get(self, id: str, org_id: str, *, request_options: typing.Optional[RequestO
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -180,16 +234,42 @@ def get(self, id: str, org_id: str, *, request_options: typing.Optional[RequestO
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -230,7 +310,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -245,22 +325,54 @@ def update(
_response = self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}",
method="PUT",
- json={"email": email, "role": role},
+ json={
+ "email": email,
+ "role": role,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -289,7 +401,7 @@ def remove(self, id: str, org_id: str, *, request_options: typing.Optional[Reque
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -307,16 +419,42 @@ def remove(self, id: str, org_id: str, *, request_options: typing.Optional[Reque
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -354,7 +492,7 @@ def create_api_key(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -369,21 +507,49 @@ def create_api_key(
_response = self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}/keys",
method="POST",
- params={"force": force},
+ params={
+ "force": force,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ApiKeyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ApiKeyResponseEnvelope,
+ parse_obj_as(
+ type_=ApiKeyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -417,7 +583,7 @@ async def list(self, org_id: str, *, request_options: typing.Optional[RequestOpt
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -434,16 +600,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/organizations/{jsonable_encoder(org_id)}/users", method="GET", request_options=request_options
+ f"api/organizations/{jsonable_encoder(org_id)}/users",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ListUsersEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ListUsersEnvelope,
+ parse_obj_as(
+ type_=ListUsersEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -483,7 +671,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -503,22 +691,54 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users",
method="POST",
- json={"email": email, "role": role},
+ json={
+ "email": email,
+ "role": role,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -551,7 +771,7 @@ async def get(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -575,16 +795,42 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -627,7 +873,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -648,22 +894,54 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}",
method="PUT",
- json={"email": email, "role": role},
+ json={
+ "email": email,
+ "role": role,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -696,7 +974,7 @@ async def remove(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -720,16 +998,42 @@ async def main() -> None:
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(UserEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ UserEnvelope,
+ parse_obj_as(
+ type_=UserEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -769,7 +1073,7 @@ async def create_api_key(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -790,21 +1094,49 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/organizations/{jsonable_encoder(org_id)}/users/{jsonable_encoder(id)}/keys",
method="POST",
- params={"force": force},
+ params={
+ "force": force,
+ },
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(ApiKeyResponseEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ ApiKeyResponseEnvelope,
+ parse_obj_as(
+ type_=ApiKeyResponseEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/src/polytomic/version.py b/src/polytomic/version.py
index 97055ea..4028827 100644
--- a/src/polytomic/version.py
+++ b/src/polytomic/version.py
@@ -1,4 +1,3 @@
-
from importlib import metadata
__version__ = metadata.version("polytomic")
diff --git a/src/polytomic/webhooks/client.py b/src/polytomic/webhooks/client.py
index 3b30622..9bc9c73 100644
--- a/src/polytomic/webhooks/client.py
+++ b/src/polytomic/webhooks/client.py
@@ -1,21 +1,21 @@
# This file was auto-generated by Fern from our API Definition.
import typing
-from json.decoder import JSONDecodeError
-
-from ..core.api_error import ApiError as core_api_error_ApiError
-from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
-from ..core.jsonable_encoder import jsonable_encoder
-from ..core.pydantic_utilities import pydantic_v1
+from ..core.client_wrapper import SyncClientWrapper
from ..core.request_options import RequestOptions
-from ..errors.internal_server_error import InternalServerError
-from ..errors.not_found_error import NotFoundError
+from ..types.webhook_list_envelope import WebhookListEnvelope
+from ..core.pydantic_utilities import parse_obj_as
from ..errors.unauthorized_error import UnauthorizedError
-from ..errors.unprocessable_entity_error import UnprocessableEntityError
-from ..types.api_error import ApiError as types_api_error_ApiError
from ..types.rest_err_response import RestErrResponse
+from ..errors.internal_server_error import InternalServerError
+from ..types.api_error import ApiError as types_api_error_ApiError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError as core_api_error_ApiError
from ..types.webhook_envelope import WebhookEnvelope
-from ..types.webhook_list_envelope import WebhookListEnvelope
+from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..core.jsonable_encoder import jsonable_encoder
+from ..errors.not_found_error import NotFoundError
+from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -45,7 +45,7 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> We
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -54,16 +54,38 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> We
client.webhooks.list()
"""
_response = self._client_wrapper.httpx_client.request(
- "api/webhooks", method="GET", request_options=request_options
+ "api/webhooks",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookListEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookListEnvelope,
+ parse_obj_as(
+ type_=WebhookListEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -103,7 +125,7 @@ def create(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -117,22 +139,55 @@ def create(
_response = self._client_wrapper.httpx_client.request(
"api/webhooks",
method="POST",
- json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret},
+ json={
+ "endpoint": endpoint,
+ "organization_id": organization_id,
+ "secret": secret,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -161,7 +216,7 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -172,16 +227,38 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/webhooks/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/webhooks/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -224,7 +301,7 @@ def update(
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -239,22 +316,55 @@ def update(
_response = self._client_wrapper.httpx_client.request(
f"api/webhooks/{jsonable_encoder(id)}",
method="PUT",
- json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret},
+ json={
+ "endpoint": endpoint,
+ "organization_id": organization_id,
+ "secret": secret,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -276,7 +386,7 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
Examples
--------
- from polytomic.client import Polytomic
+ from polytomic import Polytomic
client = Polytomic(
version="YOUR_VERSION",
@@ -287,20 +397,42 @@ def remove(self, id: str, *, request_options: typing.Optional[RequestOptions] =
)
"""
_response = self._client_wrapper.httpx_client.request(
- f"api/webhooks/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/webhooks/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -334,7 +466,7 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -349,16 +481,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- "api/webhooks", method="GET", request_options=request_options
+ "api/webhooks",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookListEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookListEnvelope,
+ parse_obj_as(
+ type_=WebhookListEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 500:
raise InternalServerError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -400,7 +554,7 @@ async def create(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -420,22 +574,55 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
"api/webhooks",
method="POST",
- json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret},
+ json={
+ "endpoint": endpoint,
+ "organization_id": organization_id,
+ "secret": secret,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -466,7 +653,7 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -483,16 +670,38 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/webhooks/{jsonable_encoder(id)}", method="GET", request_options=request_options
+ f"api/webhooks/{jsonable_encoder(id)}",
+ method="GET",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -537,7 +746,7 @@ async def update(
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -558,22 +767,55 @@ async def main() -> None:
_response = await self._client_wrapper.httpx_client.request(
f"api/webhooks/{jsonable_encoder(id)}",
method="PUT",
- json={"endpoint": endpoint, "organization_id": organization_id, "secret": secret},
+ json={
+ "endpoint": endpoint,
+ "organization_id": organization_id,
+ "secret": secret,
+ },
+ headers={
+ "content-type": "application/json",
+ },
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
- return pydantic_v1.parse_obj_as(WebhookEnvelope, _response.json()) # type: ignore
+ return typing.cast(
+ WebhookEnvelope,
+ parse_obj_as(
+ type_=WebhookEnvelope, # type: ignore
+ object_=_response.json(),
+ ),
+ )
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 422:
raise UnprocessableEntityError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
@@ -597,7 +839,7 @@ async def remove(self, id: str, *, request_options: typing.Optional[RequestOptio
--------
import asyncio
- from polytomic.client import AsyncPolytomic
+ from polytomic import AsyncPolytomic
client = AsyncPolytomic(
version="YOUR_VERSION",
@@ -614,20 +856,42 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
- f"api/webhooks/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
+ f"api/webhooks/{jsonable_encoder(id)}",
+ method="DELETE",
+ request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return
if _response.status_code == 401:
- raise UnauthorizedError(pydantic_v1.parse_obj_as(RestErrResponse, _response.json())) # type: ignore
+ raise UnauthorizedError(
+ typing.cast(
+ RestErrResponse,
+ parse_obj_as(
+ type_=RestErrResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
if _response.status_code == 404:
raise NotFoundError(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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(
- pydantic_v1.parse_obj_as(types_api_error_ApiError, _response.json()) # type: ignore
+ 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:
diff --git a/tests/custom/test_client.py b/tests/custom/test_client.py
index 60a58e6..73f811f 100644
--- a/tests/custom/test_client.py
+++ b/tests/custom/test_client.py
@@ -1,5 +1,6 @@
import pytest
+
# Get started with writing tests with pytest at https://docs.pytest.org
@pytest.mark.skip(reason="Unimplemented")
def test_client() -> None:
diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py
new file mode 100644
index 0000000..f3ea265
--- /dev/null
+++ b/tests/utils/__init__.py
@@ -0,0 +1,2 @@
+# This file was auto-generated by Fern from our API Definition.
+
diff --git a/tests/utils/assets/models/__init__.py b/tests/utils/assets/models/__init__.py
new file mode 100644
index 0000000..3a1c852
--- /dev/null
+++ b/tests/utils/assets/models/__init__.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+from .circle import CircleParams
+from .object_with_defaults import ObjectWithDefaultsParams
+from .object_with_optional_field import ObjectWithOptionalFieldParams
+from .shape import ShapeParams, Shape_CircleParams, Shape_SquareParams
+from .square import SquareParams
+from .undiscriminated_shape import UndiscriminatedShapeParams
+
+__all__ = [
+ "CircleParams",
+ "ObjectWithDefaultsParams",
+ "ObjectWithOptionalFieldParams",
+ "ShapeParams",
+ "Shape_CircleParams",
+ "Shape_SquareParams",
+ "SquareParams",
+ "UndiscriminatedShapeParams",
+]
diff --git a/tests/utils/assets/models/circle.py b/tests/utils/assets/models/circle.py
new file mode 100644
index 0000000..201874e
--- /dev/null
+++ b/tests/utils/assets/models/circle.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+import typing_extensions
+from polytomic.core.serialization import FieldMetadata
+
+
+class CircleParams(typing_extensions.TypedDict):
+ radius_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="radiusMeasurement")]
diff --git a/tests/utils/assets/models/color.py b/tests/utils/assets/models/color.py
new file mode 100644
index 0000000..2aa2c4c
--- /dev/null
+++ b/tests/utils/assets/models/color.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+Color = typing.Union[typing.Literal["red", "blue"], typing.Any]
diff --git a/tests/utils/assets/models/object_with_defaults.py b/tests/utils/assets/models/object_with_defaults.py
new file mode 100644
index 0000000..ef14f7b
--- /dev/null
+++ b/tests/utils/assets/models/object_with_defaults.py
@@ -0,0 +1,16 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+import typing_extensions
+
+
+class ObjectWithDefaultsParams(typing_extensions.TypedDict):
+ """
+ Defines properties with default values and validation rules.
+ """
+
+ decimal: typing_extensions.NotRequired[float]
+ string: typing_extensions.NotRequired[str]
+ required_string: str
diff --git a/tests/utils/assets/models/object_with_optional_field.py b/tests/utils/assets/models/object_with_optional_field.py
new file mode 100644
index 0000000..c683f20
--- /dev/null
+++ b/tests/utils/assets/models/object_with_optional_field.py
@@ -0,0 +1,34 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+import typing
+import typing_extensions
+from polytomic.core.serialization import FieldMetadata
+import datetime as dt
+import uuid
+from .color import Color
+from .shape import ShapeParams
+from .undiscriminated_shape import UndiscriminatedShapeParams
+
+
+class ObjectWithOptionalFieldParams(typing_extensions.TypedDict):
+ literal: typing.Literal["lit_one"]
+ string: typing_extensions.NotRequired[str]
+ integer: typing_extensions.NotRequired[int]
+ long_: typing_extensions.NotRequired[typing_extensions.Annotated[int, FieldMetadata(alias="long")]]
+ double: typing_extensions.NotRequired[float]
+ bool_: typing_extensions.NotRequired[typing_extensions.Annotated[bool, FieldMetadata(alias="bool")]]
+ datetime: typing_extensions.NotRequired[dt.datetime]
+ date: typing_extensions.NotRequired[dt.date]
+ uuid_: typing_extensions.NotRequired[typing_extensions.Annotated[uuid.UUID, FieldMetadata(alias="uuid")]]
+ base_64: typing_extensions.NotRequired[typing_extensions.Annotated[str, FieldMetadata(alias="base64")]]
+ list_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Sequence[str], FieldMetadata(alias="list")]]
+ set_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Set[str], FieldMetadata(alias="set")]]
+ map_: typing_extensions.NotRequired[typing_extensions.Annotated[typing.Dict[int, str], FieldMetadata(alias="map")]]
+ enum: typing_extensions.NotRequired[Color]
+ union: typing_extensions.NotRequired[ShapeParams]
+ second_union: typing_extensions.NotRequired[ShapeParams]
+ undiscriminated_union: typing_extensions.NotRequired[UndiscriminatedShapeParams]
+ any: typing.Optional[typing.Any]
diff --git a/tests/utils/assets/models/shape.py b/tests/utils/assets/models/shape.py
new file mode 100644
index 0000000..cae0a16
--- /dev/null
+++ b/tests/utils/assets/models/shape.py
@@ -0,0 +1,26 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+import typing_extensions
+import typing_extensions
+import typing
+from polytomic.core.serialization import FieldMetadata
+
+
+class Base(typing_extensions.TypedDict):
+ id: str
+
+
+class Shape_CircleParams(Base):
+ shape_type: typing_extensions.Annotated[typing.Literal["circle"], FieldMetadata(alias="shapeType")]
+ radius_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="radiusMeasurement")]
+
+
+class Shape_SquareParams(Base):
+ shape_type: typing_extensions.Annotated[typing.Literal["square"], FieldMetadata(alias="shapeType")]
+ length_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="lengthMeasurement")]
+
+
+ShapeParams = typing.Union[Shape_CircleParams, Shape_SquareParams]
diff --git a/tests/utils/assets/models/square.py b/tests/utils/assets/models/square.py
new file mode 100644
index 0000000..6f4ce73
--- /dev/null
+++ b/tests/utils/assets/models/square.py
@@ -0,0 +1,11 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing_extensions
+import typing_extensions
+from polytomic.core.serialization import FieldMetadata
+
+
+class SquareParams(typing_extensions.TypedDict):
+ length_measurement: typing_extensions.Annotated[float, FieldMetadata(alias="lengthMeasurement")]
diff --git a/tests/utils/assets/models/undiscriminated_shape.py b/tests/utils/assets/models/undiscriminated_shape.py
new file mode 100644
index 0000000..68876a2
--- /dev/null
+++ b/tests/utils/assets/models/undiscriminated_shape.py
@@ -0,0 +1,9 @@
+# This file was auto-generated by Fern from our API Definition.
+
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .circle import CircleParams
+from .square import SquareParams
+
+UndiscriminatedShapeParams = typing.Union[CircleParams, SquareParams]
diff --git a/tests/utils/test_http_client.py b/tests/utils/test_http_client.py
index 5391bc8..5726bfa 100644
--- a/tests/utils/test_http_client.py
+++ b/tests/utils/test_http_client.py
@@ -45,3 +45,17 @@ def test_get_none_request_body() -> None:
assert json_body_extras == {"see you": "later"}
assert data_body_extras is None
+
+
+def test_get_empty_json_request_body() -> None:
+ unrelated_request_options: RequestOptions = {"max_retries": 3}
+ json_body, data_body = get_request_body(json=None, data=None, request_options=unrelated_request_options, omit=None)
+ assert json_body is None
+ assert data_body is None
+
+ json_body_extras, data_body_extras = get_request_body(
+ json={}, data=None, request_options=unrelated_request_options, omit=None
+ )
+
+ assert json_body_extras is None
+ assert data_body_extras is None
diff --git a/tests/utils/test_query_encoding.py b/tests/utils/test_query_encoding.py
index de42a0b..29e922f 100644
--- a/tests/utils/test_query_encoding.py
+++ b/tests/utils/test_query_encoding.py
@@ -1,13 +1,37 @@
# This file was auto-generated by Fern from our API Definition.
+
from polytomic.core.query_encoder import encode_query
-def test_query_encoding() -> None:
- assert encode_query({"hello world": "hello world"}) == {"hello world": "hello world"}
- assert encode_query({"hello_world": {"hello": "world"}}) == {"hello_world[hello]": "world"}
- assert encode_query({"hello_world": {"hello": {"world": "today"}, "test": "this"}, "hi": "there"}) == {
- "hello_world[hello][world]": "today",
- "hello_world[test]": "this",
- "hi": "there",
- }
+def test_query_encoding_deep_objects() -> None:
+ assert encode_query({"hello world": "hello world"}) == [("hello world", "hello world")]
+ assert encode_query({"hello_world": {"hello": "world"}}) == [("hello_world[hello]", "world")]
+ assert encode_query({"hello_world": {"hello": {"world": "today"}, "test": "this"}, "hi": "there"}) == [
+ ("hello_world[hello][world]", "today"),
+ ("hello_world[test]", "this"),
+ ("hi", "there"),
+ ]
+
+
+def test_query_encoding_deep_object_arrays() -> None:
+ assert encode_query({"objects": [{"key": "hello", "value": "world"}, {"key": "foo", "value": "bar"}]}) == [
+ ("objects[key]", "hello"),
+ ("objects[value]", "world"),
+ ("objects[key]", "foo"),
+ ("objects[value]", "bar"),
+ ]
+ assert encode_query(
+ {"users": [{"name": "string", "tags": ["string"]}, {"name": "string2", "tags": ["string2", "string3"]}]}
+ ) == [
+ ("users[name]", "string"),
+ ("users[tags]", "string"),
+ ("users[name]", "string2"),
+ ("users[tags]", "string2"),
+ ("users[tags]", "string3"),
+ ]
+
+
+def test_encode_query_with_none() -> None:
+ encoded = encode_query(None)
+ assert encoded == None
diff --git a/tests/utils/test_serialization.py b/tests/utils/test_serialization.py
new file mode 100644
index 0000000..8432841
--- /dev/null
+++ b/tests/utils/test_serialization.py
@@ -0,0 +1,72 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from typing import List, Any
+
+from polytomic.core.serialization import convert_and_respect_annotation_metadata
+from .assets.models import ShapeParams, ObjectWithOptionalFieldParams
+
+
+UNION_TEST: ShapeParams = {"radius_measurement": 1.0, "shape_type": "circle", "id": "1"}
+UNION_TEST_CONVERTED = {"shapeType": "circle", "radiusMeasurement": 1.0, "id": "1"}
+
+
+def test_convert_and_respect_annotation_metadata() -> None:
+ data: ObjectWithOptionalFieldParams = {
+ "string": "string",
+ "long_": 12345,
+ "bool_": True,
+ "literal": "lit_one",
+ "any": "any",
+ }
+ converted = convert_and_respect_annotation_metadata(
+ object_=data, annotation=ObjectWithOptionalFieldParams, direction="write"
+ )
+ assert converted == {"string": "string", "long": 12345, "bool": True, "literal": "lit_one", "any": "any"}
+
+
+def test_convert_and_respect_annotation_metadata_in_list() -> None:
+ data: List[ObjectWithOptionalFieldParams] = [
+ {"string": "string", "long_": 12345, "bool_": True, "literal": "lit_one", "any": "any"},
+ {"string": "another string", "long_": 67890, "list_": [], "literal": "lit_one", "any": "any"},
+ ]
+ converted = convert_and_respect_annotation_metadata(
+ object_=data, annotation=List[ObjectWithOptionalFieldParams], direction="write"
+ )
+
+ assert converted == [
+ {"string": "string", "long": 12345, "bool": True, "literal": "lit_one", "any": "any"},
+ {"string": "another string", "long": 67890, "list": [], "literal": "lit_one", "any": "any"},
+ ]
+
+
+def test_convert_and_respect_annotation_metadata_in_nested_object() -> None:
+ data: ObjectWithOptionalFieldParams = {
+ "string": "string",
+ "long_": 12345,
+ "union": UNION_TEST,
+ "literal": "lit_one",
+ "any": "any",
+ }
+ converted = convert_and_respect_annotation_metadata(
+ object_=data, annotation=ObjectWithOptionalFieldParams, direction="write"
+ )
+
+ assert converted == {
+ "string": "string",
+ "long": 12345,
+ "union": UNION_TEST_CONVERTED,
+ "literal": "lit_one",
+ "any": "any",
+ }
+
+
+def test_convert_and_respect_annotation_metadata_in_union() -> None:
+ converted = convert_and_respect_annotation_metadata(object_=UNION_TEST, annotation=ShapeParams, direction="write")
+
+ assert converted == UNION_TEST_CONVERTED
+
+
+def test_convert_and_respect_annotation_metadata_with_empty_object() -> None:
+ data: Any = {}
+ converted = convert_and_respect_annotation_metadata(object_=data, annotation=ShapeParams, direction="write")
+ assert converted == data