mergepythonclient 4.1.0__py3-none-any.whl → 4.2.1__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.
- merge/core/client_wrapper.py +2 -2
- merge/resources/accounting/__init__.py +15 -0
- merge/resources/accounting/client.py +19 -0
- merge/resources/accounting/resources/__init__.py +3 -0
- merge/resources/accounting/resources/selective_sync/__init__.py +4 -0
- merge/resources/accounting/resources/selective_sync/client.py +104 -0
- merge/resources/accounting/resources/selective_sync/raw_client.py +103 -0
- merge/resources/accounting/types/__init__.py +12 -0
- merge/resources/accounting/types/operator_enum.py +58 -0
- merge/resources/accounting/types/selective_sync_condition.py +49 -0
- merge/resources/accounting/types/selective_sync_condition_list.py +21 -0
- merge/resources/accounting/types/selective_sync_condition_operator.py +7 -0
- merge/resources/accounting/types/sync_status.py +5 -0
- merge/resources/ats/__init__.py +15 -0
- merge/resources/ats/client.py +19 -0
- merge/resources/ats/resources/__init__.py +3 -0
- merge/resources/ats/resources/selective_sync/__init__.py +4 -0
- merge/resources/ats/resources/selective_sync/client.py +104 -0
- merge/resources/ats/resources/selective_sync/raw_client.py +103 -0
- merge/resources/ats/types/__init__.py +12 -0
- merge/resources/ats/types/operator_enum.py +58 -0
- merge/resources/ats/types/selective_sync_condition.py +49 -0
- merge/resources/ats/types/selective_sync_condition_list.py +21 -0
- merge/resources/ats/types/selective_sync_condition_operator.py +7 -0
- merge/resources/ats/types/sync_status.py +5 -0
- merge/resources/calendar/__init__.py +15 -0
- merge/resources/calendar/client.py +19 -0
- merge/resources/calendar/resources/__init__.py +3 -0
- merge/resources/calendar/resources/selective_sync/__init__.py +4 -0
- merge/resources/calendar/resources/selective_sync/client.py +104 -0
- merge/resources/calendar/resources/selective_sync/raw_client.py +103 -0
- merge/resources/calendar/types/__init__.py +12 -0
- merge/resources/calendar/types/operator_enum.py +58 -0
- merge/resources/calendar/types/selective_sync_condition.py +49 -0
- merge/resources/calendar/types/selective_sync_condition_list.py +21 -0
- merge/resources/calendar/types/selective_sync_condition_operator.py +7 -0
- merge/resources/calendar/types/sync_status.py +5 -0
- merge/resources/chat/__init__.py +33 -0
- merge/resources/chat/client.py +19 -0
- merge/resources/chat/resources/__init__.py +3 -0
- merge/resources/chat/resources/selective_sync/__init__.py +4 -0
- merge/resources/chat/resources/selective_sync/client.py +264 -0
- merge/resources/chat/resources/selective_sync/raw_client.py +293 -0
- merge/resources/chat/types/__init__.py +30 -0
- merge/resources/chat/types/chat_sync_selection.py +50 -0
- merge/resources/chat/types/chat_sync_selection_type.py +7 -0
- merge/resources/chat/types/chat_sync_selection_type_enum.py +18 -0
- merge/resources/chat/types/label_selection.py +43 -0
- merge/resources/chat/types/label_selection_list.py +21 -0
- merge/resources/chat/types/operator_enum.py +58 -0
- merge/resources/chat/types/paginated_chat_sync_selection_list.py +23 -0
- merge/resources/chat/types/selective_sync_condition.py +49 -0
- merge/resources/chat/types/selective_sync_condition_list.py +21 -0
- merge/resources/chat/types/selective_sync_condition_operator.py +7 -0
- merge/resources/chat/types/sync_status.py +5 -0
- merge/resources/crm/__init__.py +15 -0
- merge/resources/crm/client.py +19 -0
- merge/resources/crm/resources/__init__.py +3 -0
- merge/resources/crm/resources/selective_sync/__init__.py +4 -0
- merge/resources/crm/resources/selective_sync/client.py +104 -0
- merge/resources/crm/resources/selective_sync/raw_client.py +103 -0
- merge/resources/crm/types/__init__.py +12 -0
- merge/resources/crm/types/operator_enum.py +58 -0
- merge/resources/crm/types/selective_sync_condition.py +49 -0
- merge/resources/crm/types/selective_sync_condition_list.py +21 -0
- merge/resources/crm/types/selective_sync_condition_operator.py +7 -0
- merge/resources/crm/types/sync_status.py +5 -0
- merge/resources/email/__init__.py +21 -0
- merge/resources/email/client.py +19 -0
- merge/resources/email/resources/__init__.py +3 -0
- merge/resources/email/resources/selective_sync/__init__.py +4 -0
- merge/resources/email/resources/selective_sync/client.py +167 -0
- merge/resources/email/resources/selective_sync/raw_client.py +184 -0
- merge/resources/email/types/__init__.py +18 -0
- merge/resources/email/types/label_selection.py +43 -0
- merge/resources/email/types/label_selection_list.py +21 -0
- merge/resources/email/types/operator_enum.py +58 -0
- merge/resources/email/types/selective_sync_condition.py +49 -0
- merge/resources/email/types/selective_sync_condition_list.py +21 -0
- merge/resources/email/types/selective_sync_condition_operator.py +7 -0
- merge/resources/email/types/sync_status.py +5 -0
- merge/resources/filestorage/__init__.py +33 -0
- merge/resources/filestorage/client.py +19 -0
- merge/resources/filestorage/resources/__init__.py +3 -0
- merge/resources/filestorage/resources/selective_sync/__init__.py +4 -0
- merge/resources/filestorage/resources/selective_sync/client.py +264 -0
- merge/resources/filestorage/resources/selective_sync/raw_client.py +293 -0
- merge/resources/filestorage/types/__init__.py +30 -0
- merge/resources/filestorage/types/file_storage_sync_selection.py +50 -0
- merge/resources/filestorage/types/file_storage_sync_selection_type.py +7 -0
- merge/resources/filestorage/types/file_storage_sync_selection_type_enum.py +26 -0
- merge/resources/filestorage/types/label_selection.py +43 -0
- merge/resources/filestorage/types/label_selection_list.py +21 -0
- merge/resources/filestorage/types/operator_enum.py +58 -0
- merge/resources/filestorage/types/paginated_file_storage_sync_selection_list.py +23 -0
- merge/resources/filestorage/types/selective_sync_condition.py +49 -0
- merge/resources/filestorage/types/selective_sync_condition_list.py +21 -0
- merge/resources/filestorage/types/selective_sync_condition_operator.py +7 -0
- merge/resources/filestorage/types/sync_status.py +5 -0
- merge/resources/hris/__init__.py +15 -0
- merge/resources/hris/client.py +19 -0
- merge/resources/hris/resources/__init__.py +3 -0
- merge/resources/hris/resources/selective_sync/__init__.py +4 -0
- merge/resources/hris/resources/selective_sync/client.py +104 -0
- merge/resources/hris/resources/selective_sync/raw_client.py +103 -0
- merge/resources/hris/types/__init__.py +12 -0
- merge/resources/hris/types/operator_enum.py +58 -0
- merge/resources/hris/types/selective_sync_condition.py +49 -0
- merge/resources/hris/types/selective_sync_condition_list.py +21 -0
- merge/resources/hris/types/selective_sync_condition_operator.py +7 -0
- merge/resources/hris/types/sync_status.py +5 -0
- merge/resources/knowledgebase/__init__.py +27 -0
- merge/resources/knowledgebase/client.py +19 -0
- merge/resources/knowledgebase/resources/__init__.py +3 -0
- merge/resources/knowledgebase/resources/selective_sync/__init__.py +4 -0
- merge/resources/knowledgebase/resources/selective_sync/client.py +201 -0
- merge/resources/knowledgebase/resources/selective_sync/raw_client.py +212 -0
- merge/resources/knowledgebase/types/__init__.py +24 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection.py +50 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection_type.py +7 -0
- merge/resources/knowledgebase/types/knowledge_base_sync_selection_type_enum.py +18 -0
- merge/resources/knowledgebase/types/operator_enum.py +58 -0
- merge/resources/knowledgebase/types/paginated_knowledge_base_sync_selection_list.py +23 -0
- merge/resources/knowledgebase/types/selective_sync_condition.py +49 -0
- merge/resources/knowledgebase/types/selective_sync_condition_list.py +21 -0
- merge/resources/knowledgebase/types/selective_sync_condition_operator.py +7 -0
- merge/resources/knowledgebase/types/sync_status.py +5 -0
- merge/resources/ticketing/__init__.py +15 -0
- merge/resources/ticketing/client.py +19 -0
- merge/resources/ticketing/resources/__init__.py +3 -0
- merge/resources/ticketing/resources/selective_sync/__init__.py +4 -0
- merge/resources/ticketing/resources/selective_sync/client.py +104 -0
- merge/resources/ticketing/resources/selective_sync/raw_client.py +103 -0
- merge/resources/ticketing/types/__init__.py +12 -0
- merge/resources/ticketing/types/operator_enum.py +58 -0
- merge/resources/ticketing/types/selective_sync_condition.py +49 -0
- merge/resources/ticketing/types/selective_sync_condition_list.py +21 -0
- merge/resources/ticketing/types/selective_sync_condition_operator.py +7 -0
- merge/resources/ticketing/types/sync_status.py +5 -0
- {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.1.dist-info}/METADATA +3 -1
- {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.1.dist-info}/RECORD +143 -55
- {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.1.dist-info}/LICENSE.md +0 -0
- {mergepythonclient-4.1.0.dist-info → mergepythonclient-4.2.1.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
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.selective_sync_condition_list import SelectiveSyncConditionList
|
|
14
|
+
from pydantic import ValidationError
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class RawSelectiveSyncClient:
|
|
18
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
19
|
+
self._client_wrapper = client_wrapper
|
|
20
|
+
|
|
21
|
+
def conditions_list(
|
|
22
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
23
|
+
) -> HttpResponse[SelectiveSyncConditionList]:
|
|
24
|
+
"""
|
|
25
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
26
|
+
|
|
27
|
+
Parameters
|
|
28
|
+
----------
|
|
29
|
+
request_options : typing.Optional[RequestOptions]
|
|
30
|
+
Request-specific configuration.
|
|
31
|
+
|
|
32
|
+
Returns
|
|
33
|
+
-------
|
|
34
|
+
HttpResponse[SelectiveSyncConditionList]
|
|
35
|
+
|
|
36
|
+
"""
|
|
37
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
38
|
+
"email/v1/selective-sync/conditions",
|
|
39
|
+
method="GET",
|
|
40
|
+
request_options=request_options,
|
|
41
|
+
)
|
|
42
|
+
try:
|
|
43
|
+
if 200 <= _response.status_code < 300:
|
|
44
|
+
_data = typing.cast(
|
|
45
|
+
SelectiveSyncConditionList,
|
|
46
|
+
construct_type(
|
|
47
|
+
type_=SelectiveSyncConditionList, # type: ignore
|
|
48
|
+
object_=_response.json(),
|
|
49
|
+
),
|
|
50
|
+
)
|
|
51
|
+
return HttpResponse(response=_response, data=_data)
|
|
52
|
+
_response_json = _response.json()
|
|
53
|
+
except JSONDecodeError:
|
|
54
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
55
|
+
except ValidationError as e:
|
|
56
|
+
raise ParsingError(
|
|
57
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
58
|
+
)
|
|
59
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
60
|
+
|
|
61
|
+
def labels_list(
|
|
62
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
63
|
+
) -> HttpResponse[LabelSelectionList]:
|
|
64
|
+
"""
|
|
65
|
+
Returns a list of `LabelSelection` objects.
|
|
66
|
+
|
|
67
|
+
Parameters
|
|
68
|
+
----------
|
|
69
|
+
request_options : typing.Optional[RequestOptions]
|
|
70
|
+
Request-specific configuration.
|
|
71
|
+
|
|
72
|
+
Returns
|
|
73
|
+
-------
|
|
74
|
+
HttpResponse[LabelSelectionList]
|
|
75
|
+
|
|
76
|
+
"""
|
|
77
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
78
|
+
"email/v1/selective-sync/labels",
|
|
79
|
+
method="GET",
|
|
80
|
+
request_options=request_options,
|
|
81
|
+
)
|
|
82
|
+
try:
|
|
83
|
+
if 200 <= _response.status_code < 300:
|
|
84
|
+
_data = typing.cast(
|
|
85
|
+
LabelSelectionList,
|
|
86
|
+
construct_type(
|
|
87
|
+
type_=LabelSelectionList, # type: ignore
|
|
88
|
+
object_=_response.json(),
|
|
89
|
+
),
|
|
90
|
+
)
|
|
91
|
+
return HttpResponse(response=_response, data=_data)
|
|
92
|
+
_response_json = _response.json()
|
|
93
|
+
except JSONDecodeError:
|
|
94
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
95
|
+
except ValidationError as e:
|
|
96
|
+
raise ParsingError(
|
|
97
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
98
|
+
)
|
|
99
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class AsyncRawSelectiveSyncClient:
|
|
103
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
104
|
+
self._client_wrapper = client_wrapper
|
|
105
|
+
|
|
106
|
+
async def conditions_list(
|
|
107
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
108
|
+
) -> AsyncHttpResponse[SelectiveSyncConditionList]:
|
|
109
|
+
"""
|
|
110
|
+
Returns a list of `SelectiveSyncCondition` objects.
|
|
111
|
+
|
|
112
|
+
Parameters
|
|
113
|
+
----------
|
|
114
|
+
request_options : typing.Optional[RequestOptions]
|
|
115
|
+
Request-specific configuration.
|
|
116
|
+
|
|
117
|
+
Returns
|
|
118
|
+
-------
|
|
119
|
+
AsyncHttpResponse[SelectiveSyncConditionList]
|
|
120
|
+
|
|
121
|
+
"""
|
|
122
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
123
|
+
"email/v1/selective-sync/conditions",
|
|
124
|
+
method="GET",
|
|
125
|
+
request_options=request_options,
|
|
126
|
+
)
|
|
127
|
+
try:
|
|
128
|
+
if 200 <= _response.status_code < 300:
|
|
129
|
+
_data = typing.cast(
|
|
130
|
+
SelectiveSyncConditionList,
|
|
131
|
+
construct_type(
|
|
132
|
+
type_=SelectiveSyncConditionList, # type: ignore
|
|
133
|
+
object_=_response.json(),
|
|
134
|
+
),
|
|
135
|
+
)
|
|
136
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
137
|
+
_response_json = _response.json()
|
|
138
|
+
except JSONDecodeError:
|
|
139
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
140
|
+
except ValidationError as e:
|
|
141
|
+
raise ParsingError(
|
|
142
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
143
|
+
)
|
|
144
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
145
|
+
|
|
146
|
+
async def labels_list(
|
|
147
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
148
|
+
) -> AsyncHttpResponse[LabelSelectionList]:
|
|
149
|
+
"""
|
|
150
|
+
Returns a list of `LabelSelection` objects.
|
|
151
|
+
|
|
152
|
+
Parameters
|
|
153
|
+
----------
|
|
154
|
+
request_options : typing.Optional[RequestOptions]
|
|
155
|
+
Request-specific configuration.
|
|
156
|
+
|
|
157
|
+
Returns
|
|
158
|
+
-------
|
|
159
|
+
AsyncHttpResponse[LabelSelectionList]
|
|
160
|
+
|
|
161
|
+
"""
|
|
162
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
163
|
+
"email/v1/selective-sync/labels",
|
|
164
|
+
method="GET",
|
|
165
|
+
request_options=request_options,
|
|
166
|
+
)
|
|
167
|
+
try:
|
|
168
|
+
if 200 <= _response.status_code < 300:
|
|
169
|
+
_data = typing.cast(
|
|
170
|
+
LabelSelectionList,
|
|
171
|
+
construct_type(
|
|
172
|
+
type_=LabelSelectionList, # type: ignore
|
|
173
|
+
object_=_response.json(),
|
|
174
|
+
),
|
|
175
|
+
)
|
|
176
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
177
|
+
_response_json = _response.json()
|
|
178
|
+
except JSONDecodeError:
|
|
179
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
180
|
+
except ValidationError as e:
|
|
181
|
+
raise ParsingError(
|
|
182
|
+
status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
|
|
183
|
+
)
|
|
184
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
@@ -60,6 +60,8 @@ if typing.TYPE_CHECKING:
|
|
|
60
60
|
from .issue import Issue
|
|
61
61
|
from .issue_status import IssueStatus
|
|
62
62
|
from .issue_status_enum import IssueStatusEnum
|
|
63
|
+
from .label_selection import LabelSelection
|
|
64
|
+
from .label_selection_list import LabelSelectionList
|
|
63
65
|
from .language_enum import LanguageEnum
|
|
64
66
|
from .last_sync_result_enum import LastSyncResultEnum
|
|
65
67
|
from .link_token import LinkToken
|
|
@@ -74,6 +76,7 @@ if typing.TYPE_CHECKING:
|
|
|
74
76
|
from .model_permission_deserializer_request import ModelPermissionDeserializerRequest
|
|
75
77
|
from .multipart_form_field_request import MultipartFormFieldRequest
|
|
76
78
|
from .multipart_form_field_request_encoding import MultipartFormFieldRequestEncoding
|
|
79
|
+
from .operator_enum import OperatorEnum
|
|
77
80
|
from .paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
|
|
78
81
|
from .paginated_audit_log_event_list import PaginatedAuditLogEventList
|
|
79
82
|
from .paginated_email_address_list import PaginatedEmailAddressList
|
|
@@ -100,6 +103,9 @@ if typing.TYPE_CHECKING:
|
|
|
100
103
|
from .request_format_enum import RequestFormatEnum
|
|
101
104
|
from .response_type_enum import ResponseTypeEnum
|
|
102
105
|
from .role_enum import RoleEnum
|
|
106
|
+
from .selective_sync_condition import SelectiveSyncCondition
|
|
107
|
+
from .selective_sync_condition_list import SelectiveSyncConditionList
|
|
108
|
+
from .selective_sync_condition_operator import SelectiveSyncConditionOperator
|
|
103
109
|
from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum
|
|
104
110
|
from .status_fd_5_enum import StatusFd5Enum
|
|
105
111
|
from .sync_status import SyncStatus
|
|
@@ -167,6 +173,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
167
173
|
"Issue": ".issue",
|
|
168
174
|
"IssueStatus": ".issue_status",
|
|
169
175
|
"IssueStatusEnum": ".issue_status_enum",
|
|
176
|
+
"LabelSelection": ".label_selection",
|
|
177
|
+
"LabelSelectionList": ".label_selection_list",
|
|
170
178
|
"LanguageEnum": ".language_enum",
|
|
171
179
|
"LastSyncResultEnum": ".last_sync_result_enum",
|
|
172
180
|
"LinkToken": ".link_token",
|
|
@@ -181,6 +189,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
181
189
|
"ModelPermissionDeserializerRequest": ".model_permission_deserializer_request",
|
|
182
190
|
"MultipartFormFieldRequest": ".multipart_form_field_request",
|
|
183
191
|
"MultipartFormFieldRequestEncoding": ".multipart_form_field_request_encoding",
|
|
192
|
+
"OperatorEnum": ".operator_enum",
|
|
184
193
|
"PaginatedAccountDetailsAndActionsList": ".paginated_account_details_and_actions_list",
|
|
185
194
|
"PaginatedAuditLogEventList": ".paginated_audit_log_event_list",
|
|
186
195
|
"PaginatedEmailAddressList": ".paginated_email_address_list",
|
|
@@ -207,6 +216,9 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
207
216
|
"RequestFormatEnum": ".request_format_enum",
|
|
208
217
|
"ResponseTypeEnum": ".response_type_enum",
|
|
209
218
|
"RoleEnum": ".role_enum",
|
|
219
|
+
"SelectiveSyncCondition": ".selective_sync_condition",
|
|
220
|
+
"SelectiveSyncConditionList": ".selective_sync_condition_list",
|
|
221
|
+
"SelectiveSyncConditionOperator": ".selective_sync_condition_operator",
|
|
210
222
|
"SelectiveSyncConfigurationsUsageEnum": ".selective_sync_configurations_usage_enum",
|
|
211
223
|
"StatusFd5Enum": ".status_fd_5_enum",
|
|
212
224
|
"SyncStatus": ".sync_status",
|
|
@@ -298,6 +310,8 @@ __all__ = [
|
|
|
298
310
|
"Issue",
|
|
299
311
|
"IssueStatus",
|
|
300
312
|
"IssueStatusEnum",
|
|
313
|
+
"LabelSelection",
|
|
314
|
+
"LabelSelectionList",
|
|
301
315
|
"LanguageEnum",
|
|
302
316
|
"LastSyncResultEnum",
|
|
303
317
|
"LinkToken",
|
|
@@ -312,6 +326,7 @@ __all__ = [
|
|
|
312
326
|
"ModelPermissionDeserializerRequest",
|
|
313
327
|
"MultipartFormFieldRequest",
|
|
314
328
|
"MultipartFormFieldRequestEncoding",
|
|
329
|
+
"OperatorEnum",
|
|
315
330
|
"PaginatedAccountDetailsAndActionsList",
|
|
316
331
|
"PaginatedAuditLogEventList",
|
|
317
332
|
"PaginatedEmailAddressList",
|
|
@@ -338,6 +353,9 @@ __all__ = [
|
|
|
338
353
|
"RequestFormatEnum",
|
|
339
354
|
"ResponseTypeEnum",
|
|
340
355
|
"RoleEnum",
|
|
356
|
+
"SelectiveSyncCondition",
|
|
357
|
+
"SelectiveSyncConditionList",
|
|
358
|
+
"SelectiveSyncConditionOperator",
|
|
341
359
|
"SelectiveSyncConfigurationsUsageEnum",
|
|
342
360
|
"StatusFd5Enum",
|
|
343
361
|
"SyncStatus",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class LabelSelection(UncheckedBaseModel):
|
|
11
|
+
remote_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
12
|
+
"""
|
|
13
|
+
The label's ID in the third-party system.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
17
|
+
"""
|
|
18
|
+
The label's name.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
label_type: typing.Optional[str] = pydantic.Field(default=None)
|
|
22
|
+
"""
|
|
23
|
+
The label's type.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
parent_remote_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
27
|
+
"""
|
|
28
|
+
The parent label's ID in the third-party system. Null for top-level labels.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
parent_name: typing.Optional[str] = pydantic.Field(default=None)
|
|
32
|
+
"""
|
|
33
|
+
The parent label's name. Null for top-level labels.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
if IS_PYDANTIC_V2:
|
|
37
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
38
|
+
else:
|
|
39
|
+
|
|
40
|
+
class Config:
|
|
41
|
+
frozen = True
|
|
42
|
+
smart_union = True
|
|
43
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .label_selection import LabelSelection
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class LabelSelectionList(UncheckedBaseModel):
|
|
12
|
+
results: typing.List[LabelSelection]
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ....core import enum
|
|
6
|
+
|
|
7
|
+
T_Result = typing.TypeVar("T_Result")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class OperatorEnum(enum.StrEnum):
|
|
11
|
+
CONTAINS = "CONTAINS"
|
|
12
|
+
EQUALS = "EQUALS"
|
|
13
|
+
GREATER_THAN = "GREATER_THAN"
|
|
14
|
+
GREATER_THAN_OR_EQUAL_TO = "GREATER_THAN_OR_EQUAL_TO"
|
|
15
|
+
HAS_ALL_OF = "HAS_ALL_OF"
|
|
16
|
+
HAS_NONE_OF = "HAS_NONE_OF"
|
|
17
|
+
IS_ONE_OF = "IS_ONE_OF"
|
|
18
|
+
LESS_THAN = "LESS_THAN"
|
|
19
|
+
LESS_THAN_OR_EQUAL_TO = "LESS_THAN_OR_EQUAL_TO"
|
|
20
|
+
NOT_EQUALS = "NOT_EQUALS"
|
|
21
|
+
WITHIN = "WITHIN"
|
|
22
|
+
|
|
23
|
+
def visit(
|
|
24
|
+
self,
|
|
25
|
+
contains: typing.Callable[[], T_Result],
|
|
26
|
+
equals: typing.Callable[[], T_Result],
|
|
27
|
+
greater_than: typing.Callable[[], T_Result],
|
|
28
|
+
greater_than_or_equal_to: typing.Callable[[], T_Result],
|
|
29
|
+
has_all_of: typing.Callable[[], T_Result],
|
|
30
|
+
has_none_of: typing.Callable[[], T_Result],
|
|
31
|
+
is_one_of: typing.Callable[[], T_Result],
|
|
32
|
+
less_than: typing.Callable[[], T_Result],
|
|
33
|
+
less_than_or_equal_to: typing.Callable[[], T_Result],
|
|
34
|
+
not_equals: typing.Callable[[], T_Result],
|
|
35
|
+
within: typing.Callable[[], T_Result],
|
|
36
|
+
) -> T_Result:
|
|
37
|
+
if self is OperatorEnum.CONTAINS:
|
|
38
|
+
return contains()
|
|
39
|
+
if self is OperatorEnum.EQUALS:
|
|
40
|
+
return equals()
|
|
41
|
+
if self is OperatorEnum.GREATER_THAN:
|
|
42
|
+
return greater_than()
|
|
43
|
+
if self is OperatorEnum.GREATER_THAN_OR_EQUAL_TO:
|
|
44
|
+
return greater_than_or_equal_to()
|
|
45
|
+
if self is OperatorEnum.HAS_ALL_OF:
|
|
46
|
+
return has_all_of()
|
|
47
|
+
if self is OperatorEnum.HAS_NONE_OF:
|
|
48
|
+
return has_none_of()
|
|
49
|
+
if self is OperatorEnum.IS_ONE_OF:
|
|
50
|
+
return is_one_of()
|
|
51
|
+
if self is OperatorEnum.LESS_THAN:
|
|
52
|
+
return less_than()
|
|
53
|
+
if self is OperatorEnum.LESS_THAN_OR_EQUAL_TO:
|
|
54
|
+
return less_than_or_equal_to()
|
|
55
|
+
if self is OperatorEnum.NOT_EQUALS:
|
|
56
|
+
return not_equals()
|
|
57
|
+
if self is OperatorEnum.WITHIN:
|
|
58
|
+
return within()
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .selective_sync_condition_operator import SelectiveSyncConditionOperator
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SelectiveSyncCondition(UncheckedBaseModel):
|
|
12
|
+
id: str = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
The Merge ID of the filter.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
common_model: str = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
The common model the filter applies to.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
normalized_key_name: str = pydantic.Field()
|
|
23
|
+
"""
|
|
24
|
+
The Merge field the filter applies to.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
remote_key_name: typing.Optional[str] = pydantic.Field(default=None)
|
|
28
|
+
"""
|
|
29
|
+
The third-party API's name for the filtered field.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
operator: SelectiveSyncConditionOperator = pydantic.Field()
|
|
33
|
+
"""
|
|
34
|
+
How the value is compared.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
value: typing.Dict[str, typing.Any] = pydantic.Field()
|
|
38
|
+
"""
|
|
39
|
+
The value the field is compared against.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
if IS_PYDANTIC_V2:
|
|
43
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
44
|
+
else:
|
|
45
|
+
|
|
46
|
+
class Config:
|
|
47
|
+
frozen = True
|
|
48
|
+
smart_union = True
|
|
49
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ....core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .selective_sync_condition import SelectiveSyncCondition
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SelectiveSyncConditionList(UncheckedBaseModel):
|
|
12
|
+
results: typing.List[SelectiveSyncCondition]
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -29,6 +29,11 @@ class SyncStatus(UncheckedBaseModel):
|
|
|
29
29
|
last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None
|
|
30
30
|
last_sync_finished: typing.Optional[dt.datetime] = None
|
|
31
31
|
data_fresh_as_of: typing.Optional[dt.datetime] = None
|
|
32
|
+
historical_data_since: typing.Optional[dt.datetime] = pydantic.Field(default=None)
|
|
33
|
+
"""
|
|
34
|
+
The earliest point this model has complete historical data for, based on each record's modified date in the third-party platform. Records modified before this time have not been fully synced. A model synced over its full history reaches back to 1900-01-01, unless there's a selective sync filter. Null until the first sync completes.
|
|
35
|
+
"""
|
|
36
|
+
|
|
32
37
|
status: SyncStatusStatus
|
|
33
38
|
sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None)
|
|
34
39
|
"""
|
|
@@ -57,6 +57,9 @@ if typing.TYPE_CHECKING:
|
|
|
57
57
|
FileRequestPermissionsItem,
|
|
58
58
|
FileStorageFileResponse,
|
|
59
59
|
FileStorageFolderResponse,
|
|
60
|
+
FileStorageSyncSelection,
|
|
61
|
+
FileStorageSyncSelectionType,
|
|
62
|
+
FileStorageSyncSelectionTypeEnum,
|
|
60
63
|
Folder,
|
|
61
64
|
FolderDrive,
|
|
62
65
|
FolderParentFolder,
|
|
@@ -75,6 +78,8 @@ if typing.TYPE_CHECKING:
|
|
|
75
78
|
Issue,
|
|
76
79
|
IssueStatus,
|
|
77
80
|
IssueStatusEnum,
|
|
81
|
+
LabelSelection,
|
|
82
|
+
LabelSelectionList,
|
|
78
83
|
LanguageEnum,
|
|
79
84
|
LastSyncResultEnum,
|
|
80
85
|
LinkToken,
|
|
@@ -86,11 +91,13 @@ if typing.TYPE_CHECKING:
|
|
|
86
91
|
ModelPermissionDeserializerRequest,
|
|
87
92
|
MultipartFormFieldRequest,
|
|
88
93
|
MultipartFormFieldRequestEncoding,
|
|
94
|
+
OperatorEnum,
|
|
89
95
|
PaginatedAccountDetailsAndActionsList,
|
|
90
96
|
PaginatedAuditLogEventList,
|
|
91
97
|
PaginatedDownloadRequestMetaList,
|
|
92
98
|
PaginatedDriveList,
|
|
93
99
|
PaginatedFileList,
|
|
100
|
+
PaginatedFileStorageSyncSelectionList,
|
|
94
101
|
PaginatedFolderList,
|
|
95
102
|
PaginatedGroupList,
|
|
96
103
|
PaginatedIssueList,
|
|
@@ -119,6 +126,9 @@ if typing.TYPE_CHECKING:
|
|
|
119
126
|
ResponseTypeEnum,
|
|
120
127
|
RoleEnum,
|
|
121
128
|
RolesEnum,
|
|
129
|
+
SelectiveSyncCondition,
|
|
130
|
+
SelectiveSyncConditionList,
|
|
131
|
+
SelectiveSyncConditionOperator,
|
|
122
132
|
SelectiveSyncConfigurationsUsageEnum,
|
|
123
133
|
StatusFd5Enum,
|
|
124
134
|
SyncStatus,
|
|
@@ -163,6 +173,7 @@ if typing.TYPE_CHECKING:
|
|
|
163
173
|
passthrough,
|
|
164
174
|
regenerate_key,
|
|
165
175
|
scopes,
|
|
176
|
+
selective_sync,
|
|
166
177
|
sync_status,
|
|
167
178
|
users,
|
|
168
179
|
webhook_receivers,
|
|
@@ -219,6 +230,9 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
219
230
|
"FileRequestPermissionsItem": ".types",
|
|
220
231
|
"FileStorageFileResponse": ".types",
|
|
221
232
|
"FileStorageFolderResponse": ".types",
|
|
233
|
+
"FileStorageSyncSelection": ".types",
|
|
234
|
+
"FileStorageSyncSelectionType": ".types",
|
|
235
|
+
"FileStorageSyncSelectionTypeEnum": ".types",
|
|
222
236
|
"FilesDownloadRequestMetaListRequestOrderBy": ".resources",
|
|
223
237
|
"FilesListRequestExpandItem": ".resources",
|
|
224
238
|
"FilesListRequestOrderBy": ".resources",
|
|
@@ -246,6 +260,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
246
260
|
"IssueStatus": ".types",
|
|
247
261
|
"IssueStatusEnum": ".types",
|
|
248
262
|
"IssuesListRequestStatus": ".resources",
|
|
263
|
+
"LabelSelection": ".types",
|
|
264
|
+
"LabelSelectionList": ".types",
|
|
249
265
|
"LanguageEnum": ".types",
|
|
250
266
|
"LastSyncResultEnum": ".types",
|
|
251
267
|
"LinkToken": ".types",
|
|
@@ -258,11 +274,13 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
258
274
|
"ModelPermissionDeserializerRequest": ".types",
|
|
259
275
|
"MultipartFormFieldRequest": ".types",
|
|
260
276
|
"MultipartFormFieldRequestEncoding": ".types",
|
|
277
|
+
"OperatorEnum": ".types",
|
|
261
278
|
"PaginatedAccountDetailsAndActionsList": ".types",
|
|
262
279
|
"PaginatedAuditLogEventList": ".types",
|
|
263
280
|
"PaginatedDownloadRequestMetaList": ".types",
|
|
264
281
|
"PaginatedDriveList": ".types",
|
|
265
282
|
"PaginatedFileList": ".types",
|
|
283
|
+
"PaginatedFileStorageSyncSelectionList": ".types",
|
|
266
284
|
"PaginatedFolderList": ".types",
|
|
267
285
|
"PaginatedGroupList": ".types",
|
|
268
286
|
"PaginatedIssueList": ".types",
|
|
@@ -291,6 +309,9 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
291
309
|
"ResponseTypeEnum": ".types",
|
|
292
310
|
"RoleEnum": ".types",
|
|
293
311
|
"RolesEnum": ".types",
|
|
312
|
+
"SelectiveSyncCondition": ".types",
|
|
313
|
+
"SelectiveSyncConditionList": ".types",
|
|
314
|
+
"SelectiveSyncConditionOperator": ".types",
|
|
294
315
|
"SelectiveSyncConfigurationsUsageEnum": ".types",
|
|
295
316
|
"StatusFd5Enum": ".types",
|
|
296
317
|
"SyncStatus": ".types",
|
|
@@ -322,6 +343,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
322
343
|
"passthrough": ".resources",
|
|
323
344
|
"regenerate_key": ".resources",
|
|
324
345
|
"scopes": ".resources",
|
|
346
|
+
"selective_sync": ".resources",
|
|
325
347
|
"sync_status": ".resources",
|
|
326
348
|
"users": ".resources",
|
|
327
349
|
"webhook_receivers": ".resources",
|
|
@@ -401,6 +423,9 @@ __all__ = [
|
|
|
401
423
|
"FileRequestPermissionsItem",
|
|
402
424
|
"FileStorageFileResponse",
|
|
403
425
|
"FileStorageFolderResponse",
|
|
426
|
+
"FileStorageSyncSelection",
|
|
427
|
+
"FileStorageSyncSelectionType",
|
|
428
|
+
"FileStorageSyncSelectionTypeEnum",
|
|
404
429
|
"FilesDownloadRequestMetaListRequestOrderBy",
|
|
405
430
|
"FilesListRequestExpandItem",
|
|
406
431
|
"FilesListRequestOrderBy",
|
|
@@ -428,6 +453,8 @@ __all__ = [
|
|
|
428
453
|
"IssueStatus",
|
|
429
454
|
"IssueStatusEnum",
|
|
430
455
|
"IssuesListRequestStatus",
|
|
456
|
+
"LabelSelection",
|
|
457
|
+
"LabelSelectionList",
|
|
431
458
|
"LanguageEnum",
|
|
432
459
|
"LastSyncResultEnum",
|
|
433
460
|
"LinkToken",
|
|
@@ -440,11 +467,13 @@ __all__ = [
|
|
|
440
467
|
"ModelPermissionDeserializerRequest",
|
|
441
468
|
"MultipartFormFieldRequest",
|
|
442
469
|
"MultipartFormFieldRequestEncoding",
|
|
470
|
+
"OperatorEnum",
|
|
443
471
|
"PaginatedAccountDetailsAndActionsList",
|
|
444
472
|
"PaginatedAuditLogEventList",
|
|
445
473
|
"PaginatedDownloadRequestMetaList",
|
|
446
474
|
"PaginatedDriveList",
|
|
447
475
|
"PaginatedFileList",
|
|
476
|
+
"PaginatedFileStorageSyncSelectionList",
|
|
448
477
|
"PaginatedFolderList",
|
|
449
478
|
"PaginatedGroupList",
|
|
450
479
|
"PaginatedIssueList",
|
|
@@ -473,6 +502,9 @@ __all__ = [
|
|
|
473
502
|
"ResponseTypeEnum",
|
|
474
503
|
"RoleEnum",
|
|
475
504
|
"RolesEnum",
|
|
505
|
+
"SelectiveSyncCondition",
|
|
506
|
+
"SelectiveSyncConditionList",
|
|
507
|
+
"SelectiveSyncConditionOperator",
|
|
476
508
|
"SelectiveSyncConfigurationsUsageEnum",
|
|
477
509
|
"StatusFd5Enum",
|
|
478
510
|
"SyncStatus",
|
|
@@ -504,6 +536,7 @@ __all__ = [
|
|
|
504
536
|
"passthrough",
|
|
505
537
|
"regenerate_key",
|
|
506
538
|
"scopes",
|
|
539
|
+
"selective_sync",
|
|
507
540
|
"sync_status",
|
|
508
541
|
"users",
|
|
509
542
|
"webhook_receivers",
|
|
@@ -33,6 +33,7 @@ if typing.TYPE_CHECKING:
|
|
|
33
33
|
from .resources.passthrough.client import PassthroughClient
|
|
34
34
|
from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
|
|
35
35
|
from .resources.scopes.client import AsyncScopesClient, ScopesClient
|
|
36
|
+
from .resources.selective_sync.client import AsyncSelectiveSyncClient, SelectiveSyncClient
|
|
36
37
|
from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
|
|
37
38
|
from .resources.users.client import AsyncUsersClient, UsersClient
|
|
38
39
|
from .resources.webhook_receivers.client import AsyncWebhookReceiversClient, WebhookReceiversClient
|
|
@@ -62,6 +63,7 @@ class FilestorageClient:
|
|
|
62
63
|
self._linked_accounts: typing.Optional[LinkedAccountsClient] = None
|
|
63
64
|
self._passthrough: typing.Optional[PassthroughClient] = None
|
|
64
65
|
self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
|
|
66
|
+
self._selective_sync: typing.Optional[SelectiveSyncClient] = None
|
|
65
67
|
self._sync_status: typing.Optional[SyncStatusClient] = None
|
|
66
68
|
self._force_resync: typing.Optional[ForceResyncClient] = None
|
|
67
69
|
self._users: typing.Optional[UsersClient] = None
|
|
@@ -226,6 +228,14 @@ class FilestorageClient:
|
|
|
226
228
|
self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
|
|
227
229
|
return self._regenerate_key
|
|
228
230
|
|
|
231
|
+
@property
|
|
232
|
+
def selective_sync(self):
|
|
233
|
+
if self._selective_sync is None:
|
|
234
|
+
from .resources.selective_sync.client import SelectiveSyncClient # noqa: E402
|
|
235
|
+
|
|
236
|
+
self._selective_sync = SelectiveSyncClient(client_wrapper=self._client_wrapper)
|
|
237
|
+
return self._selective_sync
|
|
238
|
+
|
|
229
239
|
@property
|
|
230
240
|
def sync_status(self):
|
|
231
241
|
if self._sync_status is None:
|
|
@@ -283,6 +293,7 @@ class AsyncFilestorageClient:
|
|
|
283
293
|
resources_filestorage_resources_passthrough_client_AsyncPassthroughClient
|
|
284
294
|
] = None
|
|
285
295
|
self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
|
|
296
|
+
self._selective_sync: typing.Optional[AsyncSelectiveSyncClient] = None
|
|
286
297
|
self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
|
|
287
298
|
self._force_resync: typing.Optional[AsyncForceResyncClient] = None
|
|
288
299
|
self._users: typing.Optional[AsyncUsersClient] = None
|
|
@@ -447,6 +458,14 @@ class AsyncFilestorageClient:
|
|
|
447
458
|
self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
|
|
448
459
|
return self._regenerate_key
|
|
449
460
|
|
|
461
|
+
@property
|
|
462
|
+
def selective_sync(self):
|
|
463
|
+
if self._selective_sync is None:
|
|
464
|
+
from .resources.selective_sync.client import AsyncSelectiveSyncClient # noqa: E402
|
|
465
|
+
|
|
466
|
+
self._selective_sync = AsyncSelectiveSyncClient(client_wrapper=self._client_wrapper)
|
|
467
|
+
return self._selective_sync
|
|
468
|
+
|
|
450
469
|
@property
|
|
451
470
|
def sync_status(self):
|
|
452
471
|
if self._sync_status is None:
|