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
@@ -0,0 +1,293 @@
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.label_selection_list import LabelSelectionList
13
+ from ...types.paginated_chat_sync_selection_list import PaginatedChatSyncSelectionList
14
+ from ...types.selective_sync_condition_list import SelectiveSyncConditionList
15
+ from pydantic import ValidationError
16
+
17
+
18
+ class RawSelectiveSyncClient:
19
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
20
+ self._client_wrapper = client_wrapper
21
+
22
+ def conditions_list(
23
+ self, *, request_options: typing.Optional[RequestOptions] = None
24
+ ) -> HttpResponse[SelectiveSyncConditionList]:
25
+ """
26
+ Returns a list of `SelectiveSyncCondition` objects.
27
+
28
+ Parameters
29
+ ----------
30
+ request_options : typing.Optional[RequestOptions]
31
+ Request-specific configuration.
32
+
33
+ Returns
34
+ -------
35
+ HttpResponse[SelectiveSyncConditionList]
36
+
37
+ """
38
+ _response = self._client_wrapper.httpx_client.request(
39
+ "chat/v1/selective-sync/conditions",
40
+ method="GET",
41
+ request_options=request_options,
42
+ )
43
+ try:
44
+ if 200 <= _response.status_code < 300:
45
+ _data = typing.cast(
46
+ SelectiveSyncConditionList,
47
+ construct_type(
48
+ type_=SelectiveSyncConditionList, # type: ignore
49
+ object_=_response.json(),
50
+ ),
51
+ )
52
+ return HttpResponse(response=_response, data=_data)
53
+ _response_json = _response.json()
54
+ except JSONDecodeError:
55
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
56
+ except ValidationError as e:
57
+ raise ParsingError(
58
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
59
+ )
60
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
61
+
62
+ def labels_list(
63
+ self, *, request_options: typing.Optional[RequestOptions] = None
64
+ ) -> HttpResponse[LabelSelectionList]:
65
+ """
66
+ Returns a list of `LabelSelection` objects.
67
+
68
+ Parameters
69
+ ----------
70
+ request_options : typing.Optional[RequestOptions]
71
+ Request-specific configuration.
72
+
73
+ Returns
74
+ -------
75
+ HttpResponse[LabelSelectionList]
76
+
77
+ """
78
+ _response = self._client_wrapper.httpx_client.request(
79
+ "chat/v1/selective-sync/labels",
80
+ method="GET",
81
+ request_options=request_options,
82
+ )
83
+ try:
84
+ if 200 <= _response.status_code < 300:
85
+ _data = typing.cast(
86
+ LabelSelectionList,
87
+ construct_type(
88
+ type_=LabelSelectionList, # type: ignore
89
+ object_=_response.json(),
90
+ ),
91
+ )
92
+ return HttpResponse(response=_response, data=_data)
93
+ _response_json = _response.json()
94
+ except JSONDecodeError:
95
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
96
+ except ValidationError as e:
97
+ raise ParsingError(
98
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
99
+ )
100
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
101
+
102
+ def selections_list(
103
+ self,
104
+ *,
105
+ cursor: typing.Optional[str] = None,
106
+ page_size: typing.Optional[int] = None,
107
+ request_options: typing.Optional[RequestOptions] = None,
108
+ ) -> HttpResponse[PaginatedChatSyncSelectionList]:
109
+ """
110
+ Returns a list of `ChatSyncSelection` objects.
111
+
112
+ Parameters
113
+ ----------
114
+ cursor : typing.Optional[str]
115
+ The pagination cursor value.
116
+
117
+ page_size : typing.Optional[int]
118
+ Number of results to return per page. The maximum limit is 100.
119
+
120
+ request_options : typing.Optional[RequestOptions]
121
+ Request-specific configuration.
122
+
123
+ Returns
124
+ -------
125
+ HttpResponse[PaginatedChatSyncSelectionList]
126
+
127
+ """
128
+ _response = self._client_wrapper.httpx_client.request(
129
+ "chat/v1/selective-sync/selections",
130
+ method="GET",
131
+ params={
132
+ "cursor": cursor,
133
+ "page_size": page_size,
134
+ },
135
+ request_options=request_options,
136
+ )
137
+ try:
138
+ if 200 <= _response.status_code < 300:
139
+ _data = typing.cast(
140
+ PaginatedChatSyncSelectionList,
141
+ construct_type(
142
+ type_=PaginatedChatSyncSelectionList, # type: ignore
143
+ object_=_response.json(),
144
+ ),
145
+ )
146
+ return HttpResponse(response=_response, data=_data)
147
+ _response_json = _response.json()
148
+ except JSONDecodeError:
149
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
150
+ except ValidationError as e:
151
+ raise ParsingError(
152
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
153
+ )
154
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
155
+
156
+
157
+ class AsyncRawSelectiveSyncClient:
158
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
159
+ self._client_wrapper = client_wrapper
160
+
161
+ async def conditions_list(
162
+ self, *, request_options: typing.Optional[RequestOptions] = None
163
+ ) -> AsyncHttpResponse[SelectiveSyncConditionList]:
164
+ """
165
+ Returns a list of `SelectiveSyncCondition` objects.
166
+
167
+ Parameters
168
+ ----------
169
+ request_options : typing.Optional[RequestOptions]
170
+ Request-specific configuration.
171
+
172
+ Returns
173
+ -------
174
+ AsyncHttpResponse[SelectiveSyncConditionList]
175
+
176
+ """
177
+ _response = await self._client_wrapper.httpx_client.request(
178
+ "chat/v1/selective-sync/conditions",
179
+ method="GET",
180
+ request_options=request_options,
181
+ )
182
+ try:
183
+ if 200 <= _response.status_code < 300:
184
+ _data = typing.cast(
185
+ SelectiveSyncConditionList,
186
+ construct_type(
187
+ type_=SelectiveSyncConditionList, # type: ignore
188
+ object_=_response.json(),
189
+ ),
190
+ )
191
+ return AsyncHttpResponse(response=_response, data=_data)
192
+ _response_json = _response.json()
193
+ except JSONDecodeError:
194
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
195
+ except ValidationError as e:
196
+ raise ParsingError(
197
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
198
+ )
199
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
200
+
201
+ async def labels_list(
202
+ self, *, request_options: typing.Optional[RequestOptions] = None
203
+ ) -> AsyncHttpResponse[LabelSelectionList]:
204
+ """
205
+ Returns a list of `LabelSelection` objects.
206
+
207
+ Parameters
208
+ ----------
209
+ request_options : typing.Optional[RequestOptions]
210
+ Request-specific configuration.
211
+
212
+ Returns
213
+ -------
214
+ AsyncHttpResponse[LabelSelectionList]
215
+
216
+ """
217
+ _response = await self._client_wrapper.httpx_client.request(
218
+ "chat/v1/selective-sync/labels",
219
+ method="GET",
220
+ request_options=request_options,
221
+ )
222
+ try:
223
+ if 200 <= _response.status_code < 300:
224
+ _data = typing.cast(
225
+ LabelSelectionList,
226
+ construct_type(
227
+ type_=LabelSelectionList, # type: ignore
228
+ object_=_response.json(),
229
+ ),
230
+ )
231
+ return AsyncHttpResponse(response=_response, data=_data)
232
+ _response_json = _response.json()
233
+ except JSONDecodeError:
234
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
235
+ except ValidationError as e:
236
+ raise ParsingError(
237
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
238
+ )
239
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
240
+
241
+ async def selections_list(
242
+ self,
243
+ *,
244
+ cursor: typing.Optional[str] = None,
245
+ page_size: typing.Optional[int] = None,
246
+ request_options: typing.Optional[RequestOptions] = None,
247
+ ) -> AsyncHttpResponse[PaginatedChatSyncSelectionList]:
248
+ """
249
+ Returns a list of `ChatSyncSelection` objects.
250
+
251
+ Parameters
252
+ ----------
253
+ cursor : typing.Optional[str]
254
+ The pagination cursor value.
255
+
256
+ page_size : typing.Optional[int]
257
+ Number of results to return per page. The maximum limit is 100.
258
+
259
+ request_options : typing.Optional[RequestOptions]
260
+ Request-specific configuration.
261
+
262
+ Returns
263
+ -------
264
+ AsyncHttpResponse[PaginatedChatSyncSelectionList]
265
+
266
+ """
267
+ _response = await self._client_wrapper.httpx_client.request(
268
+ "chat/v1/selective-sync/selections",
269
+ method="GET",
270
+ params={
271
+ "cursor": cursor,
272
+ "page_size": page_size,
273
+ },
274
+ request_options=request_options,
275
+ )
276
+ try:
277
+ if 200 <= _response.status_code < 300:
278
+ _data = typing.cast(
279
+ PaginatedChatSyncSelectionList,
280
+ construct_type(
281
+ type_=PaginatedChatSyncSelectionList, # type: ignore
282
+ object_=_response.json(),
283
+ ),
284
+ )
285
+ return AsyncHttpResponse(response=_response, data=_data)
286
+ _response_json = _response.json()
287
+ except JSONDecodeError:
288
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
289
+ except ValidationError as e:
290
+ raise ParsingError(
291
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
292
+ )
293
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -23,6 +23,9 @@ if typing.TYPE_CHECKING:
23
23
  from .available_actions import AvailableActions
