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
@@ -43,6 +43,7 @@ if typing.TYPE_CHECKING:
43
43
  from .resources.reject_reasons.client import AsyncRejectReasonsClient, RejectReasonsClient
44
44
  from .resources.scopes.client import AsyncScopesClient, ScopesClient
45
45
  from .resources.scorecards.client import AsyncScorecardsClient, ScorecardsClient
46
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
46
47
  from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
47
48
  from .resources.tags.client import AsyncTagsClient, TagsClient
48
49
  from .resources.users.client import AsyncUsersClient, UsersClient
@@ -83,6 +84,7 @@ class AtsClient:
83
84
  self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
84
85
  self._reject_reasons: typing.Optional[RejectReasonsClient] = None
85
86
  self._scorecards: typing.Optional[ScorecardsClient] = None
87
+ self._selective_sync: typing.Optional[SelectiveSyncClient] = None
86
88
  self._sync_status: typing.Optional[SyncStatusClient] = None
87
89
  self._force_resync: typing.Optional[ForceResyncClient] = None
88
90
  self._tags: typing.Optional[TagsClient] = None
@@ -328,6 +330,14 @@ class AtsClient:
328
330
  self._scorecards = ScorecardsClient(client_wrapper=self._client_wrapper)
329
331
  return self._scorecards
330
332
 
333
+ @property
334
+ def selective_sync(self):
335
+ if self._selective_sync is None:
336
+ from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
337
+
338
+ self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
339
+ return self._selective_sync
340
+
331
341
  @property
332
342
  def sync_status(self):
333
343
  if self._sync_status is None:
@@ -401,6 +411,7 @@ class AsyncAtsClient:
401
411
  self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
402
412
  self._reject_reasons: typing.Optional[AsyncRejectReasonsClient] = None
403
413
  self._scorecards: typing.Optional[AsyncScorecardsClient] = None
414
+ self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
404
415
  self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
405
416
  self._force_resync: typing.Optional[AsyncForceResyncClient] = None
406
417
  self._tags: typing.Optional[AsyncTagsClient] = None
@@ -646,6 +657,14 @@ class AsyncAtsClient:
646
657
  self._scorecards = AsyncScorecardsClient(client_wrapper=self._client_wrapper)
647
658
  return self._scorecards
648
659
 
660
+ @property
661
+ def selective_sync(self):
662
+ if self._selective_sync is None:
663
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
664
+
665
+ self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
666
+ return self._selective_sync
667
+
649
668
  @property
650
669
  def sync_status(self):
651
670
  if self._sync_status is None:
@@ -36,6 +36,7 @@ if typing.TYPE_CHECKING:
36
36
  reject_reasons,
37
37
  scopes,
38
38
  scorecards,
39
+ selective_sync,
39
40
  sync_status,
40
41
  tags,
41
42
  users,
