mergepythonclient 4.1.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.
Files changed (133) hide show
  1. merge/core/client_wrapper.py +2 -2
  2. merge/resources/accounting/__init__.py +15 -0
  3. merge/resources/accounting/client.py +19 -0
  4. merge/resources/accounting/resources/__init__.py +3 -0
  5. merge/resources/accounting/resources/selective_sync/__init__.py +4 -0
  6. merge/resources/accounting/resources/selective_sync/client.py +104 -0
  7. merge/resources/accounting/resources/selective_sync/raw_client.py +103 -0
  8. merge/resources/accounting/types/__init__.py +12 -0
  9. merge/resources/accounting/types/operator_enum.py +58 -0
  10. merge/resources/accounting/types/selective_sync_condition.py +49 -0
  11. merge/resources/accounting/types/selective_sync_condition_list.py +21 -0
  12. merge/resources/accounting/types/selective_sync_condition_operator.py +7 -0
  13. merge/resources/ats/__init__.py +15 -0
  14. merge/resources/ats/client.py +19 -0
  15. merge/resources/ats/resources/__init__.py +3 -0
  16. merge/resources/ats/resources/selective_sync/__init__.py +4 -0
  17. merge/resources/ats/resources/selective_sync/client.py +104 -0
  18. merge/resources/ats/resources/selective_sync/raw_client.py +103 -0
  19. merge/resources/ats/types/__init__.py +12 -0
  20. merge/resources/ats/types/operator_enum.py +58 -0
  21. merge/resources/ats/types/selective_sync_condition.py +49 -0
  22. merge/resources/ats/types/selective_sync_condition_list.py +21 -0
  23. merge/resources/ats/types/selective_sync_condition_operator.py +7 -0
  24. merge/resources/calendar/__init__.py +15 -0
  25. merge/resources/calendar/client.py +19 -0
  26. merge/resources/calendar/resources/__init__.py +3 -0
  27. merge/resources/calendar/resources/selective_sync/__init__.py +4 -0
  28. merge/resources/calendar/resources/selective_sync/client.py +104 -0
  29. merge/resources/calendar/resources/selective_sync/raw_client.py +103 -0
  30. merge/resources/calendar/types/__init__.py +12 -0
  31. merge/resources/calendar/types/operator_enum.py +58 -0
  32. merge/resources/calendar/types/selective_sync_condition.py +49 -0
  33. merge/resources/calendar/types/selective_sync_condition_list.py +21 -0
  34. merge/resources/calendar/types/selective_sync_condition_operator.py +7 -0
  35. merge/resources/chat/__init__.py +33 -0
  36. merge/resources/chat/client.py +19 -0
  37. merge/resources/chat/resources/__init__.py +3 -0
  38. merge/resources/chat/resources/selective_sync/__init__.py +4 -0
  39. merge/resources/chat/resources/selective_sync/client.py +264 -0
  40. merge/resources/chat/resources/selective_sync/raw_client.py +293 -0
  41. merge/resources/chat/types/__init__.py +30 -0
  42. merge/resources/chat/types/chat_sync_selection.py +50 -0
  43. merge/resources/chat/types/chat_sync_selection_type.py +7 -0
  44. merge/resources/chat/types/chat_sync_selection_type_enum.py +18 -0
  45. merge/resources/chat/types/label_selection.py +43 -0
  46. merge/resources/chat/types/label_selection_list.py +21 -0
  47. merge/resources/chat/types/operator_enum.py +58 -0
  48. merge/resources/chat/types/paginated_chat_sync_selection_list.py +23 -0
  49. merge/resources/chat/types/selective_sync_condition.py +49 -0
  50. merge/resources/chat/types/selective_sync_condition_list.py +21 -0
  51. merge/resources/chat/types/selective_sync_condition_operator.py +7 -0
  52. merge/resources/crm/__init__.py +15 -0
  53. merge/resources/crm/client.py +19 -0
  54. merge/resources/crm/resources/__init__.py +3 -0
  55. merge/resources/crm/resources/selective_sync/__init__.py +4 -0
  56. merge/resources/crm/resources/selective_sync/client.py +104 -0
  57. merge/resources/crm/resources/selective_sync/raw_client.py +103 -0
  58. merge/resources/crm/types/__init__.py +12 -0
  59. merge/resources/crm/types/operator_enum.py +58 -0
  60. merge/resources/crm/types/selective_sync_condition.py +49 -0
  61. merge/resources/crm/types/selective_sync_condition_list.py +21 -0
  62. merge/resources/crm/types/selective_sync_condition_operator.py +7 -0
  63. merge/resources/email/__init__.py +21 -0
  64. merge/resources/email/client.py +19 -0
  65. merge/resources/email/resources/__init__.py +3 -0
  66. merge/resources/email/resources/selective_sync/__init__.py +4 -0
  67. merge/resources/email/resources/selective_sync/client.py +167 -0
  68. merge/resources/email/resources/selective_sync/raw_client.py +184 -0
  69. merge/resources/email/types/__init__.py +18 -0
  70. merge/resources/email/types/label_selection.py +43 -0
  71. merge/resources/email/types/label_selection_list.py +21 -0
  72. merge/resources/email/types/operator_enum.py +58 -0
  73. merge/resources/email/types/selective_sync_condition.py +49 -0
  74. merge/resources/email/types/selective_sync_condition_list.py +21 -0
  75. merge/resources/email/types/selective_sync_condition_operator.py +7 -0
  76. merge/resources/filestorage/__init__.py +33 -0
  77. merge/resources/filestorage/client.py +19 -0
  78. merge/resources/filestorage/resources/__init__.py +3 -0
  79. merge/resources/filestorage/resources/selective_sync/__init__.py +4 -0
  80. merge/resources/filestorage/resources/selective_sync/client.py +264 -0
  81. merge/resources/filestorage/resources/selective_sync/raw_client.py +293 -0
  82. merge/resources/filestorage/types/__init__.py +30 -0
  83. merge/resources/filestorage/types/file_storage_sync_selection.py +50 -0
  84. merge/resources/filestorage/types/file_storage_sync_selection_type.py +7 -0
  85. merge/resources/filestorage/types/file_storage_sync_selection_type_enum.py +26 -0
  86. merge/resources/filestorage/types/label_selection.py +43 -0
  87. merge/resources/filestorage/types/label_selection_list.py +21 -0
  88. merge/resources/filestorage/types/operator_enum.py +58 -0
  89. merge/resources/filestorage/types/paginated_file_storage_sync_selection_list.py +23 -0
  90. merge/resources/filestorage/types/selective_sync_condition.py +49 -0
  91. merge/resources/filestorage/types/selective_sync_condition_list.py +21 -0
  92. merge/resources/filestorage/types/selective_sync_condition_operator.py +7 -0
  93. merge/resources/hris/__init__.py +15 -0
  94. merge/resources/hris/client.py +19 -0
  95. merge/resources/hris/resources/__init__.py +3 -0
  96. merge/resources/hris/resources/selective_sync/__init__.py +4 -0
  97. merge/resources/hris/resources/selective_sync/client.py +104 -0
  98. merge/resources/hris/resources/selective_sync/raw_client.py +103 -0
  99. merge/resources/hris/types/__init__.py +12 -0
  100. merge/resources/hris/types/operator_enum.py +58 -0
  101. merge/resources/hris/types/selective_sync_condition.py +49 -0
  102. merge/resources/hris/types/selective_sync_condition_list.py +21 -0
  103. merge/resources/hris/types/selective_sync_condition_operator.py +7 -0
  104. merge/resources/knowledgebase/__init__.py +27 -0
  105. merge/resources/knowledgebase/client.py +19 -0
  106. merge/resources/knowledgebase/resources/__init__.py +3 -0
  107. merge/resources/knowledgebase/resources/selective_sync/__init__.py +4 -0
  108. merge/resources/knowledgebase/resources/selective_sync/client.py +201 -0
  109. merge/resources/knowledgebase/resources/selective_sync/raw_client.py +212 -0
  110. merge/resources/knowledgebase/types/__init__.py +24 -0
  111. merge/resources/knowledgebase/types/knowledge_base_sync_selection.py +50 -0
  112. merge/resources/knowledgebase/types/knowledge_base_sync_selection_type.py +7 -0
  113. merge/resources/knowledgebase/types/knowledge_base_sync_selection_type_enum.py +18 -0
  114. merge/resources/knowledgebase/types/operator_enum.py +58 -0
  115. merge/resources/knowledgebase/types/paginated_knowledge_base_sync_selection_list.py +23 -0
  116. merge/resources/knowledgebase/types/selective_sync_condition.py +49 -0
  117. merge/resources/knowledgebase/types/selective_sync_condition_list.py +21 -0
  118. merge/resources/knowledgebase/types/selective_sync_condition_operator.py +7 -0
  119. merge/resources/ticketing/__init__.py +15 -0
  120. merge/resources/ticketing/client.py +19 -0
  121. merge/resources/ticketing/resources/__init__.py +3 -0
  122. merge/resources/ticketing/resources/selective_sync/__init__.py +4 -0
  123. merge/resources/ticketing/resources/selective_sync/client.py +104 -0
  124. merge/resources/ticketing/resources/selective_sync/raw_client.py +103 -0
  125. merge/resources/ticketing/types/__init__.py +12 -0
  126. merge/resources/ticketing/types/operator_enum.py +58 -0
  127. merge/resources/ticketing/types/selective_sync_condition.py +49 -0
  128. merge/resources/ticketing/types/selective_sync_condition_list.py +21 -0
  129. merge/resources/ticketing/types/selective_sync_condition_operator.py +7 -0
  130. {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.0.dist-info}/METADATA +2 -1
  131. {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.0.dist-info}/RECORD +133 -45
  132. {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.0.dist-info}/LICENSE.md +0 -0
  133. {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.0.dist-info}/WHEEL +0 -0
