mergepythonclient 4.0.0__py3-none-any.whl → 4.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. merge/core/client_wrapper.py +2 -2
  2. merge/resources/accounting/__init__.py +6 -0
  3. merge/resources/accounting/types/__init__.py +6 -0
  4. merge/resources/accounting/types/sync_status.py +7 -0
  5. merge/resources/accounting/types/sync_status_reason_enum.py +20 -0
  6. merge/resources/accounting/types/sync_status_sync_status_reason.py +7 -0
  7. merge/resources/ats/__init__.py +6 -0
  8. merge/resources/ats/types/__init__.py +6 -0
  9. merge/resources/ats/types/sync_status.py +7 -0
  10. merge/resources/ats/types/sync_status_reason_enum.py +20 -0
  11. merge/resources/ats/types/sync_status_sync_status_reason.py +7 -0
  12. merge/resources/calendar/__init__.py +6 -0
  13. merge/resources/calendar/types/__init__.py +6 -0
  14. merge/resources/calendar/types/sync_status.py +7 -0
  15. merge/resources/calendar/types/sync_status_reason_enum.py +20 -0
  16. merge/resources/calendar/types/sync_status_sync_status_reason.py +7 -0
  17. merge/resources/chat/__init__.py +6 -0
  18. merge/resources/chat/types/__init__.py +6 -0
  19. merge/resources/chat/types/sync_status.py +7 -0
  20. merge/resources/chat/types/sync_status_reason_enum.py +20 -0
  21. merge/resources/chat/types/sync_status_sync_status_reason.py +7 -0
  22. merge/resources/crm/__init__.py +6 -0
  23. merge/resources/crm/types/__init__.py +6 -0
  24. merge/resources/crm/types/sync_status.py +7 -0
  25. merge/resources/crm/types/sync_status_reason_enum.py +20 -0
  26. merge/resources/crm/types/sync_status_sync_status_reason.py +7 -0
  27. merge/resources/email/__init__.py +6 -0
  28. merge/resources/email/types/__init__.py +6 -0
  29. merge/resources/email/types/sync_status.py +7 -0
  30. merge/resources/email/types/sync_status_reason_enum.py +20 -0
  31. merge/resources/email/types/sync_status_sync_status_reason.py +7 -0
  32. merge/resources/filestorage/__init__.py +6 -0
  33. merge/resources/filestorage/types/__init__.py +6 -0
  34. merge/resources/filestorage/types/sync_status.py +7 -0
  35. merge/resources/filestorage/types/sync_status_reason_enum.py +20 -0
  36. merge/resources/filestorage/types/sync_status_sync_status_reason.py +7 -0
  37. merge/resources/hris/__init__.py +6 -0
  38. merge/resources/hris/types/__init__.py +6 -0
  39. merge/resources/hris/types/sync_status.py +7 -0
  40. merge/resources/hris/types/sync_status_reason_enum.py +20 -0
  41. merge/resources/hris/types/sync_status_sync_status_reason.py +7 -0
  42. merge/resources/knowledgebase/__init__.py +6 -0
  43. merge/resources/knowledgebase/types/__init__.py +6 -0
  44. merge/resources/knowledgebase/types/sync_status.py +7 -0
  45. merge/resources/knowledgebase/types/sync_status_reason_enum.py +20 -0
  46. merge/resources/knowledgebase/types/sync_status_sync_status_reason.py +7 -0
  47. merge/resources/ticketing/__init__.py +6 -0
  48. merge/resources/ticketing/types/__init__.py +6 -0
  49. merge/resources/ticketing/types/sync_status.py +7 -0
  50. merge/resources/ticketing/types/sync_status_reason_enum.py +20 -0
  51. merge/resources/ticketing/types/sync_status_sync_status_reason.py +7 -0
  52. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.1.0.dist-info}/METADATA +1 -1
  53. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.1.0.dist-info}/RECORD +55 -35
  54. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.1.0.dist-info}/LICENSE.md +0 -0
  55. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.1.0.dist-info}/WHEEL +0 -0
@@ -29,12 +29,12 @@ class BaseClientWrapper:
29
29
  import platform