24
24
  from .categories_enum import CategoriesEnum
25
25
  from .category_enum import CategoryEnum
26
+ from .chat_sync_selection import ChatSyncSelection
27
+ from .chat_sync_selection_type import ChatSyncSelectionType
28
+ from .chat_sync_selection_type_enum import ChatSyncSelectionTypeEnum
26
29
  from .common_model_scope_api import CommonModelScopeApi
27
30
  from .common_model_scopes_body_request import CommonModelScopesBodyRequest
28
31
  from .completed_account_initial_screen_enum import CompletedAccountInitialScreenEnum
@@ -59,6 +62,8 @@ if typing.TYPE_CHECKING:
59
62
  from .issue import Issue
60
63
  from .issue_status import IssueStatus
61
64
  from .issue_status_enum import IssueStatusEnum
65
+ from .label_selection import LabelSelection
66
+ from .label_selection_list import LabelSelectionList
62
67
  from .language_enum import LanguageEnum
63
68
  from .last_sync_result_enum import LastSyncResultEnum
64
69
  from .link_token import LinkToken
@@ -73,8 +78,10 @@ if typing.TYPE_CHECKING:
73
78
  from .model_permission_deserializer_request import ModelPermissionDeserializerRequest
74
79
  from .multipart_form_field_request import MultipartFormFieldRequest
