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.
Files changed (163) hide show
  1. merge/core/client_wrapper.py +2 -2
  2. merge/resources/accounting/__init__.py +21 -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 +18 -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/accounting/types/sync_status.py +7 -0
  14. merge/resources/accounting/types/sync_status_reason_enum.py +20 -0
  15. merge/resources/accounting/types/sync_status_sync_status_reason.py +7 -0
  16. merge/resources/ats/__init__.py +21 -0
  17. merge/resources/ats/client.py +19 -0
  18. merge/resources/ats/resources/__init__.py +3 -0
  19. merge/resources/ats/resources/selective_sync/__init__.py +4 -0
  20. merge/resources/ats/resources/selective_sync/client.py +104 -0
  21. merge/resources/ats/resources/selective_sync/raw_client.py +103 -0
  22. merge/resources/ats/types/__init__.py +18 -0
  23. merge/resources/ats/types/operator_enum.py +58 -0
  24. merge/resources/ats/types/selective_sync_condition.py +49 -0
  25. merge/resources/ats/types/selective_sync_condition_list.py +21 -0
  26. merge/resources/ats/types/selective_sync_condition_operator.py +7 -0
  27. merge/resources/ats/types/sync_status.py +7 -0
  28. merge/resources/ats/types/sync_status_reason_enum.py +20 -0
  29. merge/resources/ats/types/sync_status_sync_status_reason.py +7 -0
  30. merge/resources/calendar/__init__.py +21 -0
  31. merge/resources/calendar/client.py +19 -0
  32. merge/resources/calendar/resources/__init__.py +3 -0
  33. merge/resources/calendar/resources/selective_sync/__init__.py +4 -0
  34. merge/resources/calendar/resources/selective_sync/client.py +104 -0
  35. merge/resources/calendar/resources/selective_sync/raw_client.py +103 -0
  36. merge/resources/calendar/types/__init__.py +18 -0
  37. merge/resources/calendar/types/operator_enum.py +58 -0
  38. merge/resources/calendar/types/selective_sync_condition.py +49 -0
  39. merge/resources/calendar/types/selective_sync_condition_list.py +21 -0
  40. merge/resources/calendar/types/selective_sync_condition_operator.py +7 -0
  41. merge/resources/calendar/types/sync_status.py +7 -0
  42. merge/resources/calendar/types/sync_status_reason_enum.py +20 -0
  43. merge/resources/calendar/types/sync_status_sync_status_reason.py +7 -0
  44. merge/resources/chat/__init__.py +39 -0
  45. merge/resources/chat/client.py +19 -0
  46. merge/resources/chat/resources/__init__.py +3 -0
  47. merge/resources/chat/resources/selective_sync/__init__.py +4 -0
  48. merge/resources/chat/resources/selective_sync/client.py +264 -0
  49. merge/resources/chat/resources/selective_sync/raw_client.py +293 -0
  50. merge/resources/chat/types/__init__.py +36 -0
  51. merge/resources/chat/types/chat_sync_selection.py +50 -0
  52. merge/resources/chat/types/chat_sync_selection_type.py +7 -0
  53. merge/resources/chat/types/chat_sync_selection_type_enum.py +18 -0
  54. merge/resources/chat/types/label_selection.py +43 -0
  55. merge/resources/chat/types/label_selection_list.py +21 -0
  56. merge/resources/chat/types/operator_enum.py +58 -0
  57. merge/resources/chat/types/paginated_chat_sync_selection_list.py +23 -0
  58. merge/resources/chat/types/selective_sync_condition.py +49 -0
  59. merge/resources/chat/types/selective_sync_condition_list.py +21 -0
  60. merge/resources/chat/types/selective_sync_condition_operator.py +7 -0
  61. merge/resources/chat/types/sync_status.py +7 -0
  62. merge/resources/chat/types/sync_status_reason_enum.py +20 -0
  63. merge/resources/chat/types/sync_status_sync_status_reason.py +7 -0
  64. merge/resources/crm/__init__.py +21 -0
  65. merge/resources/crm/client.py +19 -0
  66. merge/resources/crm/resources/__init__.py +3 -0
  67. merge/resources/crm/resources/selective_sync/__init__.py +4 -0
  68. merge/resources/crm/resources/selective_sync/client.py +104 -0
  69. merge/resources/crm/resources/selective_sync/raw_client.py +103 -0
  70. merge/resources/crm/types/__init__.py +18 -0
  71. merge/resources/crm/types/operator_enum.py +58 -0
  72. merge/resources/crm/types/selective_sync_condition.py +49 -0
  73. merge/resources/crm/types/selective_sync_condition_list.py +21 -0
  74. merge/resources/crm/types/selective_sync_condition_operator.py +7 -0
  75. merge/resources/crm/types/sync_status.py +7 -0
  76. merge/resources/crm/types/sync_status_reason_enum.py +20 -0
  77. merge/resources/crm/types/sync_status_sync_status_reason.py +7 -0
  78. merge/resources/email/__init__.py +27 -0
  79. merge/resources/email/client.py +19 -0
  80. merge/resources/email/resources/__init__.py +3 -0
  81. merge/resources/email/resources/selective_sync/__init__.py +4 -0
  82. merge/resources/email/resources/selective_sync/client.py +167 -0
  83. merge/resources/email/resources/selective_sync/raw_client.py +184 -0
  84. merge/resources/email/types/__init__.py +24 -0
  85. merge/resources/email/types/label_selection.py +43 -0
  86. merge/resources/email/types/label_selection_list.py +21 -0
  87. merge/resources/email/types/operator_enum.py +58 -0
  88. merge/resources/email/types/selective_sync_condition.py +49 -0
  89. merge/resources/email/types/selective_sync_condition_list.py +21 -0
  90. merge/resources/email/types/selective_sync_condition_operator.py +7 -0
  91. merge/resources/email/types/sync_status.py +7 -0
  92. merge/resources/email/types/sync_status_reason_enum.py +20 -0
  93. merge/resources/email/types/sync_status_sync_status_reason.py +7 -0
  94. merge/resources/filestorage/__init__.py +39 -0
  95. merge/resources/filestorage/client.py +19 -0
  96. merge/resources/filestorage/resources/__init__.py +3 -0
  97. merge/resources/filestorage/resources/selective_sync/__init__.py +4 -0
  98. merge/resources/filestorage/resources/selective_sync/client.py +264 -0
  99. merge/resources/filestorage/resources/selective_sync/raw_client.py +293 -0
  100. merge/resources/filestorage/types/__init__.py +36 -0
  101. merge/resources/filestorage/types/file_storage_sync_selection.py +50 -0
  102. merge/resources/filestorage/types/file_storage_sync_selection_type.py +7 -0
  103. merge/resources/filestorage/types/file_storage_sync_selection_type_enum.py +26 -0
  104. merge/resources/filestorage/types/label_selection.py +43 -0
  105. merge/resources/filestorage/types/label_selection_list.py +21 -0
  106. merge/resources/filestorage/types/operator_enum.py +58 -0
  107. merge/resources/filestorage/types/paginated_file_storage_sync_selection_list.py +23 -0
  108. merge/resources/filestorage/types/selective_sync_condition.py +49 -0
  109. merge/resources/filestorage/types/selective_sync_condition_list.py +21 -0
  110. merge/resources/filestorage/types/selective_sync_condition_operator.py +7 -0
  111. merge/resources/filestorage/types/sync_status.py +7 -0
  112. merge/resources/filestorage/types/sync_status_reason_enum.py +20 -0
  113. merge/resources/filestorage/types/sync_status_sync_status_reason.py +7 -0
  114. merge/resources/hris/__init__.py +21 -0
  115. merge/resources/hris/client.py +19 -0
  116. merge/resources/hris/resources/__init__.py +3 -0
  117. merge/resources/hris/resources/selective_sync/__init__.py +4 -0
  118. merge/resources/hris/resources/selective_sync/client.py +104 -0
  119. merge/resources/hris/resources/selective_sync/raw_client.py +103 -0
  120. merge/resources/hris/types/__init__.py +18 -0
  121. merge/resources/hris/types/operator_enum.py +58 -0
  122. merge/resources/hris/types/selective_sync_condition.py +49 -0
  123. merge/resources/hris/types/selective_sync_condition_list.py +21 -0
  124. merge/resources/hris/types/selective_sync_condition_operator.py +7 -0
  125. merge/resources/hris/types/sync_status.py +7 -0
  126. merge/resources/hris/types/sync_status_reason_enum.py +20 -0
  127. merge/resources/hris/types/sync_status_sync_status_reason.py +7 -0
  128. merge/resources/knowledgebase/__init__.py +33 -0
  129. merge/resources/knowledgebase/client.py +19 -0
  130. merge/resources/knowledgebase/resources/__init__.py +3 -0
  131. merge/resources/knowledgebase/resources/selective_sync/__init__.py +4 -0
  132. merge/resources/knowledgebase/resources/selective_sync/client.py +201 -0
  133. merge/resources/knowledgebase/resources/selective_sync/raw_client.py +212 -0
  134. merge/resources/knowledgebase/types/__init__.py +30 -0
  135. merge/resources/knowledgebase/types/knowledge_base_sync_selection.py +50 -0
  136. merge/resources/knowledgebase/types/knowledge_base_sync_selection_type.py +7 -0
  137. merge/resources/knowledgebase/types/knowledge_base_sync_selection_type_enum.py +18 -0
  138. merge/resources/knowledgebase/types/operator_enum.py +58 -0
  139. merge/resources/knowledgebase/types/paginated_knowledge_base_sync_selection_list.py +23 -0
  140. merge/resources/knowledgebase/types/selective_sync_condition.py +49 -0
  141. merge/resources/knowledgebase/types/selective_sync_condition_list.py +21 -0
  142. merge/resources/knowledgebase/types/selective_sync_condition_operator.py +7 -0
  143. merge/resources/knowledgebase/types/sync_status.py +7 -0
  144. merge/resources/knowledgebase/types/sync_status_reason_enum.py +20 -0
  145. merge/resources/knowledgebase/types/sync_status_sync_status_reason.py +7 -0
  146. merge/resources/ticketing/__init__.py +21 -0
  147. merge/resources/ticketing/client.py +19 -0
  148. merge/resources/ticketing/resources/__init__.py +3 -0
  149. merge/resources/ticketing/resources/selective_sync/__init__.py +4 -0
  150. merge/resources/ticketing/resources/selective_sync/client.py +104 -0
  151. merge/resources/ticketing/resources/selective_sync/raw_client.py +103 -0
  152. merge/resources/ticketing/types/__init__.py +18 -0
  153. merge/resources/ticketing/types/operator_enum.py +58 -0
  154. merge/resources/ticketing/types/selective_sync_condition.py +49 -0
  155. merge/resources/ticketing/types/selective_sync_condition_list.py +21 -0
  156. merge/resources/ticketing/types/selective_sync_condition_operator.py +7 -0
  157. merge/resources/ticketing/types/sync_status.py +7 -0
  158. merge/resources/ticketing/types/sync_status_reason_enum.py +20 -0
  159. merge/resources/ticketing/types/sync_status_sync_status_reason.py +7 -0
  160. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/METADATA +2 -1
  161. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/RECORD +163 -55
  162. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/LICENSE.md +0 -0
  163. {mergepythonclient-4.0.0.dist-info → mergepythonclient-4.2.0.dist-info}/WHEEL +0 -0