@@ -146,6 +146,7 @@ if typing.TYPE_CHECKING:
146
146
  from .note_request_owner import NoteRequestOwner
147
147
  from .note_response import NoteResponse
148
148
  from .object_class_description_request import ObjectClassDescriptionRequest
149
+ from .operator_enum import OperatorEnum
149
150
  from .opportunity import Opportunity
150
151
  from .opportunity_account import OpportunityAccount
151
152
  from .opportunity_owner import OpportunityOwner
@@ -230,6 +231,9 @@ if typing.TYPE_CHECKING:
230
231
  from .request_format_enum import RequestFormatEnum
231
232
  from .response_type_enum import ResponseTypeEnum
232
233
  from .role_enum import RoleEnum
234
+ from .selective_sync_condition import SelectiveSyncCondition
235
+ from .selective_sync_condition_list import SelectiveSyncConditionList
236
+ from .selective_sync_condition_operator import SelectiveSyncConditionOperator
233
237
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
234
238
  from .stage import Stage
235
239
  from .status_fd_5_enum import StatusFd5Enum
@@ -393,6 +397,7 @@ _dynamic_imports: typing.Dict[str, str] = {
393
397
  "NoteRequestOwner": ".note_request_owner",
394
398
  "NoteResponse": ".note_response",
395
399
  "ObjectClassDescriptionRequest": ".object_class_description_request",
400
+ "OperatorEnum": ".operator_enum",
396
401
  "Opportunity": ".opportunity",
397
402
  "OpportunityAccount": ".opportunity_account",
398
403
  "OpportunityOwner": ".opportunity_owner",
@@ -475,6 +480,9 @@ _dynamic_imports: typing.Dict[str, str] = {
475
480
  "RequestFormatEnum": ".request_format_enum",
476
481
  "ResponseTypeEnum": ".response_type_enum",
477
482
  "RoleEnum": ".role_enum",
483
+ "SelectiveSyncCondition": ".selective_sync_condition",
484
+ "SelectiveSyncConditionList": ".selective_sync_condition_list",
485
+ "SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
478
486
  "SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
479
487
  "Stage": ".stage",
480
488
  "StatusFd5Enum": ".status_fd_5_enum",
@@ -662,6 +670,7 @@ __all__ = [
662
670
  "NoteRequestOwner",
663
671
  "NoteResponse",
664
672
  "ObjectClassDescriptionRequest",
673
+ "OperatorEnum",
665
674
  "Opportunity",
666
675
  "OpportunityAccount",
667
676
  "OpportunityOwner",
@@ -744,6 +753,9 @@ __all__ = [
744
753
  "RequestFormatEnum",
745
754
  "ResponseTypeEnum",
746
755
  "RoleEnum",
756
+ "SelectiveSyncCondition",
757
+ "SelectiveSyncConditionList",
758
+ "SelectiveSyncConditionOperator",
747
759
  "SelectiveSyncConfigurationsUsageEnum",
748
760
  "Stage",
749
761
  "StatusFd5Enum",
@@ -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
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .operator_enum import OperatorEnum
6
+
7
+ SelectiveSyncConditionOperator = typing.Union[OperatorEnum, str]
@@ -59,6 +59,8 @@ if typing.TYPE_CHECKING:
59
59
  Issue,
60
60
  IssueStatus,
61
61
  IssueStatusEnum,
62
+ LabelSelection,
63
+ LabelSelectionList,
62
64
  LanguageEnum,
63
65
  LastSyncResultEnum,
64
66
  LinkToken,
@@ -73,6 +75,7 @@ if typing.TYPE_CHECKING:
73
75
  ModelPermissionDeserializerRequest,
74
76
  MultipartFormFieldRequest,
75
77
  MultipartFormFieldRequestEncoding,
78
+ OperatorEnum,
76
79
  PaginatedAccountDetailsAndActionsList,
77
80
  PaginatedAuditLogEventList,
78
81
  PaginatedEmailAddressList,
@@ -99,6 +102,9 @@ if typing.TYPE_CHECKING:
99
102
  RequestFormatEnum,
100
103
  ResponseTypeEnum,
101
104
  RoleEnum,
105
+ SelectiveSyncCondition,
106
+ SelectiveSyncConditionList,
107
+ SelectiveSyncConditionOperator,
102
108
  SelectiveSyncConfigurationsUsageEnum,
103
109
  StatusFd5Enum,
104
110
  SyncStatus,
@@ -152,6 +158,7 @@ if typing.TYPE_CHECKING:
152
158
  passthrough,
153
159
  regenerate_key,
154
160
  scopes,
161
+ selective_sync,
155
162
  sync_status,
156
163
  users,
157
164
  webhook_receivers,
@@ -219,6 +226,8 @@ _dynamic_imports: typing.Dict[str, str] = {
219
226
  "IssueStatus": ".types",
220
227
  "IssueStatusEnum": ".types",
221
228
  "IssuesListRequestStatus": ".resources",
229
+ "LabelSelection": ".types",
230
+ "LabelSelectionList": ".types",
222
231
  "LanguageEnum": ".types",
223
232
  "LastSyncResultEnum": ".types",
224
233
  "LinkToken": ".types",
@@ -238,6 +247,7 @@ _dynamic_imports: typing.Dict[str, str] = {
238
247
  "ModelPermissionDeserializerRequest": ".types",
239
248
  "MultipartFormFieldRequest": ".types",
240
249
  "MultipartFormFieldRequestEncoding": ".types",
250
+ "OperatorEnum": ".types",
241
251
  "PaginatedAccountDetailsAndActionsList": ".types",
242
252
  "PaginatedAuditLogEventList": ".types",
243
253
  "PaginatedEmailAddressList": ".types",
@@ -264,6 +274,9 @@ _dynamic_imports: typing.Dict[str, str] = {
264
274
  "RequestFormatEnum": ".types",
265
275
  "ResponseTypeEnum": ".types",
266
276
  "RoleEnum": ".types",
277
+ "SelectiveSyncCondition": ".types",
278
+ "SelectiveSyncConditionList": ".types",
279
+ "SelectiveSyncConditionOperator": ".types",
267
280
  "SelectiveSyncConfigurationsUsageEnum": ".types",
268
281
  "StatusFd5Enum": ".types",
269
282
  "SyncStatus": ".types",
@@ -300,6 +313,7 @@ _dynamic_imports: typing.Dict[str, str] = {
300
313
  "passthrough": ".resources",
301
314
  "regenerate_key": ".resources",
302
315
  "scopes": ".resources",
316
+ "selective_sync": ".resources",
303
317
  "sync_status": ".resources",
304
318
  "users": ".resources",
305
319
  "webhook_receivers": ".resources",
@@ -390,6 +404,8 @@ __all__ = [
390
404
  "IssueStatus",
391
405
  "IssueStatusEnum",
392
406
  "IssuesListRequestStatus",
407
+ "LabelSelection",
408
+ "LabelSelectionList",
393
409
  "LanguageEnum",
394
410
  "LastSyncResultEnum",
395
411
  "LinkToken",
@@ -409,6 +425,7 @@ __all__ = [
409
425
  "ModelPermissionDeserializerRequest",
410
426
  "MultipartFormFieldRequest",
411
427
  "MultipartFormFieldRequestEncoding",
428
+ "OperatorEnum",
412
429
  "PaginatedAccountDetailsAndActionsList",
413
430
  "PaginatedAuditLogEventList",
414
431
  "PaginatedEmailAddressList",
@@ -435,6 +452,9 @@ __all__ = [
435
452
  "RequestFormatEnum",
436
453
  "ResponseTypeEnum",
437
454
  "RoleEnum",
455
+ "SelectiveSyncCondition",
456
+ "SelectiveSyncConditionList",
457
+ "SelectiveSyncConditionOperator",
438
458
  "SelectiveSyncConfigurationsUsageEnum",
439
459
  "StatusFd5Enum",
440
460
  "SyncStatus",
@@ -471,6 +491,7 @@ __all__ = [
471
491
  "passthrough",
472
492
  "regenerate_key",
473
493
  "scopes",
494
+ "selective_sync",
474
495
  "sync_status",
475
496
  "users",
476
497
  "webhook_receivers",
@@ -34,6 +34,7 @@ if typing.TYPE_CHECKING:
34
34
  from .resources.passthrough.client import PassthroughClient
35
35
  from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
36
36
  from .resources.scopes.client import AsyncScopesClient, ScopesClient
37
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
37
38
  from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
38
39
  from .resources.users.client import AsyncUsersClient, UsersClient
39
40
  from .resources.webhook_receivers.client import AsyncWebhookReceiversClient, WebhookReceiversClient
@@ -64,6 +65,7 @@ class EmailClient:
64
65
  self._messages: typing.Optional[MessagesClient] = None
65
66
  self._passthrough: typing.Optional[PassthroughClient] = None
66
67
  self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
68
+ self._selective_sync: typing.Optional[SelectiveSyncClient] = None
67
69
  self._sync_status: typing.Optional[SyncStatusClient] = None
68
70
  self._force_resync: typing.Optional[ForceResyncClient] = None
69
71
  self._users: typing.Optional[UsersClient] = None
@@ -236,6 +238,14 @@ class EmailClient:
236
238
  self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
237
239
  return self._regenerate_key
238
240
 
241
+ @property
242
+ def selective_sync(self):
243
+ if self._selective_sync is None:
244
+ from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
245
+
246
+ self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
247
+ return self._selective_sync
248
+
239
249
  @property
240
250
  def sync_status(self):
241
251
  if self._sync_status is None:
@@ -292,6 +302,7 @@ class AsyncEmailClient:
292
302
  self._messages: typing.Optional[AsyncMessagesClient] = None
293
303
  self._passthrough: typing.Optional[resources_email_resources_passthrough_client_AsyncPassthroughClient] = None
294
304
  self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
305
+ self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
295
306
  self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
296
307
  self._force_resync: typing.Optional[AsyncForceResyncClient] = None
297
308
  self._users: typing.Optional[AsyncUsersClient] = None
@@ -464,6 +475,14 @@ class AsyncEmailClient:
464
475
  self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
465
476
  return self._regenerate_key
466
477
 
478
+ @property
479
+ def selective_sync(self):
480
+ if self._selective_sync is None:
481
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
482
+
483
+ self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
484
+ return self._selective_sync
485
+
467
486
  @property
468
487
  def sync_status(self):
469
488
  if self._sync_status is None:
@@ -27,6 +27,7 @@ if typing.TYPE_CHECKING:
27
27
  passthrough,
28
28
  regenerate_key,
29
29
  scopes,
30
+ selective_sync,
30
31
  sync_status,
31
32
  users,
32
33
  webhook_receivers,
@@ -79,6 +80,7 @@ _dynamic_imports: typing.Dict[str, str] = {
79
80
  "passthrough": ".passthrough",
80
81
  "regenerate_key": ".regenerate_key",
81
82
  "scopes": ".scopes",
83
+ "selective_sync": ".selective_sync",
82
84
  "sync_status": ".sync_status",
83
85
  "users": ".users",
84
86
  "webhook_receivers": ".webhook_receivers",
@@ -144,6 +146,7 @@ __all__ = [
144
146
  "passthrough",
145
147
  "regenerate_key",
146
148
  "scopes",
149
+ "selective_sync",
147
150
  "sync_status",
148
151
  "users",
149
152
  "webhook_receivers",
@@ -0,0 +1,4 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
@@ -0,0 +1,167 @@
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.label_selection_list import LabelSelectionList
8
+ from ...types.selective_sync_condition_list import SelectiveSyncConditionList
9
+ from .raw_client import AsyncRawSelectiveSyncClient, RawSelectiveSyncClient
10
+
11
+
12
+ class SelectiveSyncClient:
13
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
14
+ self._raw_client = RawSelectiveSyncClient(client_wrapper=client_wrapper)
15
+
16
+ @property
17
+ def with_raw_response(self) -> RawSelectiveSyncClient:
18
+ """
19
+ Retrieves a raw implementation of this client that returns raw responses.
20
+
21
+ Returns
22
+ -------
23
+ RawSelectiveSyncClient
24
+ """
25
+ return self._raw_client
26
+
27
+ def conditions_list(self, *, request_options: typing.Optional[RequestOptions] = None) -> SelectiveSyncConditionList:
28
+ """
29
+ Returns a list of `SelectiveSyncCondition` objects.
30
+
31
+ Parameters
32
+ ----------
33
+ request_options : typing.Optional[RequestOptions]
34
+ Request-specific configuration.
35
+
36
+ Returns
37
+ -------
38
+ SelectiveSyncConditionList
39
+
40
+
41
+ Examples
42
+ --------
43
+ from merge import Merge
44
+
45
+ client = Merge(
46
+ account_token="YOUR_ACCOUNT_TOKEN",
47
+ api_key="YOUR_API_KEY",
48
+ )
49
+ client.email.selective_sync.conditions_list()
50
+ """
51
+ _response = self._raw_client.conditions_list(request_options=request_options)
52
+ return _response.data
53
+
54
+ def labels_list(self, *, request_options: typing.Optional[RequestOptions] = None) -> LabelSelectionList:
55
+ """
56
+ Returns a list of `LabelSelection` objects.
57
+
58
+ Parameters
59
+ ----------
60
+ request_options : typing.Optional[RequestOptions]
61
+ Request-specific configuration.
62
+
63
+ Returns
64
+ -------
65
+ LabelSelectionList
66
+
67
+
68
+ Examples
69
+ --------
70
+ from merge import Merge
71
+
72
+ client = Merge(
73
+ account_token="YOUR_ACCOUNT_TOKEN",
74
+ api_key="YOUR_API_KEY",
75
+ )
76
+ client.email.selective_sync.labels_list()
77
+ """
78
+ _response = self._raw_client.labels_list(request_options=request_options)
79
+ return _response.data
80
+
81
+
82
+ class AsyncSelectiveSyncClient:
83
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
84
+ self._raw_client = AsyncRawSelectiveSyncClient(client_wrapper=client_wrapper)
85
+
86
+ @property
87
+ def with_raw_response(self) -> AsyncRawSelectiveSyncClient:
88
+ """
89
+ Retrieves a raw implementation of this client that returns raw responses.
90
+
91
+ Returns
92
+ -------
93
+ AsyncRawSelectiveSyncClient
94
+ """
95
+ return self._raw_client
96
+
97
+ async def conditions_list(
98
+ self, *, request_options: typing.Optional[RequestOptions] = None
99
+ ) -> SelectiveSyncConditionList:
100
+ """
101
+ Returns a list of `SelectiveSyncCondition` objects.
102
+
103
+ Parameters
104
+ ----------
105
+ request_options : typing.Optional[RequestOptions]
106
+ Request-specific configuration.
107
+
108
+ Returns
109
+ -------
110
+ SelectiveSyncConditionList
111
+
112
+
113
+ Examples
114
+ --------
115
+ import asyncio
116
+
117
+ from merge import AsyncMerge
118
+
119
+ client = AsyncMerge(
120
+ account_token="YOUR_ACCOUNT_TOKEN",
121
+ api_key="YOUR_API_KEY",
122
+ )
123
+
124
+
125
+ async def main() -> None:
126
+ await client.email.selective_sync.conditions_list()
127
+
128
+
129
+ asyncio.run(main())
130
+ """
131
+ _response = await self._raw_client.conditions_list(request_options=request_options)
132
+ return _response.data
133
+
134
+ async def labels_list(self, *, request_options: typing.Optional[RequestOptions] = None) -> LabelSelectionList:
135
+ """
136
+ Returns a list of `LabelSelection` objects.
137
+
138
+ Parameters
139
+ ----------
140
+ request_options : typing.Optional[RequestOptions]
141
+ Request-specific configuration.
142
+
143
+ Returns
144
+ -------
145
+ LabelSelectionList
146
+
147
+
148
+ Examples
149
+ --------
150
+ import asyncio
151
+
152
+ from merge import AsyncMerge
153
+
154
+ client = AsyncMerge(
155
+ account_token="YOUR_ACCOUNT_TOKEN",
156
+ api_key="YOUR_API_KEY",
157
+ )
158
+
159
+
160
+ async def main() -> None:
161
+ await client.email.selective_sync.labels_list()
162
+
163
+
164
+ asyncio.run(main())
165
+ """
166
+ _response = await self._raw_client.labels_list(request_options=request_options)
167
+ return _response.data