30
30
 
31
31
  headers: typing.Dict[str, str] = {
32
- "User-Agent": "MergePythonClient/4.0.0",
32
+ "User-Agent": "MergePythonClient/4.1.0",
33
33
  "X-Fern-Language": "Python",
34
34
  "X-Fern-Runtime": f"python/{platform.python_version()}",
35
35
  "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
36
36
  "X-Fern-SDK-Name": "MergePythonClient",
37
- "X-Fern-SDK-Version": "4.0.0",
37
+ "X-Fern-SDK-Version": "4.1.0",
38
38
  **(self.get_custom_headers() or {}),
39
39
  }
40
40
  if self._account_token is not None:
@@ -577,7 +577,9 @@ if typing.TYPE_CHECKING:
577
577
  StatusFd5Enum,
578
578
  SyncStatus,
579
579
  SyncStatusLastSyncResult,
580
+ SyncStatusReasonEnum,
580
581
  SyncStatusStatus,
582
+ SyncStatusSyncStatusReason,
581
583
  TaxComponent,
582
584
  TaxComponentComponentType,
583
585
  TaxRate,
@@ -1356,7 +1358,9 @@ _dynamic_imports: typing.Dict[str, str] = {
1356
1358
  "StatusFd5Enum": ".types",
1357
1359
  "SyncStatus": ".types",
1358
1360
  "SyncStatusLastSyncResult": ".types",
1361
+ "SyncStatusReasonEnum": ".types",
1359
1362
  "SyncStatusStatus": ".types",
1363
+ "SyncStatusSyncStatusReason": ".types",
1360
1364
  "TaxComponent": ".types",
1361
1365
  "TaxComponentComponentType": ".types",
1362
1366
  "TaxRate": ".types",
@@ -2109,7 +2113,9 @@ __all__ = [
2109
2113
  "StatusFd5Enum",
2110
2114
  "SyncStatus",
2111
2115
  "SyncStatusLastSyncResult",
2116
+ "SyncStatusReasonEnum",
2112
2117
  "SyncStatusStatus",
2118
+ "SyncStatusSyncStatusReason",
2113
2119
  "TaxComponent",
2114
2120
  "TaxComponentComponentType",
2115
2121
  "TaxRate",
@@ -586,7 +586,9 @@ if typing.TYPE_CHECKING:
586
586
  from .status_fd_5_enum import StatusFd5Enum
587
587
  from .sync_status import SyncStatus
588
588
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
589
+ from .sync_status_reason_enum import SyncStatusReasonEnum
589
590
  from .sync_status_status import SyncStatusStatus
591
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
590
592
  from .tax_component import TaxComponent
591
593
  from .tax_component_component_type import TaxComponentComponentType
592
594
  from .tax_rate import TaxRate
@@ -1215,7 +1217,9 @@ _dynamic_imports: typing.Dict[str, str] = {
1215
1217
  "StatusFd5Enum": ".status_fd_5_enum",
1216
1218
  "SyncStatus": ".sync_status",
1217
1219
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
1220
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
1218
1221
  "SyncStatusStatus": ".sync_status_status",
1222
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
1219
1223
  "TaxComponent": ".tax_component",
1220
1224
  "TaxComponentComponentType": ".tax_component_component_type",
1221
1225
  "TaxRate": ".tax_rate",
@@ -1866,7 +1870,9 @@ __all__ = [
1866
1870
  "StatusFd5Enum",
1867
1871
  "SyncStatus",
1868
1872
  "SyncStatusLastSyncResult",
1873
+ "SyncStatusReasonEnum",
1869
1874
  "SyncStatusStatus",
1875
+ "SyncStatusSyncStatusReason",
1870
1876
  "TaxComponent",
1871
1877
  "TaxComponentComponentType",
1872
1878
  "TaxRate",
@@ -9,6 +9,7 @@ from ....core.unchecked_base_model import UncheckedBaseModel
9
9
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
10
10
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
11
11
  from .sync_status_status import SyncStatusStatus
12
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
12
13
 
13
14
 
14
15
  class SyncStatus(UncheckedBaseModel):
@@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
27
28
  next_sync_start: typing.Optional[dt.datetime] = None
28
29
  last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
29
30
  last_sync_finished: typing.Optional[dt.datetime] = None
31
+ data_fresh_as_of: typing.Optional[dt.datetime] = None
30
32
  status: SyncStatusStatus
33
+ sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
34
+ """
35
+ The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
36
+ """
37
+
31
38
  is_initial_sync: bool
32
39
  selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None
33
40
 
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core import enum
6
+
7
+ T_Result = typing.TypeVar("T_Result")
8
+
9
+
10
+ class SyncStatusReasonEnum(enum.StrEnum):
11
+ RATE_LIMITED = "RATE_LIMITED"
12
+ WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"
13
+
14
+ def visit(
15
+ self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
16
+ ) -> T_Result:
17
+ if self is SyncStatusReasonEnum.RATE_LIMITED:
18
+ return rate_limited()
19
+ if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
20
+ return waiting_on_other_models()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .sync_status_reason_enum import SyncStatusReasonEnum
6
+
7
+ SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
@@ -219,7 +219,9 @@ if typing.TYPE_CHECKING:
219
219
  StatusFd5Enum,
220
220
  SyncStatus,
221
221
  SyncStatusLastSyncResult,
222
+ SyncStatusReasonEnum,
222
223
  SyncStatusStatus,
224
+ SyncStatusSyncStatusReason,
223
225
  Tag,
224
226
  Url,
225
227
  UrlRequest,
@@ -536,7 +538,9 @@ _dynamic_imports: typing.Dict[str, str] = {
536
538
  "StatusFd5Enum": ".types",
537
539
  "SyncStatus": ".types",
538
540
  "SyncStatusLastSyncResult": ".types",
541
+ "SyncStatusReasonEnum": ".types",
539
542
  "SyncStatusStatus": ".types",
543
+ "SyncStatusSyncStatusReason": ".types",
540
544
  "Tag": ".types",
541
545
  "Url": ".types",
542
546
  "UrlRequest": ".types",
@@ -846,7 +850,9 @@ __all__ = [
846
850
  "StatusFd5Enum",
847
851
  "SyncStatus",
848
852
  "SyncStatusLastSyncResult",
853
+ "SyncStatusReasonEnum",
849
854
  "SyncStatusStatus",
855
+ "SyncStatusSyncStatusReason",
850
856
  "Tag",
851
857
  "Url",
852
858
  "UrlRequest",
@@ -220,7 +220,9 @@ if typing.TYPE_CHECKING:
220
220
  from .status_fd_5_enum import StatusFd5Enum
221
221
  from .sync_status import SyncStatus
222
222
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
223
+ from .sync_status_reason_enum import SyncStatusReasonEnum
223
224
  from .sync_status_status import SyncStatusStatus
225
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
224
226
  from .tag import Tag
225
227
  from .url import Url
226
228
  from .url_request import UrlRequest
@@ -445,7 +447,9 @@ _dynamic_imports: typing.Dict[str, str] = {
445
447
  "StatusFd5Enum": ".status_fd_5_enum",
446
448
  "SyncStatus": ".sync_status",
447
449
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
450
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
448
451
  "SyncStatusStatus": ".sync_status_status",
452
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
449
453
  "Tag": ".tag",
450
454
  "Url": ".url",
451
455
  "UrlRequest": ".url_request",
@@ -694,7 +698,9 @@ __all__ = [
694
698
  "StatusFd5Enum",
695
699
  "SyncStatus",
696
700
  "SyncStatusLastSyncResult",
701
+ "SyncStatusReasonEnum",
697
702
  "SyncStatusStatus",
703
+ "SyncStatusSyncStatusReason",
698
704
  "Tag",
699
705
  "Url",
700
706
  "UrlRequest",
@@ -9,6 +9,7 @@ from ....core.unchecked_base_model import UncheckedBaseModel
9
9
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
10
10
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
11
11
  from .sync_status_status import SyncStatusStatus
12
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
12
13
 
13
14
 
14
15
  class SyncStatus(UncheckedBaseModel):
@@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
27
28
  next_sync_start: typing.Optional[dt.datetime] = None
28
29
  last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
29
30
  last_sync_finished: typing.Optional[dt.datetime] = None
31
+ data_fresh_as_of: typing.Optional[dt.datetime] = None
30
32
  status: SyncStatusStatus
33
+ sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
34
+ """
35
+ The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
36
+ """
37
+
31
38
  is_initial_sync: bool
32
39
  selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None
33
40
 
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core import enum
6
+
7
+ T_Result = typing.TypeVar("T_Result")
8
+
9
+
10
+ class SyncStatusReasonEnum(enum.StrEnum):
11
+ RATE_LIMITED = "RATE_LIMITED"
12
+ WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"
13
+
14
+ def visit(
15
+ self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
16
+ ) -> T_Result:
17
+ if self is SyncStatusReasonEnum.RATE_LIMITED:
18
+ return rate_limited()
19
+ if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
20
+ return waiting_on_other_models()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .sync_status_reason_enum import SyncStatusReasonEnum
6
+
7
+ SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
@@ -114,7 +114,9 @@ if typing.TYPE_CHECKING:
114
114
  StatusFd5Enum,
115
115
  SyncStatus,
116
116
  SyncStatusLastSyncResult,
117
+ SyncStatusReasonEnum,
117
118
  SyncStatusStatus,
119
+ SyncStatusSyncStatusReason,
118
120
  User,
119
121
  UserFieldMappings,
120
122
  ValidationProblemSource,
@@ -275,7 +277,9 @@ _dynamic_imports: typing.Dict[str, str] = {
275
277
  "StatusFd5Enum": ".types",
276
278
  "SyncStatus": ".types",
277
279
  "SyncStatusLastSyncResult": ".types",
280
+ "SyncStatusReasonEnum": ".types",
278
281
  "SyncStatusStatus": ".types",
282
+ "SyncStatusSyncStatusReason": ".types",
279
283
  "User": ".types",
280
284
  "UserFieldMappings": ".types",
281
285
  "ValidationProblemSource": ".types",
@@ -446,7 +450,9 @@ __all__ = [
446
450
  "StatusFd5Enum",
447
451
  "SyncStatus",
448
452
  "SyncStatusLastSyncResult",
453
+ "SyncStatusReasonEnum",
449
454
  "SyncStatusStatus",
455
+ "SyncStatusSyncStatusReason",
450
456
  "User",
451
457
  "UserFieldMappings",
452
458
  "ValidationProblemSource",
@@ -115,7 +115,9 @@ if typing.TYPE_CHECKING:
115
115
  from .status_fd_5_enum import StatusFd5Enum
116
116
  from .sync_status import SyncStatus
117
117
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
118
+ from .sync_status_reason_enum import SyncStatusReasonEnum
118
119
  from .sync_status_status import SyncStatusStatus
120
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
119
121
  from .user import User
120
122
  from .user_field_mappings import UserFieldMappings
121
123
  from .validation_problem_source import ValidationProblemSource
@@ -229,7 +231,9 @@ _dynamic_imports: typing.Dict[str, str] = {
229
231
  "StatusFd5Enum": ".status_fd_5_enum",
230
232
  "SyncStatus": ".sync_status",
231
233
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
234
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
232
235
  "SyncStatusStatus": ".sync_status_status",
236
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
233
237
  "User": ".user",
234
238
  "UserFieldMappings": ".user_field_mappings",
235
239
  "ValidationProblemSource": ".validation_problem_source",
@@ -367,7 +371,9 @@ __all__ = [
367
371
  "StatusFd5Enum",
368
372
  "SyncStatus",
369
373
  "SyncStatusLastSyncResult",
374
+ "SyncStatusReasonEnum",
370
375
  "SyncStatusStatus",
376
+ "SyncStatusSyncStatusReason",
371
377
  "User",
372
378
  "UserFieldMappings",
373
379
  "ValidationProblemSource",
@@ -9,6 +9,7 @@ from ....core.unchecked_base_model import UncheckedBaseModel
9
9
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
10
10
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
11
11
  from .sync_status_status import SyncStatusStatus
12
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
12
13
 
13
14
 
14
15
  class SyncStatus(UncheckedBaseModel):
@@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
27
28
  next_sync_start: typing.Optional[dt.datetime] = None
28
29
  last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
29
30
  last_sync_finished: typing.Optional[dt.datetime] = None
31
+ data_fresh_as_of: typing.Optional[dt.datetime] = None
30
32
  status: SyncStatusStatus
33
+ sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
34
+ """
35
+ The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
36
+ """
37
+
31
38
  is_initial_sync: bool
32
39
  selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None
33
40
 
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core import enum
6
+
7
+ T_Result = typing.TypeVar("T_Result")
8
+
9
+
10
+ class SyncStatusReasonEnum(enum.StrEnum):
11
+ RATE_LIMITED = "RATE_LIMITED"
12
+ WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"
13
+
14
+ def visit(
15
+ self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
16
+ ) -> T_Result:
17
+ if self is SyncStatusReasonEnum.RATE_LIMITED:
18
+ return rate_limited()
19
+ if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
20
+ return waiting_on_other_models()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .sync_status_reason_enum import SyncStatusReasonEnum
6
+
7
+ SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
@@ -98,7 +98,9 @@ if typing.TYPE_CHECKING:
98
98
  StatusFd5Enum,
99
99
  SyncStatus,
100
100
  SyncStatusLastSyncResult,
101
+ SyncStatusReasonEnum,
101
102
  SyncStatusStatus,
103
+ SyncStatusSyncStatusReason,
102
104
  TypeEnum,
103
105
  User,
104
106
  UserFieldMappings,
@@ -238,7 +240,9 @@ _dynamic_imports: typing.Dict[str, str] = {
238
240
  "StatusFd5Enum": ".types",
239
241
  "SyncStatus": ".types",
240
242
  "SyncStatusLastSyncResult": ".types",
243
+ "SyncStatusReasonEnum": ".types",
241
244
  "SyncStatusStatus": ".types",
245
+ "SyncStatusSyncStatusReason": ".types",
242
246
  "TypeEnum": ".types",
243
247
  "User": ".types",
244
248
  "UserFieldMappings": ".types",
@@ -391,7 +395,9 @@ __all__ = [
391
395
  "StatusFd5Enum",
392
396
  "SyncStatus",
393
397
  "SyncStatusLastSyncResult",
398
+ "SyncStatusReasonEnum",
394
399
  "SyncStatusStatus",
400
+ "SyncStatusSyncStatusReason",
395
401
  "TypeEnum",
396
402
  "User",
397
403
  "UserFieldMappings",
@@ -99,7 +99,9 @@ if typing.TYPE_CHECKING:
99
99
  from .status_fd_5_enum import StatusFd5Enum
100
100
  from .sync_status import SyncStatus
101
101
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
102
+ from .sync_status_reason_enum import SyncStatusReasonEnum
102
103
  from .sync_status_status import SyncStatusStatus
104
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
103
105
  from .type_enum import TypeEnum
104
106
  from .user import User
105
107
  from .user_field_mappings import UserFieldMappings
@@ -199,7 +201,9 @@ _dynamic_imports: typing.Dict[str, str] = {
199
201
  "StatusFd5Enum": ".status_fd_5_enum",
200
202
  "SyncStatus": ".sync_status",
201
203
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
204
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
202
205
  "SyncStatusStatus": ".sync_status_status",
206
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
203
207
  "TypeEnum": ".type_enum",
204
208
  "User": ".user",
205
209
  "UserFieldMappings": ".user_field_mappings",
@@ -323,7 +327,9 @@ __all__ = [
323
327
  "StatusFd5Enum",
324
328
  "SyncStatus",
325
329
  "SyncStatusLastSyncResult",
330
+ "SyncStatusReasonEnum",
326
331
  "SyncStatusStatus",
332
+ "SyncStatusSyncStatusReason",
327
333
  "TypeEnum",
328
334
  "User",
329
335
  "UserFieldMappings",
@@ -9,6 +9,7 @@ from ....core.unchecked_base_model import UncheckedBaseModel
9
9
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
10
10
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
11
11
  from .sync_status_status import SyncStatusStatus
12
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
12
13
 
13
14
 
14
15
  class SyncStatus(UncheckedBaseModel):
@@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
27
28
  next_sync_start: typing.Optional[dt.datetime] = None
28
29
  last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
29
30
  last_sync_finished: typing.Optional[dt.datetime] = None
31
+ data_fresh_as_of: typing.Optional[dt.datetime] = None
30
32
  status: SyncStatusStatus
33
+ sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
34
+ """
35
+ The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
36
+ """
37
+
31
38
  is_initial_sync: bool
32
39
  selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None
33
40
 
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core import enum
6
+
7
+ T_Result = typing.TypeVar("T_Result")
8
+
9
+
10
+ class SyncStatusReasonEnum(enum.StrEnum):
11
+ RATE_LIMITED = "RATE_LIMITED"
12
+ WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"
13
+
14
+ def visit(
15
+ self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
16
+ ) -> T_Result:
17
+ if self is SyncStatusReasonEnum.RATE_LIMITED:
18
+ return rate_limited()
19
+ if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
20
+ return waiting_on_other_models()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .sync_status_reason_enum import SyncStatusReasonEnum
6
+
7
+ SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
@@ -230,7 +230,9 @@ if typing.TYPE_CHECKING:
230
230
  StatusFd5Enum,
231
231
  SyncStatus,
232
232
  SyncStatusLastSyncResult,
233
+ SyncStatusReasonEnum,
233
234
  SyncStatusStatus,
235
+ SyncStatusSyncStatusReason,
234
236
  Task,
235
237
  TaskAccount,
236
238
  TaskContact,
@@ -539,7 +541,9 @@ _dynamic_imports: typing.Dict[str, str] = {
539
541
  "StatusFd5Enum": ".types",
540
542
  "SyncStatus": ".types",
541
543
  "SyncStatusLastSyncResult": ".types",
544
+ "SyncStatusReasonEnum": ".types",
542
545
  "SyncStatusStatus": ".types",
546
+ "SyncStatusSyncStatusReason": ".types",
543
547
  "Task": ".types",
544
548
  "TaskAccount": ".types",
545
549
  "TaskContact": ".types",
@@ -854,7 +858,9 @@ __all__ = [
854
858
  "StatusFd5Enum",
855
859
  "SyncStatus",
856
860
  "SyncStatusLastSyncResult",
861
+ "SyncStatusReasonEnum",
857
862
  "SyncStatusStatus",
863
+ "SyncStatusSyncStatusReason",
858
864
  "Task",
859
865
  "TaskAccount",
860
866
  "TaskContact",
@@ -235,7 +235,9 @@ if typing.TYPE_CHECKING:
235
235
  from .status_fd_5_enum import StatusFd5Enum
236
236
  from .sync_status import SyncStatus
237
237
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
238
+ from .sync_status_reason_enum import SyncStatusReasonEnum
238
239
  from .sync_status_status import SyncStatusStatus
240
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
239
241
  from .task import Task
240
242
  from .task_account import TaskAccount
241
243
  from .task_contact import TaskContact
@@ -478,7 +480,9 @@ _dynamic_imports: typing.Dict[str, str] = {
478
480
  "StatusFd5Enum": ".status_fd_5_enum",
479
481
  "SyncStatus": ".sync_status",
480
482
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
483
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
481
484
  "SyncStatusStatus": ".sync_status_status",
485
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
482
486
  "Task": ".task",
483
487
  "TaskAccount": ".task_account",
484
488
  "TaskContact": ".task_contact",
@@ -745,7 +749,9 @@ __all__ = [
745
749
  "StatusFd5Enum",
746
750
  "SyncStatus",
747
751
  "SyncStatusLastSyncResult",
752
+ "SyncStatusReasonEnum",
748
753
  "SyncStatusStatus",
754
+ "SyncStatusSyncStatusReason",
749
755
  "Task",
750
756
  "TaskAccount",
751
757
  "TaskContact",
@@ -9,6 +9,7 @@ from ....core.unchecked_base_model import UncheckedBaseModel
9
9
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
10
10
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
11
11
  from .sync_status_status import SyncStatusStatus
12
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
12
13
 
13
14
 
14
15
  class SyncStatus(UncheckedBaseModel):
@@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel):
27
28
  next_sync_start: typing.Optional[dt.datetime] = None
28
29
  last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
29
30
  last_sync_finished: typing.Optional[dt.datetime] = None
31
+ data_fresh_as_of: typing.Optional[dt.datetime] = None
30
32
  status: SyncStatusStatus
33
+ sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
34
+ """
35
+ The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing.
36
+ """
37
+
31
38
  is_initial_sync: bool
32
39
  selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None
33
40
 
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core import enum
6
+
7
+ T_Result = typing.TypeVar("T_Result")
8
+
9
+
10
+ class SyncStatusReasonEnum(enum.StrEnum):
11
+ RATE_LIMITED = "RATE_LIMITED"
12
+ WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS"
13
+
14
+ def visit(
15
+ self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result]
16
+ ) -> T_Result:
17
+ if self is SyncStatusReasonEnum.RATE_LIMITED:
18
+ return rate_limited()
19
+ if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS:
20
+ return waiting_on_other_models()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .sync_status_reason_enum import SyncStatusReasonEnum
6
+
7
+ SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str]
@@ -103,7 +103,9 @@ if typing.TYPE_CHECKING:
103
103
  StatusFd5Enum,
104
104
  SyncStatus,
105
105
  SyncStatusLastSyncResult,
106
+ SyncStatusReasonEnum,
106
107
  SyncStatusStatus,
108
+ SyncStatusSyncStatusReason,
107
109
  User,
108
110
  UserFieldMappings,
109
111
  UserType,
@@ -266,7 +268,9 @@ _dynamic_imports: typing.Dict[str, str] = {
266
268
  "StatusFd5Enum": ".types",
267
269
  "SyncStatus": ".types",
268
270
  "SyncStatusLastSyncResult": ".types",
271
+ "SyncStatusReasonEnum": ".types",
269
272
  "SyncStatusStatus": ".types",
273
+ "SyncStatusSyncStatusReason": ".types",
270
274
  "User": ".types",
271
275
  "UserFieldMappings": ".types",
272
276
  "UserType": ".types",
@@ -435,7 +439,9 @@ __all__ = [
435
439
  "StatusFd5Enum",
436
440
  "SyncStatus",
437
441
  "SyncStatusLastSyncResult",
442
+ "SyncStatusReasonEnum",
438
443
  "SyncStatusStatus",
444
+ "SyncStatusSyncStatusReason",
439
445
  "User",
440
446
  "UserFieldMappings",
441
447
  "UserType",
@@ -104,7 +104,9 @@ if typing.TYPE_CHECKING:
104
104
  from .status_fd_5_enum import StatusFd5Enum
105
105
  from .sync_status import SyncStatus
106
106
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
107
+ from .sync_status_reason_enum import SyncStatusReasonEnum
107
108
  from .sync_status_status import SyncStatusStatus
109
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
108
110
  from .user import User
109
111
  from .user_field_mappings import UserFieldMappings
110
112
  from .user_type import UserType
@@ -209,7 +211,9 @@ _dynamic_imports: typing.Dict[str, str] = {
209
211
  "StatusFd5Enum": ".status_fd_5_enum",
210
212
  "SyncStatus": ".sync_status",
211
213
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
214
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
212
215
  "SyncStatusStatus": ".sync_status_status",
216
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
213
217
  "User": ".user",
214
218
  "UserFieldMappings": ".user_field_mappings",
215
219
  "UserType": ".user_type",
@@ -338,7 +342,9 @@ __all__ = [
338
342
  "StatusFd5Enum",
339
343
  "SyncStatus",
340
344
  "SyncStatusLastSyncResult",
345
+ "SyncStatusReasonEnum",
341
346
  "SyncStatusStatus",
347
+ "SyncStatusSyncStatusReason",
342
348
  "User",
343
349
  "UserFieldMappings",
344
350
  "UserType",