@@ -60,6 +60,8 @@ if typing.TYPE_CHECKING:
60
60
  from .issue import Issue
61
61
  from .issue_status import IssueStatus
62
62
  from .issue_status_enum import IssueStatusEnum
63
+ from .label_selection import LabelSelection
64
+ from .label_selection_list import LabelSelectionList
63
65
  from .language_enum import LanguageEnum
64
66
  from .last_sync_result_enum import LastSyncResultEnum
65
67
  from .link_token import LinkToken
@@ -74,6 +76,7 @@ if typing.TYPE_CHECKING:
74
76
  from .model_permission_deserializer_request import ModelPermissionDeserializerRequest
75
77
  from .multipart_form_field_request import MultipartFormFieldRequest
76
78
  from .multipart_form_field_request_encoding import MultipartFormFieldRequestEncoding
79
+ from .operator_enum import OperatorEnum
77
80
  from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
78
81
  from .paginated_audit_log_event_list import PaginatedAuditLogEventList
79
82
  from .paginated_email_address_list import PaginatedEmailAddressList
@@ -100,11 +103,16 @@ if typing.TYPE_CHECKING:
100
103
  from .request_format_enum import RequestFormatEnum
101
104
  from .response_type_enum import ResponseTypeEnum
102
105
  from .role_enum import RoleEnum