@@ -127,6 +128,7 @@ _dynamic_imports: typing.Dict[str, str] = {
127
128
  "reject_reasons": ".reject_reasons",
128
129
  "scopes": ".scopes",
129
130
  "scorecards": ".scorecards",
131
+ "selective_sync": ".selective_sync",
130
132
  "sync_status": ".sync_status",
131
133
  "tags": ".tags",
132
134
  "users": ".users",
@@ -213,6 +215,7 @@ __all__ = [
213
215
  "reject_reasons",
214
216
  "scopes",
215
217
  "scorecards",
218
+ "selective_sync",
216
219
  "sync_status",
217
220
  "tags",
218
221
  "users",
@@ -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.ats.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.ats.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
+ "ats/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
+ "ats/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)
@@ -140,6 +140,7 @@ if typing.TYPE_CHECKING:
140
140
  from .offer_status import OfferStatus
141
141
  from .offer_status_enum import OfferStatusEnum
142
142
  from .office import Office
143
+ from .operator_enum import OperatorEnum
143
144
  from .overall_recommendation_enum import OverallRecommendationEnum
144
145
  from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
145
146
  from .paginated_activity_list import PaginatedActivityList
@@ -216,6 +217,9 @@ if typing.TYPE_CHECKING:
216
217
  from .screening_question_options_item import ScreeningQuestionOptionsItem
217
218
  from .screening_question_type import ScreeningQuestionType
218
219
  from .screening_question_type_enum import ScreeningQuestionTypeEnum
220
+ from .selective_sync_condition import SelectiveSyncCondition
221
+ from .selective_sync_condition_list import SelectiveSyncConditionList
222
+ from .selective_sync_condition_operator import SelectiveSyncConditionOperator
219
223
  from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
220
224
  from .status_fd_5_enum import StatusFd5Enum
221
225
  from .sync_status import SyncStatus
@@ -367,6 +371,7 @@ _dynamic_imports: typing.Dict[str, str] = {
367
371
  "OfferStatus": ".offer_status",
368
372
  "OfferStatusEnum": ".offer_status_enum",
369
373
  "Office": ".office",
374
+ "OperatorEnum": ".operator_enum",
370
375
  "OverallRecommendationEnum": ".overall_recommendation_enum",
371
376
  "PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
372
377
  "PaginatedActivityList": ".paginated_activity_list",
@@ -443,6 +448,9 @@ _dynamic_imports: typing.Dict[str, str] = {
443
448
  "ScreeningQuestionOptionsItem": ".screening_question_options_item",
444
449
  "ScreeningQuestionType": ".screening_question_type",
445
450
  "ScreeningQuestionTypeEnum": ".screening_question_type_enum",
451
+ "SelectiveSyncCondition": ".selective_sync_condition",
452
+ "SelectiveSyncConditionList": ".selective_sync_condition_list",
453
+ "SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
446
454
  "SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
447
455
  "StatusFd5Enum": ".status_fd_5_enum",
448
456
  "SyncStatus": ".sync_status",
@@ -618,6 +626,7 @@ __all__ = [
618
626
  "OfferStatus",
619
627
  "OfferStatusEnum",
620
628
  "Office",
629
+ "OperatorEnum",
621
630
  "OverallRecommendationEnum",
622
631
  "PaginatedAccountDetailsAndActionsList",
623
632
  "PaginatedActivityList",
@@ -694,6 +703,9 @@ __all__ = [
694
703
  "ScreeningQuestionOptionsItem",
695
704
  "ScreeningQuestionType",
696
705
  "ScreeningQuestionTypeEnum",
706
+ "SelectiveSyncCondition",
707
+ "SelectiveSyncConditionList",
708
+ "SelectiveSyncConditionOperator",
697
709
  "SelectiveSyncConfigurationsUsageEnum",
698
710
  "StatusFd5Enum",
699
711
  "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]
@@ -77,6 +77,7 @@ if typing.TYPE_CHECKING:
77
77
  ModelPermissionDeserializerRequest,
78
78
  MultipartFormFieldRequest,
79
79
  MultipartFormFieldRequestEncoding,
80
+ OperatorEnum,
80
81
  PaginatedAccountDetailsAndActionsList,
81
82
  PaginatedAuditLogEventList,
82
83
  PaginatedCalendarList,
@@ -108,6 +109,9 @@ if typing.TYPE_CHECKING:
108
109
  RoleEnum,
109
110
  RolesEnum,
110
111
  RsvpEnum,
112
+ SelectiveSyncCondition,
113
+ SelectiveSyncConditionList,
114
+ SelectiveSyncConditionOperator,
111
115
  SelectiveSyncConfigurationsUsageEnum,
112
116
  Series,
113
117
  SeriesFieldMappings,
@@ -153,6 +157,7 @@ if typing.TYPE_CHECKING:
153
157
  passthrough,
154
158
  regenerate_key,
155
159
  scopes,
160
+ selective_sync,
156
161
  series,
157
162
  sync_status,
158
163
  users,
@@ -240,6 +245,7 @@ _dynamic_imports: typing.Dict[str, str] = {
240
245
  "ModelPermissionDeserializerRequest": ".types",
241
246
  "MultipartFormFieldRequest": ".types",
242
247
  "MultipartFormFieldRequestEncoding": ".types",
248
+ "OperatorEnum": ".types",
243
249
  "PaginatedAccountDetailsAndActionsList": ".types",
244
250
  "PaginatedAuditLogEventList": ".types",
245
251
  "PaginatedCalendarList": ".types",
@@ -271,6 +277,9 @@ _dynamic_imports: typing.Dict[str, str] = {
271
277
  "RoleEnum": ".types",
272
278
  "RolesEnum": ".types",
273
279
  "RsvpEnum": ".types",
280
+ "SelectiveSyncCondition": ".types",
281
+ "SelectiveSyncConditionList": ".types",
282
+ "SelectiveSyncConditionOperator": ".types",
274
283
  "SelectiveSyncConfigurationsUsageEnum": ".types",
275
284
  "Series": ".types",
276
285
  "SeriesFieldMappings": ".types",
@@ -303,6 +312,7 @@ _dynamic_imports: typing.Dict[str, str] = {
303
312
  "passthrough": ".resources",
304
313
  "regenerate_key": ".resources",
305
314
  "scopes": ".resources",
315
+ "selective_sync": ".resources",
306
316
  "series": ".resources",
307
317
  "sync_status": ".resources",
308
318
  "users": ".resources",
@@ -413,6 +423,7 @@ __all__ = [
413
423
  "ModelPermissionDeserializerRequest",
414
424
  "MultipartFormFieldRequest",
415
425
  "MultipartFormFieldRequestEncoding",
426
+ "OperatorEnum",
416
427
  "PaginatedAccountDetailsAndActionsList",
417
428
  "PaginatedAuditLogEventList",
418
429
  "PaginatedCalendarList",
@@ -444,6 +455,9 @@ __all__ = [
444
455
  "RoleEnum",
445
456
  "RolesEnum",
446
457
  "RsvpEnum",
458
+ "SelectiveSyncCondition",
459
+ "SelectiveSyncConditionList",
460
+ "SelectiveSyncConditionOperator",
447
461
  "SelectiveSyncConfigurationsUsageEnum",
448
462
  "Series",
449
463
  "SeriesFieldMappings",
@@ -476,6 +490,7 @@ __all__ = [
476
490
  "passthrough",
477
491
  "regenerate_key",
478
492
  "scopes",
493
+ "selective_sync",
479
494
  "series",
480
495
  "sync_status",
481
496
  "users",
@@ -32,6 +32,7 @@ if typing.TYPE_CHECKING:
32
32
  from .resources.passthrough.client import PassthroughClient
33
33
  from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
34
34
  from .resources.scopes.client import AsyncScopesClient, ScopesClient
35
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
35
36
  from .resources.series.client import AsyncSeriesClient, SeriesClient
36
37
  from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
37
38
  from .resources.users.client import AsyncUsersClient, UsersClient
@@ -61,6 +62,7 @@ class CalendarClient:
61
62
  self._linked_accounts: typing.Optional[LinkedAccountsClient] = None
62
63
  self._passthrough: typing.Optional[PassthroughClient] = None
63
64
  self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
65
+ self._selective_sync: typing.Optional[SelectiveSyncClient] = None
64
66
  self._series: typing.Optional[SeriesClient] = None
65
67
  self._sync_status: typing.Optional[SyncStatusClient] = None
66
68
  self._force_resync: typing.Optional[ForceResyncClient] = None
@@ -218,6 +220,14 @@ class CalendarClient:
218
220
  self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
219
221
  return self._regenerate_key
220
222
 
223
+ @property
224
+ def selective_sync(self):
225
+ if self._selective_sync is None:
226
+ from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
227
+
228
+ self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
229
+ return self._selective_sync
230
+
221
231
  @property
222
232
  def series(self):
223
233
  if self._series is None:
@@ -282,6 +292,7 @@ class AsyncCalendarClient:
282
292
  None
283
293
  )
284
294
  self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
295
+ self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
285
296
  self._series: typing.Optional[AsyncSeriesClient] = None
286
297
  self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
287
298
  self._force_resync: typing.Optional[AsyncForceResyncClient] = None
@@ -439,6 +450,14 @@ class AsyncCalendarClient:
439
450
  self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
440
451
  return self._regenerate_key
441
452
 
453
+ @property
454
+ def selective_sync(self):
455
+ if self._selective_sync is None:
456
+ from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
457
+
458
+ self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
459
+ return self._selective_sync
460
+
442
461
  @property
443
462
  def series(self):
444
463
  if self._series is None:
@@ -25,6 +25,7 @@ if typing.TYPE_CHECKING:
25
25
  passthrough,
26
26
  regenerate_key,
27
27
  scopes,
28
+ selective_sync,
28
29
  series,
29
30
  sync_status,
30
31
  users,
@@ -71,6 +72,7 @@ _dynamic_imports: typing.Dict[str, str] = {
71
72
  "passthrough": ".passthrough",
72
73
  "regenerate_key": ".regenerate_key",
73
74
  "scopes": ".scopes",
75
+ "selective_sync": ".selective_sync",
74
76
  "series": ".series",
75
77
  "sync_status": ".sync_status",
76
78
  "users": ".users",
@@ -129,6 +131,7 @@ __all__ = [
129
131
  "passthrough",
130
132
  "regenerate_key",
131
133
  "scopes",
134
+ "selective_sync",
132
135
  "series",
133
136
  "sync_status",
134
137
  "users",
@@ -0,0 +1,4 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+