75
80
  from .multipart_form_field_request_encoding import MultipartFormFieldRequestEncoding
81
+ from .operator_enum import OperatorEnum
76
82
  from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
77
83
  from .paginated_audit_log_event_list import PaginatedAuditLogEventList
84
+ from .paginated_chat_sync_selection_list import PaginatedChatSyncSelectionList
78
85
  from .paginated_conversation_list import PaginatedConversationList
79
86
  from .paginated_group_list import PaginatedGroupList
80
87
  from .paginated_issue_list import PaginatedIssueList
@@ -95,11 +102,16 @@ if typing.TYPE_CHECKING:
95
102
  from .request_format_enum import RequestFormatEnum
96
103
  from .response_type_enum import ResponseTypeEnum
97
104
  from .role_enum import RoleEnum
105
+ from .selective_sync_condition import SelectiveSyncCondition
106
+ from .selective_sync_condition_list import SelectiveSyncConditionList
107
+ from .selective_sync_condition_operator import SelectiveSyncConditionOperator
98
108
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
99
109
  from .status_fd_5_enum import StatusFd5Enum
100
110
  from .sync_status import SyncStatus
101
111
  from .sync_status_last_sync_result import SyncStatusLastSyncResult
112
+ from .sync_status_reason_enum import SyncStatusReasonEnum
102
113
  from .sync_status_status import SyncStatusStatus