106
+ from .selective_sync_condition import SelectiveSyncCondition
107
+ from .selective_sync_condition_list import SelectiveSyncConditionList
108
+ from .selective_sync_condition_operator import SelectiveSyncConditionOperator
103
109
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
104
110
  from .status_fd_5_enum import StatusFd5Enum
105
111
  from .sync_status import SyncStatus
106
112
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
113
+ from .sync_status_reason_enum import SyncStatusReasonEnum
107
114
  from .sync_status_status import SyncStatusStatus
115
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
108
116
  from .user import User
109
117
  from .user_field_mappings import UserFieldMappings
110
118
  from .user_type import UserType
@@ -165,6 +173,8 @@ _dynamic_imports: typing.Dict[str, str] = {
165
173
  "Issue": ".issue",
166
174
  "IssueStatus": ".issue_status",
167
175
  "IssueStatusEnum": ".issue_status_enum",
176
+ "LabelSelection": ".label_selection",
177
+ "LabelSelectionList": ".label_selection_list",
168
178
  "LanguageEnum": ".language_enum",
169
179
  "LastSyncResultEnum": ".last_sync_result_enum",
170
180
  "LinkToken": ".link_token",
@@ -179,6 +189,7 @@ _dynamic_imports: typing.Dict[str, str] = {
179
189
  "ModelPermissionDeserializerRequest": ".model_permission_deserializer_request",
180
190
  "MultipartFormFieldRequest": ".multipart_form_field_request",
181
191
  "MultipartFormFieldRequestEncoding": ".multipart_form_field_request_encoding",
192
+ "OperatorEnum": ".operator_enum",
182
193
  "PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
183
194
  "PaginatedAuditLogEventList": ".paginated_audit_log_event_list",
184
195
  "PaginatedEmailAddressList": ".paginated_email_address_list",
@@ -205,11 +216,16 @@ _dynamic_imports: typing.Dict[str, str] = {
205
216
  "RequestFormatEnum": ".request_format_enum",
206
217
  "ResponseTypeEnum": ".response_type_enum",
207
218
  "RoleEnum": ".role_enum",
219
+ "SelectiveSyncCondition": ".selective_sync_condition",
220
+ "SelectiveSyncConditionList": ".selective_sync_condition_list",
221
+ "SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
208
222
  "SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
209
223
  "StatusFd5Enum": ".status_fd_5_enum",
210
224
  "SyncStatus": ".sync_status",
211
225
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
226
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
212
227
  "SyncStatusStatus": ".sync_status_status",
228
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
213
229
  "User": ".user",
214
230
  "UserFieldMappings": ".user_field_mappings",
215
231
  "UserType": ".user_type",
@@ -294,6 +310,8 @@ __all__ = [
294
310
  "Issue",
295
311
  "IssueStatus",
296
312
  "IssueStatusEnum",
313
+ "LabelSelection",
314
+ "LabelSelectionList",
297
315
  "LanguageEnum",
298
316
  "LastSyncResultEnum",
299
317
  "LinkToken",
@@ -308,6 +326,7 @@ __all__ = [
308
326
  "ModelPermissionDeserializerRequest",
309
327
  "MultipartFormFieldRequest",
310
328
  "MultipartFormFieldRequestEncoding",
329
+ "OperatorEnum",
311
330
  "PaginatedAccountDetailsAndActionsList",
312
331
  "PaginatedAuditLogEventList",
313
332
  "PaginatedEmailAddressList",
@@ -334,11 +353,16 @@ __all__ = [
334
353
  "RequestFormatEnum",
335
354
  "ResponseTypeEnum",
336
355
  "RoleEnum",
356
+ "SelectiveSyncCondition",
357
+ "SelectiveSyncConditionList",
358
+ "SelectiveSyncConditionOperator",
337
359
  "SelectiveSyncConfigurationsUsageEnum",
338
360
  "StatusFd5Enum",
339
361
  "SyncStatus",
340
362
  "SyncStatusLastSyncResult",
363
+ "SyncStatusReasonEnum",
341
364
  "SyncStatusStatus",
365
+ "SyncStatusSyncStatusReason",
342
366
  "User",
343
367
  "UserFieldMappings",
344
368
  "UserType",
@@ -0,0 +1,43 @@
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
+
9
+
10
+ class LabelSelection(UncheckedBaseModel):
11
+ remote_id: typing.Optional[str] = pydantic.Field(default=None)
12
+ """
13
+ The label's ID in the third-party system.
14
+ """
15
+
16
+ name: typing.Optional[str] = pydantic.Field(default=None)
17
+ """
18
+ The label's name.
19
+ """
20
+
21
+ label_type: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ The label's type.
24
+ """
25
+
26
+ parent_remote_id: typing.Optional[str] = pydantic.Field(default=None)
27
+ """
28
+ The parent label's ID in the third-party system. Null for top-level labels.
29
+ """
30
+
31
+ parent_name: typing.Optional[str] = pydantic.Field(default=None)
32
+ """
33
+ The parent label's name. Null for top-level labels.
34
+ """
35
+
36
+ if IS_PYDANTIC_V2:
37
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
38
+ else:
39
+
40
+ class Config:
41
+ frozen = True
42
+ smart_union = True
43
+ 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 .label_selection import LabelSelection
9
+
10
+
11
+ class LabelSelectionList(UncheckedBaseModel):
12
+ results: typing.List[LabelSelection]
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,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]
@@ -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]
@@ -57,6 +57,9 @@ if typing.TYPE_CHECKING:
57
57
  FileRequestPermissionsItem,
58
58
  FileStorageFileResponse,
59
59
  FileStorageFolderResponse,
60
+ FileStorageSyncSelection,
61
+ FileStorageSyncSelectionType,
62
+ FileStorageSyncSelectionTypeEnum,
60
63
  Folder,
61
64
  FolderDrive,
62
65
  FolderParentFolder,
@@ -75,6 +78,8 @@ if typing.TYPE_CHECKING:
75
78
  Issue,
76
79
  IssueStatus,
77
80
  IssueStatusEnum,
81
+ LabelSelection,
82
+ LabelSelectionList,
78
83
  LanguageEnum,
79
84
  LastSyncResultEnum,
80
85
  LinkToken,
@@ -86,11 +91,13 @@ if typing.TYPE_CHECKING:
86
91
  ModelPermissionDeserializerRequest,
87
92
  MultipartFormFieldRequest,
88
93
  MultipartFormFieldRequestEncoding,
94
+ OperatorEnum,
89
95
  PaginatedAccountDetailsAndActionsList,
90
96
  PaginatedAuditLogEventList,
91
97
  PaginatedDownloadRequestMetaList,
92
98
  PaginatedDriveList,
93
99
  PaginatedFileList,
100
+ PaginatedFileStorageSyncSelectionList,
94
101
  PaginatedFolderList,
95
102
  PaginatedGroupList,
96
103
  PaginatedIssueList,
@@ -119,11 +126,16 @@ if typing.TYPE_CHECKING:
119
126
  ResponseTypeEnum,
120
127
  RoleEnum,
121
128
  RolesEnum,
129
+ SelectiveSyncCondition,
130
+ SelectiveSyncConditionList,
131
+ SelectiveSyncConditionOperator,
122
132
  SelectiveSyncConfigurationsUsageEnum,
123
133
  StatusFd5Enum,
124
134
  SyncStatus,
125
135
  SyncStatusLastSyncResult,
136
+ SyncStatusReasonEnum,
126
137
  SyncStatusStatus,
138
+ SyncStatusSyncStatusReason,
127
139
  TypeEnum,
128
140
  User,
129
141
  ValidationProblemSource,
@@ -161,6 +173,7 @@ if typing.TYPE_CHECKING:
161
173
  passthrough,
162
174
  regenerate_key,
163
175
  scopes,
176
+ selective_sync,
164
177
  sync_status,
165
178
  users,
166
179
  webhook_receivers,
@@ -217,6 +230,9 @@ _dynamic_imports: typing.Dict[str, str] = {
217
230
  "FileRequestPermissionsItem": ".types",
218
231
  "FileStorageFileResponse": ".types",
219
232
  "FileStorageFolderResponse": ".types",
233
+ "FileStorageSyncSelection": ".types",
234
+ "FileStorageSyncSelectionType": ".types",
235
+ "FileStorageSyncSelectionTypeEnum": ".types",
220
236
  "FilesDownloadRequestMetaListRequestOrderBy": ".resources",
221
237
  "FilesListRequestExpandItem": ".resources",
222
238
  "FilesListRequestOrderBy": ".resources",
@@ -244,6 +260,8 @@ _dynamic_imports: typing.Dict[str, str] = {
244
260
  "IssueStatus": ".types",
245
261
  "IssueStatusEnum": ".types",
246
262
  "IssuesListRequestStatus": ".resources",
263
+ "LabelSelection": ".types",
264
+ "LabelSelectionList": ".types",
247
265
  "LanguageEnum": ".types",
248
266
  "LastSyncResultEnum": ".types",
249
267
  "LinkToken": ".types",
@@ -256,11 +274,13 @@ _dynamic_imports: typing.Dict[str, str] = {
256
274
  "ModelPermissionDeserializerRequest": ".types",
257
275
  "MultipartFormFieldRequest": ".types",
258
276
  "MultipartFormFieldRequestEncoding": ".types",
277
+ "OperatorEnum": ".types",
259
278
  "PaginatedAccountDetailsAndActionsList": ".types",
260
279
  "PaginatedAuditLogEventList": ".types",
261
280
  "PaginatedDownloadRequestMetaList": ".types",
262
281
  "PaginatedDriveList": ".types",
263
282
  "PaginatedFileList": ".types",
283
+ "PaginatedFileStorageSyncSelectionList": ".types",
264
284
  "PaginatedFolderList": ".types",
265
285
  "PaginatedGroupList": ".types",
266
286
  "PaginatedIssueList": ".types",
@@ -289,11 +309,16 @@ _dynamic_imports: typing.Dict[str, str] = {
289
309
  "ResponseTypeEnum": ".types",
290
310
  "RoleEnum": ".types",
291
311
  "RolesEnum": ".types",
312
+ "SelectiveSyncCondition": ".types",
313
+ "SelectiveSyncConditionList": ".types",
314
+ "SelectiveSyncConditionOperator": ".types",
292
315
  "SelectiveSyncConfigurationsUsageEnum": ".types",
293
316
  "StatusFd5Enum": ".types",
294
317
  "SyncStatus": ".types",
295
318
  "SyncStatusLastSyncResult": ".types",
319
+ "SyncStatusReasonEnum": ".types",
296
320
  "SyncStatusStatus": ".types",
321
+ "SyncStatusSyncStatusReason": ".types",
297
322
  "TypeEnum": ".types",
298
323
  "User": ".types",
299
324
  "ValidationProblemSource": ".types",
@@ -318,6 +343,7 @@ _dynamic_imports: typing.Dict[str, str] = {
318
343
  "passthrough": ".resources",
319
344
  "regenerate_key": ".resources",
320
345
  "scopes": ".resources",
346
+ "selective_sync": ".resources",
321
347
  "sync_status": ".resources",
322
348
  "users": ".resources",
323
349
  "webhook_receivers": ".resources",
@@ -397,6 +423,9 @@ __all__ = [
397
423
  "FileRequestPermissionsItem",
398
424
  "FileStorageFileResponse",
399
425
  "FileStorageFolderResponse",
426
+ "FileStorageSyncSelection",
427
+ "FileStorageSyncSelectionType",
428
+ "FileStorageSyncSelectionTypeEnum",
400
429
  "FilesDownloadRequestMetaListRequestOrderBy",
401
430
  "FilesListRequestExpandItem",
402
431
  "FilesListRequestOrderBy",
@@ -424,6 +453,8 @@ __all__ = [
424
453
  "IssueStatus",
425
454
  "IssueStatusEnum",
426
455
  "IssuesListRequestStatus",
456
+ "LabelSelection",
457
+ "LabelSelectionList",
427
458
  "LanguageEnum",
428
459
  "LastSyncResultEnum",
429
460
  "LinkToken",
@@ -436,11 +467,13 @@ __all__ = [
436
467
  "ModelPermissionDeserializerRequest",
437
468
  "MultipartFormFieldRequest",
438
469
  "MultipartFormFieldRequestEncoding",
470
+ "OperatorEnum",
439
471
  "PaginatedAccountDetailsAndActionsList",
440
472
  "PaginatedAuditLogEventList",
441
473
  "PaginatedDownloadRequestMetaList",
442
474
  "PaginatedDriveList",
443
475
  "PaginatedFileList",
476
+ "PaginatedFileStorageSyncSelectionList",
444
477
  "PaginatedFolderList",
445
478
  "PaginatedGroupList",
446
479
  "PaginatedIssueList",
@@ -469,11 +502,16 @@ __all__ = [
469
502
  "ResponseTypeEnum",
470
503
  "RoleEnum",
471
504
  "RolesEnum",
505
+ "SelectiveSyncCondition",
506
+ "SelectiveSyncConditionList",
507
+ "SelectiveSyncConditionOperator",
472
508
  "SelectiveSyncConfigurationsUsageEnum",
473
509
  "StatusFd5Enum",
474
510
  "SyncStatus",
475
511
  "SyncStatusLastSyncResult",
512
+ "SyncStatusReasonEnum",
476
513
  "SyncStatusStatus",
514
+ "SyncStatusSyncStatusReason",
477
515
  "TypeEnum",
478
516
  "User",
479
517
  "ValidationProblemSource",
@@ -498,6 +536,7 @@ __all__ = [
498
536
  "passthrough",
499
537
  "regenerate_key",
500
538
  "scopes",
539
+ "selective_sync",
501
540
  "sync_status",
502
541
  "users",
503
542
  "webhook_receivers",
@@ -33,6 +33,7 @@ if typing.TYPE_CHECKING:
33
33
  from .resources.passthrough.client import PassthroughClient
34
34
  from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
35
35
  from .resources.scopes.client import AsyncScopesClient, ScopesClient
36
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
36
37
  from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
37
38
  from .resources.users.client import AsyncUsersClient, UsersClient
38
39
  from .resources.webhook_receivers.client import AsyncWebhookReceiversClient, WebhookReceiversClient
@@ -62,6 +63,7 @@ class FilestorageClient:
62
63
  self._linked_accounts: typing.Optional[LinkedAccountsClient] = None
63
64
  self._passthrough: typing.Optional[PassthroughClient] = None
64
65
  self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
66
+ self._selective_sync: typing.Optional[SelectiveSyncClient] = None
65
67
  self._sync_status: typing.Optional[SyncStatusClient] = None
66
68
  self._force_resync: typing.Optional[ForceResyncClient] = None
67
69
  self._users: typing.Optional[UsersClient] = None
@@ -226,6 +228,14 @@ class FilestorageClient:
226
228
  self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
227
229
  return self._regenerate_key
228
230
 
231
+ @property
232
+ def selective_sync(self):
233
+ if self._selective_sync is None:
234
+ from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
235
+
236
+ self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
237
+ return self._selective_sync
238
+
229
239
  @property
230
240
  def sync_status(self):
231
241
  if self._sync_status is None:
@@ -283,6 +293,7 @@ class AsyncFilestorageClient:
283
293
  resources_filestorage_resources_passthrough_client_AsyncPassthroughClient
284
294
  ] = None
285
295
  self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
296
+ self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
286
297
  self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
287
298
  self._force_resync: typing.Optional[AsyncForceResyncClient] = None
288
299
  self._users: typing.Optional[AsyncUsersClient] = None
@@ -447,6 +458,14 @@ class AsyncFilestorageClient:
447
458
  self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
448
459
  return self._regenerate_key
449
460
 
461
+ @property
462
+ def selective_sync(self):
463
+ if self._selective_sync is None:
464
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
465
+
466
+ self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
467
+ return self._selective_sync
468
+
450
469
  @property
451
470
  def sync_status(self):
452
471
  if self._sync_status is None:
@@ -26,6 +26,7 @@ if typing.TYPE_CHECKING:
26
26
  passthrough,
27
27
  regenerate_key,
28
28
  scopes,
29
+ selective_sync,
29
30
  sync_status,
30
31
  users,
31
32
  webhook_receivers,
@@ -72,6 +73,7 @@ _dynamic_imports: typing.Dict[str, str] = {
72
73
  "passthrough": ".passthrough",
73
74
  "regenerate_key": ".regenerate_key",
74
75
  "scopes": ".scopes",
76
+ "selective_sync": ".selective_sync",
75
77
  "sync_status": ".sync_status",
76
78
  "users": ".users",
77
79
  "webhook_receivers": ".webhook_receivers",
@@ -130,6 +132,7 @@ __all__ = [
130
132
  "passthrough",
131
133
  "regenerate_key",
132
134
  "scopes",
135
+ "selective_sync",
133
136
  "sync_status",
134
137
  "users",
135
138
  "webhook_receivers",
@@ -0,0 +1,4 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+