mergepythonclient 4.0.0__py3-none-any.whl → 4.2.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.
- merge/core/client_wrapper.py +2 -2
- merge/resources/accounting/__init__.py +21 -0
- merge/resources/accounting/client.py +19 -0
- merge/resources/accounting/resources/__init__.py +3 -0
- merge/resources/accounting/resources/selective_sync/__init__.py +4 -0
- merge/resources/accounting/resources/selective_sync/client.py +104 -0
- merge/resources/accounting/resources/selective_sync/raw_client.py +103 -0
- merge/resources/accounting/types/__init__.py +18 -0
- merge/resources/accounting/types/operator_enum.py +58 -0
- merge/resources/accounting/types/selective_sync_condition.py +49 -0
- merge/resources/accounting/types/selective_sync_condition_list.py +21 -0
- merge/resources/accounting/types/selective_sync_condition_operator.py +7 -0
- merge/resources/accounting/types/sync_status.py +7 -0
- merge/resources/accounting/types/sync_status_reason_enum.py +20 -0
- merge/resources/accounting/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/ats/__init__.py +21 -0
- merge/resources/ats/client.py +19 -0
- merge/resources/ats/resources/__init__.py +3 -0
- merge/resources/ats/resources/selective_sync/__init__.py +4 -0
- merge/resources/ats/resources/selective_sync/client.py +104 -0
- merge/resources/ats/resources/selective_sync/raw_client.py +103 -0
- merge/resources/ats/types/__init__.py +18 -0
- merge/resources/ats/types/operator_enum.py +58 -0
- merge/resources/ats/types/selective_sync_condition.py +49 -0
- merge/resources/ats/types/selective_sync_condition_list.py +21 -0
- merge/resources/ats/types/selective_sync_condition_operator.py +7 -0
- merge/resources/ats/types/sync_status.py +7 -0
- merge/resources/ats/types/sync_status_reason_enum.py +20 -0
- merge/resources/ats/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/calendar/__init__.py +21 -0
- merge/resources/calendar/client.py +19 -0
- merge/resources/calendar/resources/__init__.py +3 -0
- merge/resources/calendar/resources/selective_sync/__init__.py +4 -0
- merge/resources/calendar/resources/selective_sync/client.py +104 -0
- merge/resources/calendar/resources/selective_sync/raw_client.py +103 -0
- merge/resources/calendar/types/__init__.py +18 -0
- merge/resources/calendar/types/operator_enum.py +58 -0
- merge/resources/calendar/types/selective_sync_condition.py +49 -0
- merge/resources/calendar/types/selective_sync_condition_list.py +21 -0
- merge/resources/calendar/types/selective_sync_condition_operator.py +7 -0
- merge/resources/calendar/types/sync_status.py +7 -0
- merge/resources/calendar/types/sync_status_reason_enum.py +20 -0
- merge/resources/calendar/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/chat/__init__.py +39 -0
- merge/resources/chat/client.py +19 -0
- merge/resources/chat/resources/__init__.py +3 -0
- merge/resources/chat/resources/selective_sync/__init__.py +4 -0
- merge/resources/chat/resources/selective_sync/client.py +264 -0
- merge/resources/chat/resources/selective_sync/raw_client.py +293 -0
- merge/resources/chat/types/__init__.py +36 -0
- merge/resources/chat/types/chat_sync_selection.py +50 -0
- merge/resources/chat/types/chat_sync_selection_type.py +7 -0
- merge/resources/chat/types/chat_sync_selection_type_enum.py +18 -0
- merge/resources/chat/types/label_selection.py +43 -0
- merge/resources/chat/types/label_selection_list.py +21 -0
- merge/resources/chat/types/operator_enum.py +58 -0
- merge/resources/chat/types/paginated_chat_sync_selection_list.py +23 -0
- merge/resources/chat/types/selective_sync_condition.py +49 -0
- merge/resources/chat/types/selective_sync_condition_list.py +21 -0
- merge/resources/chat/types/selective_sync_condition_operator.py +7 -0
- merge/resources/chat/types/sync_status.py +7 -0
- merge/resources/chat/types/sync_status_reason_enum.py +20 -0
- merge/resources/chat/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/crm/__init__.py +21 -0
- merge/resources/crm/client.py +19 -0
- merge/resources/crm/resources/__init__.py +3 -0
- merge/resources/crm/resources/selective_sync/__init__.py +4 -0
- merge/resources/crm/resources/selective_sync/client.py +104 -0
- merge/resources/crm/resources/selective_sync/raw_client.py +103 -0
- merge/resources/crm/types/__init__.py +18 -0
- merge/resources/crm/types/operator_enum.py +58 -0
- merge/resources/crm/types/selective_sync_condition.py +49 -0
- merge/resources/crm/types/selective_sync_condition_list.py +21 -0
- merge/resources/crm/types/selective_sync_condition_operator.py +7 -0
- merge/resources/crm/types/sync_status.py +7 -0
- merge/resources/crm/types/sync_status_reason_enum.py +20 -0
- merge/resources/crm/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/email/__init__.py +27 -0
- merge/resources/email/client.py +19 -0
- merge/resources/email/resources/__init__.py +3 -0
- merge/resources/email/resources/selective_sync/__init__.py +4 -0
- merge/resources/email/resources/selective_sync/client.py +167 -0
- merge/resources/email/resources/selective_sync/raw_client.py +184 -0
- merge/resources/email/types/__init__.py +24 -0
- merge/resources/email/types/label_selection.py +43 -0
- merge/resources/email/types/label_selection_list.py +21 -0
- merge/resources/email/types/operator_enum.py +58 -0
- merge/resources/email/types/selective_sync_condition.py +49 -0
- merge/resources/email/types/selective_sync_condition_list.py +21 -0
- merge/resources/email/types/selective_sync_condition_operator.py +7 -0
- merge/resources/email/types/sync_status.py +7 -0
- merge/resources/email/types/sync_status_reason_enum.py +20 -0
- merge/resources/email/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/filestorage/__init__.py +39 -0
- merge/resources/filestorage/client.py +19 -0
- merge/resources/filestorage/resources/__init__.py +3 -0
- merge/resources/filestorage/resources/selective_sync/__init__.py +4 -0
- merge/resources/filestorage/resources/selective_sync/client.py +264 -0
- merge/resources/filestorage/resources/selective_sync/raw_client.py +293 -0
- merge/resources/filestorage/types/__init__.py +36 -0
- merge/resources/filestorage/types/file_storage_sync_selection.py +50 -0
- merge/resources/filestorage/types/file_storage_sync_selection_type.py +7 -0
- merge/resources/filestorage/types/file_storage_sync_selection_type_enum.py +26 -0
- merge/resources/filestorage/types/label_selection.py +43 -0
- merge/resources/filestorage/types/label_selection_list.py +21 -0
- merge/resources/filestorage/types/operator_enum.py +58 -0
- merge/resources/filestorage/types/paginated_file_storage_sync_selection_list.py +23 -0
- merge/resources/filestorage/types/selective_sync_condition.py +49 -0
- merge/resources/filestorage/types/selective_sync_condition_list.py +21 -0
- merge/resources/filestorage/types/selective_sync_condition_operator.py +7 -0
- merge/resources/filestorage/types/sync_status.py +7 -0
- merge/resources/filestorage/types/sync_status_reason_enum.py +20 -0
- merge/resources/filestorage/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/hris/__init__.py +21 -0
- merge/resources/hris/client.py +19 -0
- merge/resources/hris/resources/__init__.py +3 -0
- merge/resources/hris/resources/selective_sync/__init__.py +4 -0
- merge/resources/hris/resources/selective_sync/client.py +104 -0
- merge/resources/hris/resources/selective_sync/raw_client.py +103 -0
- merge/resources/hris/types/__init__.py +18 -0
- merge/resources/hris/types/operator_enum.py +58 -0
- merge/resources/hris/types/selective_sync_condition.py +49 -0
- merge/resources/hris/types/selective_sync_condition_list.py +21 -0
- merge/resources/hris/types/selective_sync_condition_operator.py +7 -0
- merge/resources/hris/types/sync_status.py +7 -0
- merge/resources/hris/types/sync_status_reason_enum.py +20 -0
- merge/resources/hris/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/knowledgebase/__init__.py +33 -0
- merge/resources/knowledgebase/client.py +19 -0
- merge/resources/knowledgebase/resources/__init__.py +3 -0
- merge/resources/knowledgebase/resources/selective_sync/__init__.py +4 -0
- merge/resources/knowledgebase/resources/selective_sync/client.py +201 -0
- merge/resources/knowledgebase/resources/selective_sync/raw_client.py +212 -0
- merge/resources/knowledgebase/types/__init__.py +30 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection.py +50 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection_type.py +7 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection_type_enum.py +18 -0
- merge/resources/knowledgebase/types/operator_enum.py +58 -0
- merge/resources/knowledgebase/types/paginated_knowledge_base_sync_selection_list.py +23 -0
- merge/resources/knowledgebase/types/selective_sync_condition.py +49 -0
- merge/resources/knowledgebase/types/selective_sync_condition_list.py +21 -0
- merge/resources/knowledgebase/types/selective_sync_condition_operator.py +7 -0
- merge/resources/knowledgebase/types/sync_status.py +7 -0
- merge/resources/knowledgebase/types/sync_status_reason_enum.py +20 -0
- merge/resources/knowledgebase/types/sync_status_sync_status_reason.py +7 -0
- merge/resources/ticketing/__init__.py +21 -0
- merge/resources/ticketing/client.py +19 -0
- merge/resources/ticketing/resources/__init__.py +3 -0
- merge/resources/ticketing/resources/selective_sync/__init__.py +4 -0
- merge/resources/ticketing/resources/selective_sync/client.py +104 -0
- merge/resources/ticketing/resources/selective_sync/raw_client.py +103 -0
- merge/resources/ticketing/types/__init__.py +18 -0
- merge/resources/ticketing/types/operator_enum.py +58 -0
- merge/resources/ticketing/types/selective_sync_condition.py +49 -0
- merge/resources/ticketing/types/selective_sync_condition_list.py +21 -0
- merge/resources/ticketing/types/selective_sync_condition_operator.py +7 -0
- merge/resources/ticketing/types/sync_status.py +7 -0
- merge/resources/ticketing/types/sync_status_reason_enum.py +20 -0
- merge/resources/ticketing/types/sync_status_sync_status_reason.py +7 -0
- {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/METADATA +2 -1
- {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/RECORD +163 -55
- {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/LICENSE.md +0 -0
- {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/WHEEL +0 -0
|
@@ -77,6 +77,7 @@ if typing.TYPE_CHECKING:
|
|
|
77
77
|
ModelPermissionDeserializerRequest,
|
|
78
78
|
MultipartFormFieldRequest,
|
|
79
79
|
MultipartFormFieldRequestEncoding,
|
|
80
|
+
OperatorEnum,
|
|
80
81
|
PaginatedAccountDetailsAndActionsList,
|
|
81
82
|
PaginatedAuditLogEventList,
|
|
82
83
|
PaginatedCalendarList,
|
|
@@ -108,13 +109,18 @@ if typing.TYPE_CHECKING:
|
|
|
108
109
|
RoleEnum,
|
|
109
110
|
RolesEnum,
|
|
110
111
|
RsvpEnum,
|
|
112
|
+
SelectiveSyncCondition,
|
|
113
|
+
SelectiveSyncConditionList,
|
|
114
|
+
SelectiveSyncConditionOperator,
|
|
111
115
|
SelectiveSyncConfigurationsUsageEnum,
|
|
112
116
|
Series,
|
|
113
117
|
SeriesFieldMappings,
|
|
114
118
|
StatusFd5Enum,
|
|
115
119
|
SyncStatus,
|
|
116
120
|
SyncStatusLastSyncResult,
|
|
121
|
+
SyncStatusReasonEnum,
|
|
117
122
|
SyncStatusStatus,
|
|
123
|
+
SyncStatusSyncStatusReason,
|
|
118
124
|
User,
|
|
119
125
|
UserFieldMappings,
|
|
120
126
|
ValidationProblemSource,
|
|
@@ -151,6 +157,7 @@ if typing.TYPE_CHECKING:
|
|
|
151
157
|
passthrough,
|
|
152
158
|
regenerate_key,
|
|
153
159
|
scopes,
|
|
160
|
+
selective_sync,
|
|
154
161
|
series,
|
|
155
162
|
sync_status,
|
|
156
163
|
users,
|
|
@@ -238,6 +245,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
238
245
|
"ModelPermissionDeserializerRequest": ".types",
|
|
239
246
|
"MultipartFormFieldRequest": ".types",
|
|
240
247
|
"MultipartFormFieldRequestEncoding": ".types",
|
|
248
|
+
"OperatorEnum": ".types",
|
|
241
249
|
"PaginatedAccountDetailsAndActionsList": ".types",
|
|
242
250
|
"PaginatedAuditLogEventList": ".types",
|
|
243
251
|
"PaginatedCalendarList": ".types",
|
|
@@ -269,13 +277,18 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
269
277
|
"RoleEnum": ".types",
|
|
270
278
|
"RolesEnum": ".types",
|
|
271
279
|
"RsvpEnum": ".types",
|
|
280
|
+
"SelectiveSyncCondition": ".types",
|
|
281
|
+
"SelectiveSyncConditionList": ".types",
|
|
282
|
+
"SelectiveSyncConditionOperator": ".types",
|
|
272
283
|
"SelectiveSyncConfigurationsUsageEnum": ".types",
|
|
273
284
|
"Series": ".types",
|
|
274
285
|
"SeriesFieldMappings": ".types",
|
|
275
286
|
"StatusFd5Enum": ".types",
|
|
276
287
|
"SyncStatus": ".types",
|
|
277
288
|
"SyncStatusLastSyncResult": ".types",
|
|
289
|
+
"SyncStatusReasonEnum": ".types",
|
|
278
290
|
"SyncStatusStatus": ".types",
|
|
291
|
+
"SyncStatusSyncStatusReason": ".types",
|
|
279
292
|
"User": ".types",
|
|
280
293
|
"UserFieldMappings": ".types",
|
|
281
294
|
"ValidationProblemSource": ".types",
|
|
@@ -299,6 +312,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
299
312
|
"passthrough": ".resources",
|
|
300
313
|
"regenerate_key": ".resources",
|
|
301
314
|
"scopes": ".resources",
|
|
315
|
+
"selective_sync": ".resources",
|
|
302
316
|
"series": ".resources",
|
|
303
317
|
"sync_status": ".resources",
|
|
304
318
|
"users": ".resources",
|
|
@@ -409,6 +423,7 @@ __all__ = [
|
|
|
409
423
|
"ModelPermissionDeserializerRequest",
|
|
410
424
|
"MultipartFormFieldRequest",
|
|
411
425
|
"MultipartFormFieldRequestEncoding",
|
|
426
|
+
"OperatorEnum",
|
|
412
427
|
"PaginatedAccountDetailsAndActionsList",
|
|
413
428
|
"PaginatedAuditLogEventList",
|
|
414
429
|
"PaginatedCalendarList",
|
|
@@ -440,13 +455,18 @@ __all__ = [
|
|
|
440
455
|
"RoleEnum",
|
|
441
456
|
"RolesEnum",
|
|
442
457
|
"RsvpEnum",
|
|
458
|
+
"SelectiveSyncCondition",
|
|
459
|
+
"SelectiveSyncConditionList",
|
|
460
|
+
"SelectiveSyncConditionOperator",
|
|
443
461
|
"SelectiveSyncConfigurationsUsageEnum",
|
|
444
462
|
"Series",
|
|
445
463
|
"SeriesFieldMappings",
|
|
446
464
|
"StatusFd5Enum",
|
|
447
465
|
"SyncStatus",
|
|
448
466
|
"SyncStatusLastSyncResult",
|
|
467
|
+
"SyncStatusReasonEnum",
|
|
449
468
|
"SyncStatusStatus",
|
|
469
|
+
"SyncStatusSyncStatusReason",
|
|
450
470
|
"User",
|
|
451
471
|
"UserFieldMappings",
|
|
452
472
|
"ValidationProblemSource",
|
|
@@ -470,6 +490,7 @@ __all__ = [
|
|
|
470
490
|
"passthrough",
|
|
471
491
|
"regenerate_key",
|
|
472
492
|
"scopes",
|
|
493
|
+
"selective_sync",
|
|
473
494
|
"series",
|
|
474
495
|
"sync_status",
|
|
475
496
|
"users",
|
|
@@ -32,6 +32,7 @@ if typing.TYPE_CHECKING:
|
|
|
32
32
|
from .resources.passthrough.client import PassthroughClient
|
|
33
33
|
from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
|
|
34
34
|
from .resources.scopes.client import AsyncScopesClient, ScopesClient
|
|
35
|
+
from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
|
|
35
36
|
from .resources.series.client import AsyncSeriesClient, SeriesClient
|
|
36
37
|
from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
|
|
37
38
|
from .resources.users.client import AsyncUsersClient, UsersClient
|
|
@@ -61,6 +62,7 @@ class CalendarClient:
|
|
|
61
62
|
self._linked_accounts: typing.Optional[LinkedAccountsClient] = None
|
|
62
63
|
self._passthrough: typing.Optional[PassthroughClient] = None
|
|
63
64
|
self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
|
|
65
|
+
self._selective_sync: typing.Optional[SelectiveSyncClient] = None
|
|
64
66
|
self._series: typing.Optional[SeriesClient] = None
|
|
65
67
|
self._sync_status: typing.Optional[SyncStatusClient] = None
|
|
66
68
|
self._force_resync: typing.Optional[ForceResyncClient] = None
|
|
@@ -218,6 +220,14 @@ class CalendarClient:
|
|
|
218
220
|
self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
|
|
219
221
|
return self._regenerate_key
|
|
220
222
|
|
|
223
|
+
@property
|
|
224
|
+
def selective_sync(self):
|
|
225
|
+
if self._selective_sync is None:
|
|
226
|
+
from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
|
|
227
|
+
|
|
228
|
+
self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
|
|
229
|
+
return self._selective_sync
|
|
230
|
+
|
|
221
231
|
@property
|
|
222
232
|
def series(self):
|
|
223
233
|
if self._series is None:
|
|
@@ -282,6 +292,7 @@ class AsyncCalendarClient:
|
|
|
282
292
|
None
|
|
283
293
|
)
|
|
284
294
|
self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
|
|
295
|
+
self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
|
|
285
296
|
self._series: typing.Optional[AsyncSeriesClient] = None
|
|
286
297
|
self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
|
|
287
298
|
self._force_resync: typing.Optional[AsyncForceResyncClient] = None
|
|
@@ -439,6 +450,14 @@ class AsyncCalendarClient:
|
|
|
439
450
|
self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
|
|
440
451
|
return self._regenerate_key
|
|
441
452
|
|
|
453
|
+
@property
|
|
454
|
+
def selective_sync(self):
|
|
455
|
+
if self._selective_sync is None:
|
|
456
|
+
from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
|
|
457
|
+
|
|
458
|
+
self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
|
|
459
|
+
return self._selective_sync
|
|
460
|
+
|
|
442
461
|
@property
|
|
443
462
|
def series(self):
|
|
444
463
|
if self._series is None:
|
|
@@ -25,6 +25,7 @@ if typing.TYPE_CHECKING:
|
|
|
25
25
|
passthrough,
|
|
26
26
|
regenerate_key,
|
|
27
27
|
scopes,
|
|
28
|
+
selective_sync,
|
|
28
29
|
series,
|
|
29
30
|
sync_status,
|
|
30
31
|
users,
|
|
@@ -71,6 +72,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
71
72
|
"passthrough": ".passthrough",
|
|
72
73
|
"regenerate_key": ".regenerate_key",
|
|
73
74
|
"scopes": ".scopes",
|
|
75
|
+
"selective_sync": ".selective_sync",
|
|
74
76
|
"series": ".series",
|
|
75
77
|
"sync_status": ".sync_status",
|
|
76
78
|
"users": ".users",
|
|
@@ -129,6 +131,7 @@ __all__ = [
|
|
|
129
131
|
"passthrough",
|
|
130
132
|
"regenerate_key",
|
|
131
133
|
"scopes",
|
|
134
|
+
"selective_sync",
|
|
132
135
|
"series",
|
|
133
136
|
"sync_status",
|
|
134
137
|
"users",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from .....core.request_options import RequestOptions
|
|
7
|
+
from ...types.selective_sync_condition_list import SelectiveSyncConditionList
|
|
8
|
+
from .raw_client import AsyncRawSelectiveSyncClient, RawSelectiveSyncClient
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SelectiveSyncClient:
|
|
12
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
13
|
+
self._raw_client = RawSelectiveSyncClient(client_wrapper=client_wrapper)
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def with_raw_response(self) -> RawSelectiveSyncClient:
|
|
17
|
+
"""
|
|
18
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
RawSelectiveSyncClient
|
|
23
|
+
"""
|
|
24
|
+
return self._raw_client
|
|
25
|
+
|
|
26
|
+
def conditions_list(self, *, request_options: typing.Optional[RequestOptions] = None) -> SelectiveSyncConditionList:
|
|
27
|
+
"""
|
|
28
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
29
|
+
|
|
30
|
+
Parameters
|
|
31
|
+
----------
|
|
32
|
+
request_options : typing.Optional[RequestOptions]
|
|
33
|
+
Request-specific configuration.
|
|
34
|
+
|
|
35
|
+
Returns
|
|
36
|
+
-------
|
|
37
|
+
SelectiveSyncConditionList
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
Examples
|
|
41
|
+
--------
|
|
42
|
+
from merge import Merge
|
|
43
|
+
|
|
44
|
+
client = Merge(
|
|
45
|
+
account_token="YOUR_ACCOUNT_TOKEN",
|
|
46
|
+
api_key="YOUR_API_KEY",
|
|
47
|
+
)
|
|
48
|
+
client.calendar.selective_sync.conditions_list()
|
|
49
|
+
"""
|
|
50
|
+
_response = self._raw_client.conditions_list(request_options=request_options)
|
|
51
|
+
return _response.data
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class AsyncSelectiveSyncClient:
|
|
55
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
56
|
+
self._raw_client = AsyncRawSelectiveSyncClient(client_wrapper=client_wrapper)
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def with_raw_response(self) -> AsyncRawSelectiveSyncClient:
|
|
60
|
+
"""
|
|
61
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
62
|
+
|
|
63
|
+
Returns
|
|
64
|
+
-------
|
|
65
|
+
AsyncRawSelectiveSyncClient
|
|
66
|
+
"""
|
|
67
|
+
return self._raw_client
|
|
68
|
+
|
|
69
|
+
async def conditions_list(
|
|
70
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
71
|
+
) -> SelectiveSyncConditionList:
|
|
72
|
+
"""
|
|
73
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
74
|
+
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
request_options : typing.Optional[RequestOptions]
|
|
78
|
+
Request-specific configuration.
|
|
79
|
+
|
|
80
|
+
Returns
|
|
81
|
+
-------
|
|
82
|
+
SelectiveSyncConditionList
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
Examples
|
|
86
|
+
--------
|
|
87
|
+
import asyncio
|
|
88
|
+
|
|
89
|
+
from merge import AsyncMerge
|
|
90
|
+
|
|
91
|
+
client = AsyncMerge(
|
|
92
|
+
account_token="YOUR_ACCOUNT_TOKEN",
|
|
93
|
+
api_key="YOUR_API_KEY",
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
async def main() -> None:
|
|
98
|
+
await client.calendar.selective_sync.conditions_list()
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
asyncio.run(main())
|
|
102
|
+
"""
|
|
103
|
+
_response = await self._raw_client.conditions_list(request_options=request_options)
|
|
104
|
+
return _response.data
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from .....core.api_error import ApiError
|
|
7
|
+
from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from .....core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from .....core.parse_error import ParsingError
|
|
10
|
+
from .....core.request_options import RequestOptions
|
|
11
|
+
from .....core.unchecked_base_model import construct_type
|
|
12
|
+
from ...types.selective_sync_condition_list import SelectiveSyncConditionList
|
|
13
|
+
from pydantic import ValidationError
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RawSelectiveSyncClient:
|
|
17
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
18
|
+
self._client_wrapper = client_wrapper
|
|
19
|
+
|
|
20
|
+
def conditions_list(
|
|
21
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
22
|
+
) -> HttpResponse[SelectiveSyncConditionList]:
|
|
23
|
+
"""
|
|
24
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
25
|
+
|
|
26
|
+
Parameters
|
|
27
|
+
----------
|
|
28
|
+
request_options : typing.Optional[RequestOptions]
|
|
29
|
+
Request-specific configuration.
|
|
30
|
+
|
|
31
|
+
Returns
|
|
32
|
+
-------
|
|
33
|
+
HttpResponse[SelectiveSyncConditionList]
|
|
34
|
+
|
|
35
|
+
"""
|
|
36
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
37
|
+
"calendar/v1/selective-sync/conditions",
|
|
38
|
+
method="GET",
|
|
39
|
+
request_options=request_options,
|
|
40
|
+
)
|
|
41
|
+
try:
|
|
42
|
+
if 200 <= _response.status_code < 300:
|
|
43
|
+
_data = typing.cast(
|
|
44
|
+
SelectiveSyncConditionList,
|
|
45
|
+
construct_type(
|
|
46
|
+
type_=SelectiveSyncConditionList, # type: ignore
|
|
47
|
+
object_=_response.json(),
|
|
48
|
+
),
|
|
49
|
+
)
|
|
50
|
+
return HttpResponse(response=_response, data=_data)
|
|
51
|
+
_response_json = _response.json()
|
|
52
|
+
except JSONDecodeError:
|
|
53
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
54
|
+
except ValidationError as e:
|
|
55
|
+
raise ParsingError(
|
|
56
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
57
|
+
)
|
|
58
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class AsyncRawSelectiveSyncClient:
|
|
62
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
63
|
+
self._client_wrapper = client_wrapper
|
|
64
|
+
|
|
65
|
+
async def conditions_list(
|
|
66
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
67
|
+
) -> AsyncHttpResponse[SelectiveSyncConditionList]:
|
|
68
|
+
"""
|
|
69
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
70
|
+
|
|
71
|
+
Parameters
|
|
72
|
+
----------
|
|
73
|
+
request_options : typing.Optional[RequestOptions]
|
|
74
|
+
Request-specific configuration.
|
|
75
|
+
|
|
76
|
+
Returns
|
|
77
|
+
-------
|
|
78
|
+
AsyncHttpResponse[SelectiveSyncConditionList]
|
|
79
|
+
|
|
80
|
+
"""
|
|
81
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
82
|
+
"calendar/v1/selective-sync/conditions",
|
|
83
|
+
method="GET",
|
|
84
|
+
request_options=request_options,
|
|
85
|
+
)
|
|
86
|
+
try:
|
|
87
|
+
if 200 <= _response.status_code < 300:
|
|
88
|
+
_data = typing.cast(
|
|
89
|
+
SelectiveSyncConditionList,
|
|
90
|
+
construct_type(
|
|
91
|
+
type_=SelectiveSyncConditionList, # type: ignore
|
|
92
|
+
object_=_response.json(),
|
|
93
|
+
),
|
|
94
|
+
)
|
|
95
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
96
|
+
_response_json = _response.json()
|
|
97
|
+
except JSONDecodeError:
|
|
98
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
99
|
+
except ValidationError as e:
|
|
100
|
+
raise ParsingError(
|
|
101
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
102
|
+
)
|
|
103
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
@@ -78,6 +78,7 @@ if typing.TYPE_CHECKING:
|
|
|
78
78
|
from .model_permission_deserializer_request import ModelPermissionDeserializerRequest
|
|
79
79
|
from .multipart_form_field_request import MultipartFormFieldRequest
|
|
80
80
|
from .multipart_form_field_request_encoding import MultipartFormFieldRequestEncoding
|
|
81
|
+
from .operator_enum import OperatorEnum
|
|
81
82
|
from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
|
|
82
83
|
from .paginated_audit_log_event_list import PaginatedAuditLogEventList
|
|
83
84
|
from .paginated_calendar_list import PaginatedCalendarList
|
|
@@ -109,13 +110,18 @@ if typing.TYPE_CHECKING:
|
|
|
109
110
|
from .role_enum import RoleEnum
|
|
110
111
|
from .roles_enum import RolesEnum
|
|
111
112
|
from .rsvp_enum import RsvpEnum
|
|
113
|
+
from .selective_sync_condition import SelectiveSyncCondition
|
|
114
|
+
from .selective_sync_condition_list import SelectiveSyncConditionList
|
|
115
|
+
from .selective_sync_condition_operator import SelectiveSyncConditionOperator
|
|
112
116
|
from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
|
|
113
117
|
from .series import Series
|
|
114
118
|
from .series_field_mappings import SeriesFieldMappings
|
|
115
119
|
from .status_fd_5_enum import StatusFd5Enum
|
|
116
120
|
from .sync_status import SyncStatus
|
|
117
121
|
from .sync_status_last_sync_result import SyncStatusLastSyncResult
|
|
122
|
+
from .sync_status_reason_enum import SyncStatusReasonEnum
|
|
118
123
|
from .sync_status_status import SyncStatusStatus
|
|
124
|
+
from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
|
|
119
125
|
from .user import User
|
|
120
126
|
from .user_field_mappings import UserFieldMappings
|
|
121
127
|
from .validation_problem_source import ValidationProblemSource
|
|
@@ -192,6 +198,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
192
198
|
"ModelPermissionDeserializerRequest": ".model_permission_deserializer_request",
|
|
193
199
|
"MultipartFormFieldRequest": ".multipart_form_field_request",
|
|
194
200
|
"MultipartFormFieldRequestEncoding": ".multipart_form_field_request_encoding",
|
|
201
|
+
"OperatorEnum": ".operator_enum",
|
|
195
202
|
"PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
|
|
196
203
|
"PaginatedAuditLogEventList": ".paginated_audit_log_event_list",
|
|
197
204
|
"PaginatedCalendarList": ".paginated_calendar_list",
|
|
@@ -223,13 +230,18 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
223
230
|
"RoleEnum": ".role_enum",
|
|
224
231
|
"RolesEnum": ".roles_enum",
|
|
225
232
|
"RsvpEnum": ".rsvp_enum",
|
|
233
|
+
"SelectiveSyncCondition": ".selective_sync_condition",
|
|
234
|
+
"SelectiveSyncConditionList": ".selective_sync_condition_list",
|
|
235
|
+
"SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
|
|
226
236
|
"SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
|
|
227
237
|
"Series": ".series",
|
|
228
238
|
"SeriesFieldMappings": ".series_field_mappings",
|
|
229
239
|
"StatusFd5Enum": ".status_fd_5_enum",
|
|
230
240
|
"SyncStatus": ".sync_status",
|
|
231
241
|
"SyncStatusLastSyncResult": ".sync_status_last_sync_result",
|
|
242
|
+
"SyncStatusReasonEnum": ".sync_status_reason_enum",
|
|
232
243
|
"SyncStatusStatus": ".sync_status_status",
|
|
244
|
+
"SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
|
|
233
245
|
"User": ".user",
|
|
234
246
|
"UserFieldMappings": ".user_field_mappings",
|
|
235
247
|
"ValidationProblemSource": ".validation_problem_source",
|
|
@@ -330,6 +342,7 @@ __all__ = [
|
|
|
330
342
|
"ModelPermissionDeserializerRequest",
|
|
331
343
|
"MultipartFormFieldRequest",
|
|
332
344
|
"MultipartFormFieldRequestEncoding",
|
|
345
|
+
"OperatorEnum",
|
|
333
346
|
"PaginatedAccountDetailsAndActionsList",
|
|
334
347
|
"PaginatedAuditLogEventList",
|
|
335
348
|
"PaginatedCalendarList",
|
|
@@ -361,13 +374,18 @@ __all__ = [
|
|
|
361
374
|
"RoleEnum",
|
|
362
375
|
"RolesEnum",
|
|
363
376
|
"RsvpEnum",
|
|
377
|
+
"SelectiveSyncCondition",
|
|
378
|
+
"SelectiveSyncConditionList",
|
|
379
|
+
"SelectiveSyncConditionOperator",
|
|
364
380
|
"SelectiveSyncConfigurationsUsageEnum",
|
|
365
381
|
"Series",
|
|
366
382
|
"SeriesFieldMappings",
|
|
367
383
|
"StatusFd5Enum",
|
|
368
384
|
"SyncStatus",
|
|
369
385
|
"SyncStatusLastSyncResult",
|
|
386
|
+
"SyncStatusReasonEnum",
|
|
370
387
|
"SyncStatusStatus",
|
|
388
|
+
"SyncStatusSyncStatusReason",
|
|
371
389
|
"User",
|
|
372
390
|
"UserFieldMappings",
|
|
373
391
|
"ValidationProblemSource",
|
|
@@ -0,0 +1,58 @@
|
|
|
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 OperatorEnum(enum.StrEnum):
|
|
11
|
+
CONTAINS = "CONTAINS"
|
|
12
|
+
EQUALS = "EQUALS"
|
|
13
|
+
GREATER_THAN = "GREATER_THAN"
|
|
14
|
+
GREATER_THAN_OR_EQUAL_TO = "GREATER_THAN_OR_EQUAL_TO"
|
|
15
|
+
HAS_ALL_OF = "HAS_ALL_OF"
|
|
16
|
+
HAS_NONE_OF = "HAS_NONE_OF"
|
|
17
|
+
IS_ONE_OF = "IS_ONE_OF"
|
|
18
|
+
LESS_THAN = "LESS_THAN"
|
|
19
|
+
LESS_THAN_OR_EQUAL_TO = "LESS_THAN_OR_EQUAL_TO"
|
|
20
|
+
NOT_EQUALS = "NOT_EQUALS"
|
|
21
|
+
WITHIN = "WITHIN"
|
|
22
|
+
|
|
23
|
+
def visit(
|
|
24
|
+
self,
|
|
25
|
+
contains: typing.Callable[[], T_Result],
|
|
26
|
+
equals: typing.Callable[[], T_Result],
|
|
27
|
+
greater_than: typing.Callable[[], T_Result],
|
|
28
|
+
greater_than_or_equal_to: typing.Callable[[], T_Result],
|
|
29
|
+
has_all_of: typing.Callable[[], T_Result],
|
|
30
|
+
has_none_of: typing.Callable[[], T_Result],
|
|
31
|
+
is_one_of: typing.Callable[[], T_Result],
|
|
32
|
+
less_than: typing.Callable[[], T_Result],
|
|
33
|
+
less_than_or_equal_to: typing.Callable[[], T_Result],
|
|
34
|
+
not_equals: typing.Callable[[], T_Result],
|
|
35
|
+
within: typing.Callable[[], T_Result],
|
|
36
|
+
) -> T_Result:
|
|
37
|
+
if self is OperatorEnum.CONTAINS:
|
|
38
|
+
return contains()
|
|
39
|
+
if self is OperatorEnum.EQUALS:
|
|
40
|
+
return equals()
|
|
41
|
+
if self is OperatorEnum.GREATER_THAN:
|
|
42
|
+
return greater_than()
|
|
43
|
+
if self is OperatorEnum.GREATER_THAN_OR_EQUAL_TO:
|
|
44
|
+
return greater_than_or_equal_to()
|
|
45
|
+
if self is OperatorEnum.HAS_ALL_OF:
|
|
46
|
+
return has_all_of()
|
|
47
|
+
if self is OperatorEnum.HAS_NONE_OF:
|
|
48
|
+
return has_none_of()
|
|
49
|
+
if self is OperatorEnum.IS_ONE_OF:
|
|
50
|
+
return is_one_of()
|
|
51
|
+
if self is OperatorEnum.LESS_THAN:
|
|
52
|
+
return less_than()
|
|
53
|
+
if self is OperatorEnum.LESS_THAN_OR_EQUAL_TO:
|
|
54
|
+
return less_than_or_equal_to()
|
|
55
|
+
if self is OperatorEnum.NOT_EQUALS:
|
|
56
|
+
return not_equals()
|
|
57
|
+
if self is OperatorEnum.WITHIN:
|
|
58
|
+
return within()
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .selective_sync_condition_operator import SelectiveSyncConditionOperator
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SelectiveSyncCondition(UncheckedBaseModel):
|
|
12
|
+
id: str = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
The Merge ID of the filter.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
common_model: str = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
The common model the filter applies to.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
normalized_key_name: str = pydantic.Field()
|
|
23
|
+
"""
|
|
24
|
+
The Merge field the filter applies to.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
remote_key_name: typing.Optional[str] = pydantic.Field(default=None)
|
|
28
|
+
"""
|
|
29
|
+
The third-party API's name for the filtered field.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
operator: SelectiveSyncConditionOperator = pydantic.Field()
|
|
33
|
+
"""
|
|
34
|
+
How the value is compared.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
value: typing.Dict[str, typing.Any] = pydantic.Field()
|
|
38
|
+
"""
|
|
39
|
+
The value the field is compared against.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
if IS_PYDANTIC_V2:
|
|
43
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
44
|
+
else:
|
|
45
|
+
|
|
46
|
+
class Config:
|
|
47
|
+
frozen = True
|
|
48
|
+
smart_union = True
|
|
49
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .selective_sync_condition import SelectiveSyncCondition
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SelectiveSyncConditionList(UncheckedBaseModel):
|
|
12
|
+
results: typing.List[SelectiveSyncCondition]
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -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()
|