114
+ from .sync_status_sync_status_reason import SyncStatusSyncStatusReason
103
115
  from .type_enum import TypeEnum
104
116
  from .user import User
105
117
  from .user_field_mappings import UserFieldMappings
@@ -125,6 +137,9 @@ _dynamic_imports: typing.Dict[str, str] = {
125
137
  "AvailableActions": ".available_actions",
126
138
  "CategoriesEnum": ".categories_enum",
127
139
  "CategoryEnum": ".category_enum",
140
+ "ChatSyncSelection": ".chat_sync_selection",
141
+ "ChatSyncSelectionType": ".chat_sync_selection_type",
142
+ "ChatSyncSelectionTypeEnum": ".chat_sync_selection_type_enum",
128
143
  "CommonModelScopeApi": ".common_model_scope_api",
129
144
  "CommonModelScopesBodyRequest": ".common_model_scopes_body_request",
130
145
  "CompletedAccountInitialScreenEnum": ".completed_account_initial_screen_enum",
@@ -159,6 +174,8 @@ _dynamic_imports: typing.Dict[str, str] = {
159
174
  "Issue": ".issue",
160
175
  "IssueStatus": ".issue_status",
161
176
  "IssueStatusEnum": ".issue_status_enum",
177
+ "LabelSelection": ".label_selection",
178
+ "LabelSelectionList": ".label_selection_list",
162
179
  "LanguageEnum": ".language_enum",
163
180
  "LastSyncResultEnum": ".last_sync_result_enum",
164
181
  "LinkToken": ".link_token",
@@ -173,8 +190,10 @@ _dynamic_imports: typing.Dict[str, str] = {
173
190
  "ModelPermissionDeserializerRequest": ".model_permission_deserializer_request",
174
191
  "MultipartFormFieldRequest": ".multipart_form_field_request",
175
192
  "MultipartFormFieldRequestEncoding": ".multipart_form_field_request_encoding",
193
+ "OperatorEnum": ".operator_enum",
176
194
  "PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
177
195
  "PaginatedAuditLogEventList": ".paginated_audit_log_event_list",
196
+ "PaginatedChatSyncSelectionList": ".paginated_chat_sync_selection_list",
178
197
  "PaginatedConversationList": ".paginated_conversation_list",
179
198
  "PaginatedGroupList": ".paginated_group_list",
180
199
  "PaginatedIssueList": ".paginated_issue_list",
@@ -195,11 +214,16 @@ _dynamic_imports: typing.Dict[str, str] = {
195
214
  "RequestFormatEnum": ".request_format_enum",
196
215
  "ResponseTypeEnum": ".response_type_enum",
197
216
  "RoleEnum": ".role_enum",
217
+ "SelectiveSyncCondition": ".selective_sync_condition",
218
+ "SelectiveSyncConditionList": ".selective_sync_condition_list",
219
+ "SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
198
220
  "SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
199
221
  "StatusFd5Enum": ".status_fd_5_enum",
200
222
  "SyncStatus": ".sync_status",
201
223
  "SyncStatusLastSyncResult": ".sync_status_last_sync_result",
224
+ "SyncStatusReasonEnum": ".sync_status_reason_enum",
202
225
  "SyncStatusStatus": ".sync_status_status",
226
+ "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason",
203
227
  "TypeEnum": ".type_enum",
204
228
  "User": ".user",
205
229
  "UserFieldMappings": ".user_field_mappings",
@@ -249,6 +273,9 @@ __all__ = [
249
273
  "AvailableActions",
250
274
  "CategoriesEnum",
251
275
  "CategoryEnum",
276
+ "ChatSyncSelection",
277
+ "ChatSyncSelectionType",
278
+ "ChatSyncSelectionTypeEnum",
252
279
  "CommonModelScopeApi",
253
280
  "CommonModelScopesBodyRequest",
254
281
  "CompletedAccountInitialScreenEnum",
@@ -283,6 +310,8 @@ __all__ = [
283
310
  "Issue",
284
311
  "IssueStatus",
285
312
  "IssueStatusEnum",
313
+ "LabelSelection",
314
+ "LabelSelectionList",
286
315
  "LanguageEnum",
287
316
  "LastSyncResultEnum",
288
317
  "LinkToken",
@@ -297,8 +326,10 @@ __all__ = [
297
326
  "ModelPermissionDeserializerRequest",
298
327
  "MultipartFormFieldRequest",
299
328
  "MultipartFormFieldRequestEncoding",
329
+ "OperatorEnum",
300
330
  "PaginatedAccountDetailsAndActionsList",
301
331
  "PaginatedAuditLogEventList",
332
+ "PaginatedChatSyncSelectionList",
302
333
  "PaginatedConversationList",
303
334
  "PaginatedGroupList",
304
335
  "PaginatedIssueList",
@@ -319,11 +350,16 @@ __all__ = [
319
350
  "RequestFormatEnum",
320
351
  "ResponseTypeEnum",
321
352
  "RoleEnum",
353
+ "SelectiveSyncCondition",
354
+ "SelectiveSyncConditionList",
355
+ "SelectiveSyncConditionOperator",
322
356
  "SelectiveSyncConfigurationsUsageEnum",
323
357
  "StatusFd5Enum",
324
358
  "SyncStatus",
325
359
  "SyncStatusLastSyncResult",
360
+ "SyncStatusReasonEnum",
326
361
  "SyncStatusStatus",
362
+ "SyncStatusSyncStatusReason",
327
363
  "TypeEnum",
328
364
  "User",
329
365
  "UserFieldMappings",
@@ -0,0 +1,50 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+ from ....core.pydantic_utilities import IS_PYDANTIC_V2
8
+ from ....core.unchecked_base_model import UncheckedBaseModel
9
+ from .chat_sync_selection_type import ChatSyncSelectionType
10
+
11
+
12
+ class ChatSyncSelection(UncheckedBaseModel):
13
+ id: typing.Optional[str] = pydantic.Field(default=None)
14
+ """
15
+ The Merge ID of the selected object.
16
+ """
17
+
18
+ remote_id: typing.Optional[str] = pydantic.Field(default=None)
19
+ """
20
+ The third-party API ID of the selected object.
21
+ """
22
+
23
+ name: typing.Optional[str] = pydantic.Field(default=None)
24
+ """
25
+ The name of the selected object.
26
+ """
27
+
28
+ type: ChatSyncSelectionType = pydantic.Field()
29
+ """
30
+ The type of the selected object.
31
+ """
32
+
33
+ url: typing.Optional[str] = pydantic.Field(default=None)
34
+ """
35
+ A link to the selected object in the third party.
36
+ """
37
+
38
+ created_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
39
+ """
40
+ When the selection was made.
41
+ """
42
+
43
+ if IS_PYDANTIC_V2:
44
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
45
+ else:
46
+
47
+ class Config:
48
+ frozen = True
49
+ smart_union = True
50
+ 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 .chat_sync_selection_type_enum import ChatSyncSelectionTypeEnum
6
+
7
+ ChatSyncSelectionType = typing.Union[ChatSyncSelectionTypeEnum, str]
@@ -0,0 +1,18 @@
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 ChatSyncSelectionTypeEnum(enum.StrEnum):
11
+ CHAT_GROUP = "CHAT_GROUP"
12
+ CONVERSATION = "CONVERSATION"
13
+
14
+ def visit(self, chat_group: typing.Callable[[], T_Result], conversation: typing.Callable[[], T_Result]) -> T_Result:
15
+ if self is ChatSyncSelectionTypeEnum.CHAT_GROUP:
16
+ return chat_group()
17
+ if self is ChatSyncSelectionTypeEnum.CONVERSATION:
18
+ return conversation()
@@ -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,23 @@
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 .chat_sync_selection import ChatSyncSelection
9
+
10
+
11
+ class PaginatedChatSyncSelectionList(UncheckedBaseModel):
12
+ next: typing.Optional[str] = None
13
+ previous: typing.Optional[str] = None
14
+ results: typing.Optional[typing.List[ChatSyncSelection]] = None
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow