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
@@ -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]
@@ -91,6 +91,7 @@ if typing.TYPE_CHECKING:
91
91
  ModelPermissionDeserializerRequest,
92
92
  MultipartFormFieldRequest,
93
93
  MultipartFormFieldRequestEncoding,
94
+ OperatorEnum,
94
95
  PaginatedAccountDetailsAndActionsList,
95
96
  PaginatedAccountList,
96
97
  PaginatedAttachmentList,
@@ -147,6 +148,9 @@ if typing.TYPE_CHECKING:
147
148
  RoleEnum,
148
149
  RoleTicketAccess,
149
150
  RoleTicketActionsItem,
151
+ SelectiveSyncCondition,
152
+ SelectiveSyncConditionList,
153
+ SelectiveSyncConditionOperator,
150
154
  SelectiveSyncConfigurationsUsageEnum,
151
155
  StatusFd5Enum,
152
156
  SyncStatus,
@@ -243,6 +247,7 @@ if typing.TYPE_CHECKING:
243
247
  regenerate_key,
244
248
  roles,
245
249
  scopes,
250
+ selective_sync,
246
251
  sync_status,
247
252
  tags,
248
253
  teams,
@@ -345,6 +350,7 @@ _dynamic_imports: typing.Dict[str, str] = {
345
350
  "ModelPermissionDeserializerRequest": ".types",
346
351
  "MultipartFormFieldRequest": ".types",
347
352
  "MultipartFormFieldRequestEncoding": ".types",
353
+ "OperatorEnum": ".types",
348
354
  "PaginatedAccountDetailsAndActionsList": ".types",
349
355
  "PaginatedAccountList": ".types",
350
356
  "PaginatedAttachmentList": ".types",
@@ -402,6 +408,9 @@ _dynamic_imports: typing.Dict[str, str] = {
402
408
  "RoleEnum": ".types",
403
409
  "RoleTicketAccess": ".types",
404
410
  "RoleTicketActionsItem": ".types",
411
+ "SelectiveSyncCondition": ".types",
412
+ "SelectiveSyncConditionList": ".types",
413
+ "SelectiveSyncConditionOperator": ".types",
405
414
  "SelectiveSyncConfigurationsUsageEnum": ".types",
406
415
  "StatusFd5Enum": ".types",
407
416
  "SyncStatus": ".types",
@@ -485,6 +494,7 @@ _dynamic_imports: typing.Dict[str, str] = {
485
494
  "regenerate_key": ".resources",
486
495
  "roles": ".resources",
487
496
  "scopes": ".resources",
497
+ "selective_sync": ".resources",
488
498
  "sync_status": ".resources",
489
499
  "tags": ".resources",
490
500
  "teams": ".resources",
@@ -610,6 +620,7 @@ __all__ = [
610
620
  "ModelPermissionDeserializerRequest",
611
621
  "MultipartFormFieldRequest",
612
622
  "MultipartFormFieldRequestEncoding",
623
+ "OperatorEnum",
613
624
  "PaginatedAccountDetailsAndActionsList",
614
625
  "PaginatedAccountList",
615
626
  "PaginatedAttachmentList",
@@ -667,6 +678,9 @@ __all__ = [
667
678
  "RoleEnum",
668
679
  "RoleTicketAccess",
669
680
  "RoleTicketActionsItem",
681
+ "SelectiveSyncCondition",
682
+ "SelectiveSyncConditionList",
683
+ "SelectiveSyncConditionOperator",
670
684
  "SelectiveSyncConfigurationsUsageEnum",
671
685
  "StatusFd5Enum",
672
686
  "SyncStatus",
@@ -750,6 +764,7 @@ __all__ = [
750
764
  "regenerate_key",
751
765
  "roles",
752
766
  "scopes",
767
+ "selective_sync",
753
768
  "sync_status",
754
769
  "tags",
755
770
  "teams",
@@ -36,6 +36,7 @@ if typing.TYPE_CHECKING:
36
36
  from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
37
37
  from .resources.roles.client import AsyncRolesClient, RolesClient
38
38
  from .resources.scopes.client import AsyncScopesClient, ScopesClient
39
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
39
40
  from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
40
41
  from .resources.tags.client import AsyncTagsClient, TagsClient
41
42
  from .resources.teams.client import AsyncTeamsClient, TeamsClient
@@ -71,6 +72,7 @@ class TicketingClient:
71
72
  self._projects: typing.Optional[ProjectsClient] = None
72
73
  self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
73
74
  self._roles: typing.Optional[RolesClient] = None
75
+ self._selective_sync: typing.Optional[SelectiveSyncClient] = None
74
76
  self._sync_status: typing.Optional[SyncStatusClient] = None
75
77
  self._force_resync: typing.Optional[ForceResyncClient] = None
76
78
  self._tags: typing.Optional[TagsClient] = None
@@ -262,6 +264,14 @@ class TicketingClient:
262
264
  self._roles = RolesClient(client_wrapper=self._client_wrapper)
263
265
  return self._roles
264
266
 
267
+ @property
268
+ def selective_sync(self):
269
+ if self._selective_sync is None:
270
+ from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
271
+
272
+ self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
273
+ return self._selective_sync
274
+
265
275
  @property
266
276
  def sync_status(self):
267
277
  if self._sync_status is None:
@@ -346,6 +356,7 @@ class AsyncTicketingClient:
346
356
  self._projects: typing.Optional[AsyncProjectsClient] = None
347
357
  self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
348
358
  self._roles: typing.Optional[AsyncRolesClient] = None
359
+ self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
349
360
  self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
350
361
  self._force_resync: typing.Optional[AsyncForceResyncClient] = None
351
362
  self._tags: typing.Optional[AsyncTagsClient] = None
@@ -537,6 +548,14 @@ class AsyncTicketingClient:
537
548
  self._roles = AsyncRolesClient(client_wrapper=self._client_wrapper)
538
549
  return self._roles
539
550
 
551
+ @property
552
+ def selective_sync(self):
553
+ if self._selective_sync is None:
554
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
555
+
556
+ self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
557
+ return self._selective_sync
558
+
540
559
  @property
541
560
  def sync_status(self):
542
561
  if self._sync_status is None:
@@ -29,6 +29,7 @@ if typing.TYPE_CHECKING:
29
29
  regenerate_key,
30
30
  roles,
31
31
  scopes,
32
+ selective_sync,
32
33
  sync_status,
33
34
  tags,
34
35
  teams,
@@ -109,6 +110,7 @@ _dynamic_imports: typing.Dict[str, str] = {
109
110
  "regenerate_key": ".regenerate_key",
110
111
  "roles": ".roles",
111
112
  "scopes": ".scopes",
113
+ "selective_sync": ".selective_sync",
112
114
  "sync_status": ".sync_status",
113
115
  "tags": ".tags",
114
116
  "teams": ".teams",
@@ -186,6 +188,7 @@ __all__ = [
186
188
  "regenerate_key",
187
189
  "roles",
188
190
  "scopes",
191
+ "selective_sync",
189
192
  "sync_status",
190
193
  "tags",
191
194
  "teams",
@@ -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,104 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from .....core.request_options import RequestOptions
7
+ from ...types.selective_sync_condition_list import SelectiveSyncConditionList
8
+ from .raw_client import AsyncRawSelectiveSyncClient, RawSelectiveSyncClient
9
+
10
+
11
+ class SelectiveSyncClient:
12
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
13
+ self._raw_client = RawSelectiveSyncClient(client_wrapper=client_wrapper)
14
+
15
+ @property
16
+ def with_raw_response(self) -> RawSelectiveSyncClient:
17
+ """
18
+ Retrieves a raw implementation of this client that returns raw responses.
19
+
20
+ Returns
21
+ -------
22
+ RawSelectiveSyncClient
23
+ """
24
+ return self._raw_client
25
+
26
+ def conditions_list(self, *, request_options: typing.Optional[RequestOptions] = None) -> SelectiveSyncConditionList:
27
+ """
28
+ Returns a list of `SelectiveSyncCondition` objects.
29
+
30
+ Parameters
31
+ ----------
32
+ request_options : typing.Optional[RequestOptions]
33
+ Request-specific configuration.
34
+
35
+ Returns
36
+ -------
37
+ SelectiveSyncConditionList
38
+
39
+
40
+ Examples
41
+ --------
42
+ from merge import Merge
43
+
44
+ client = Merge(
45
+ account_token="YOUR_ACCOUNT_TOKEN",
46
+ api_key="YOUR_API_KEY",
47
+ )
48
+ client.ticketing.selective_sync.conditions_list()
49
+ """
50
+ _response = self._raw_client.conditions_list(request_options=request_options)
51
+ return _response.data
52
+
53
+
54
+ class AsyncSelectiveSyncClient:
55
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
56
+ self._raw_client = AsyncRawSelectiveSyncClient(client_wrapper=client_wrapper)
57
+
58
+ @property
59
+ def with_raw_response(self) -> AsyncRawSelectiveSyncClient:
60
+ """
61
+ Retrieves a raw implementation of this client that returns raw responses.
62
+
63
+ Returns
64
+ -------
65
+ AsyncRawSelectiveSyncClient
66
+ """
67
+ return self._raw_client
68
+
69
+ async def conditions_list(
70
+ self, *, request_options: typing.Optional[RequestOptions] = None
71
+ ) -> SelectiveSyncConditionList:
72
+ """
73
+ Returns a list of `SelectiveSyncCondition` objects.
74
+
75
+ Parameters
76
+ ----------
77
+ request_options : typing.Optional[RequestOptions]
78
+ Request-specific configuration.
79
+
80
+ Returns
81
+ -------
82
+ SelectiveSyncConditionList
83
+
84
+
85
+ Examples
86
+ --------
87
+ import asyncio
88
+
89
+ from merge import AsyncMerge
90
+
91
+ client = AsyncMerge(
92
+ account_token="YOUR_ACCOUNT_TOKEN",
93
+ api_key="YOUR_API_KEY",
94
+ )
95
+
96
+
97
+ async def main() -> None:
98
+ await client.ticketing.selective_sync.conditions_list()
99
+
100
+
101
+ asyncio.run(main())
102
+ """
103
+ _response = await self._raw_client.conditions_list(request_options=request_options)
104
+ return _response.data
@@ -0,0 +1,103 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from .....core.api_error import ApiError
7
+ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from .....core.http_response import AsyncHttpResponse, HttpResponse
9
+ from .....core.parse_error import ParsingError
10
+ from .....core.request_options import RequestOptions
11
+ from .....core.unchecked_base_model import construct_type
12
+ from ...types.selective_sync_condition_list import SelectiveSyncConditionList
13
+ from pydantic import ValidationError
14
+
15
+
16
+ class RawSelectiveSyncClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._client_wrapper = client_wrapper
19
+
20
+ def conditions_list(
21
+ self, *, request_options: typing.Optional[RequestOptions] = None
22
+ ) -> HttpResponse[SelectiveSyncConditionList]:
23
+ """
24
+ Returns a list of `SelectiveSyncCondition` objects.
25
+
26
+ Parameters
27
+ ----------
28
+ request_options : typing.Optional[RequestOptions]
29
+ Request-specific configuration.
30
+
31
+ Returns
32
+ -------
33
+ HttpResponse[SelectiveSyncConditionList]
34
+
35
+ """
36
+ _response = self._client_wrapper.httpx_client.request(
37
+ "ticketing/v1/selective-sync/conditions",
38
+ method="GET",
39
+ request_options=request_options,
40
+ )
41
+ try:
42
+ if 200 <= _response.status_code < 300:
43
+ _data = typing.cast(
44
+ SelectiveSyncConditionList,
45
+ construct_type(
46
+ type_=SelectiveSyncConditionList, # type: ignore
47
+ object_=_response.json(),
48
+ ),
49
+ )
50
+ return HttpResponse(response=_response, data=_data)
51
+ _response_json = _response.json()
52
+ except JSONDecodeError:
53
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
54
+ except ValidationError as e:
55
+ raise ParsingError(
56
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
57
+ )
58
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
59
+
60
+
61
+ class AsyncRawSelectiveSyncClient:
62
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
63
+ self._client_wrapper = client_wrapper
64
+
65
+ async def conditions_list(
66
+ self, *, request_options: typing.Optional[RequestOptions] = None
67
+ ) -> AsyncHttpResponse[SelectiveSyncConditionList]:
68
+ """
69
+ Returns a list of `SelectiveSyncCondition` objects.
70
+
71
+ Parameters
72
+ ----------
73
+ request_options : typing.Optional[RequestOptions]
74
+ Request-specific configuration.
75
+
76
+ Returns
77
+ -------
78
+ AsyncHttpResponse[SelectiveSyncConditionList]
79
+
80
+ """
81
+ _response = await self._client_wrapper.httpx_client.request(
82
+ "ticketing/v1/selective-sync/conditions",
83
+ method="GET",
84
+ request_options=request_options,
85
+ )
86
+ try:
87
+ if 200 <= _response.status_code < 300:
88
+ _data = typing.cast(
89
+ SelectiveSyncConditionList,
90
+ construct_type(
91
+ type_=SelectiveSyncConditionList, # type: ignore
92
+ object_=_response.json(),
93
+ ),
94
+ )
95
+ return AsyncHttpResponse(response=_response, data=_data)
96
+ _response_json = _response.json()
97
+ except JSONDecodeError:
98
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
99
+ except ValidationError as e:
100
+ raise ParsingError(
101
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
102
+ )
103
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -92,6 +92,7 @@ if typing.TYPE_CHECKING:
92
92
  from .model_permission_deserializer_request import ModelPermissionDeserializerRequest
93
93
  from .multipart_form_field_request import MultipartFormFieldRequest
94
94
  from .multipart_form_field_request_encoding import MultipartFormFieldRequestEncoding
95
+ from .operator_enum import OperatorEnum
95
96
  from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
96
97
  from .paginated_account_list import PaginatedAccountList
97
98
  from .paginated_attachment_list import PaginatedAttachmentList
@@ -148,6 +149,9 @@ if typing.TYPE_CHECKING:
148
149
  from .role_enum import RoleEnum
149
150
  from .role_ticket_access import RoleTicketAccess
150
151
  from .role_ticket_actions_item import RoleTicketActionsItem
152
+ from .selective_sync_condition import SelectiveSyncCondition
153
+ from .selective_sync_condition_list import SelectiveSyncConditionList
154
+ from .selective_sync_condition_operator import SelectiveSyncConditionOperator
151
155
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
152
156
  from .status_fd_5_enum import StatusFd5Enum
153
157
  from .sync_status import SyncStatus
@@ -281,6 +285,7 @@ _dynamic_imports: typing.Dict[str, str] = {
281
285
  "ModelPermissionDeserializerRequest": ".model_permission_deserializer_request",
282
286
  "MultipartFormFieldRequest": ".multipart_form_field_request",
283
287
  "MultipartFormFieldRequestEncoding": ".multipart_form_field_request_encoding",
288
+ "OperatorEnum": ".operator_enum",
284
289
  "PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
285
290
  "PaginatedAccountList": ".paginated_account_list",
286
291
  "PaginatedAttachmentList": ".paginated_attachment_list",
@@ -337,6 +342,9 @@ _dynamic_imports: typing.Dict[str, str] = {
337
342
  "RoleEnum": ".role_enum",
338
343
  "RoleTicketAccess": ".role_ticket_access",
339
344
  "RoleTicketActionsItem": ".role_ticket_actions_item",
345
+ "SelectiveSyncCondition": ".selective_sync_condition",
346
+ "SelectiveSyncConditionList": ".selective_sync_condition_list",
347
+ "SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
340
348
  "SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
341
349
  "StatusFd5Enum": ".status_fd_5_enum",
342
350
  "SyncStatus": ".sync_status",
@@ -494,6 +502,7 @@ __all__ = [
494
502
  "ModelPermissionDeserializerRequest",
495
503
  "MultipartFormFieldRequest",
496
504
  "MultipartFormFieldRequestEncoding",
505
+ "OperatorEnum",
497
506
  "PaginatedAccountDetailsAndActionsList",
498
507
  "PaginatedAccountList",
499
508
  "PaginatedAttachmentList",
@@ -550,6 +559,9 @@ __all__ = [
550
559
  "RoleEnum",
551
560
  "RoleTicketAccess",
552
561
  "RoleTicketActionsItem",
562
+ "SelectiveSyncCondition",
563
+ "SelectiveSyncConditionList",
564
+ "SelectiveSyncConditionOperator",
553
565
  "SelectiveSyncConfigurationsUsageEnum",
554
566
  "StatusFd5Enum",
555
567
  "SyncStatus",
@@ -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]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mergepythonclient
3
- Version: 4.1.0
3
+ Version: 4.2.0
4
4
  Summary:
5
5
  Requires-Python: >=3.10,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -281,5 +281,6 @@ while response.next is not None:
281
281
 
282
282
 
283
283
 
284
+
284
285
 
285
286