mergepythonclient 2.3.2__py3-none-any.whl → 2.4.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 (209) hide show
  1. merge/__init__.py +3 -1
  2. merge/client.py +49 -30
  3. merge/core/client_wrapper.py +2 -2
  4. merge/resources/__init__.py +3 -2
  5. merge/resources/knowledgebase/__init__.py +472 -0
  6. merge/resources/knowledgebase/client.py +480 -0
  7. merge/resources/knowledgebase/raw_client.py +13 -0
  8. merge/resources/knowledgebase/resources/__init__.py +128 -0
  9. merge/resources/knowledgebase/resources/account_details/__init__.py +4 -0
  10. merge/resources/knowledgebase/resources/account_details/client.py +102 -0
  11. merge/resources/knowledgebase/resources/account_details/raw_client.py +91 -0
  12. merge/resources/knowledgebase/resources/account_token/__init__.py +4 -0
  13. merge/resources/knowledgebase/resources/account_token/client.py +112 -0
  14. merge/resources/knowledgebase/resources/account_token/raw_client.py +98 -0
  15. merge/resources/knowledgebase/resources/articles/__init__.py +35 -0
  16. merge/resources/knowledgebase/resources/articles/client.py +378 -0
  17. merge/resources/knowledgebase/resources/articles/raw_client.py +363 -0
  18. merge/resources/knowledgebase/resources/articles/types/__init__.py +36 -0
  19. merge/resources/knowledgebase/resources/articles/types/articles_list_request_expand.py +625 -0
  20. merge/resources/knowledgebase/resources/articles/types/articles_retrieve_request_expand.py +631 -0
  21. merge/resources/knowledgebase/resources/async_passthrough/__init__.py +32 -0
  22. merge/resources/knowledgebase/resources/async_passthrough/client.py +201 -0
  23. merge/resources/knowledgebase/resources/async_passthrough/raw_client.py +189 -0
  24. merge/resources/knowledgebase/resources/async_passthrough/types/__init__.py +32 -0
  25. merge/resources/knowledgebase/resources/async_passthrough/types/async_passthrough_retrieve_response.py +7 -0
  26. merge/resources/knowledgebase/resources/attachments/__init__.py +4 -0
  27. merge/resources/knowledgebase/resources/attachments/client.py +326 -0
  28. merge/resources/knowledgebase/resources/attachments/raw_client.py +311 -0
  29. merge/resources/knowledgebase/resources/audit_trail/__init__.py +4 -0
  30. merge/resources/knowledgebase/resources/audit_trail/client.py +178 -0
  31. merge/resources/knowledgebase/resources/audit_trail/raw_client.py +161 -0
  32. merge/resources/knowledgebase/resources/available_actions/__init__.py +4 -0
  33. merge/resources/knowledgebase/resources/available_actions/client.py +102 -0
  34. merge/resources/knowledgebase/resources/available_actions/raw_client.py +91 -0
  35. merge/resources/knowledgebase/resources/containers/__init__.py +35 -0
  36. merge/resources/knowledgebase/resources/containers/client.py +378 -0
  37. merge/resources/knowledgebase/resources/containers/raw_client.py +363 -0
  38. merge/resources/knowledgebase/resources/containers/types/__init__.py +36 -0
  39. merge/resources/knowledgebase/resources/containers/types/containers_list_request_expand.py +41 -0
  40. merge/resources/knowledgebase/resources/containers/types/containers_retrieve_request_expand.py +41 -0
  41. merge/resources/knowledgebase/resources/delete_account/__init__.py +4 -0
  42. merge/resources/knowledgebase/resources/delete_account/client.py +99 -0
  43. merge/resources/knowledgebase/resources/delete_account/raw_client.py +71 -0
  44. merge/resources/knowledgebase/resources/field_mapping/__init__.py +4 -0
  45. merge/resources/knowledgebase/resources/field_mapping/client.py +652 -0
  46. merge/resources/knowledgebase/resources/field_mapping/raw_client.py +672 -0
  47. merge/resources/knowledgebase/resources/force_resync/__init__.py +4 -0
  48. merge/resources/knowledgebase/resources/force_resync/client.py +106 -0
  49. merge/resources/knowledgebase/resources/force_resync/raw_client.py +93 -0
  50. merge/resources/knowledgebase/resources/generate_key/__init__.py +4 -0
  51. merge/resources/knowledgebase/resources/generate_key/client.py +115 -0
  52. merge/resources/knowledgebase/resources/generate_key/raw_client.py +114 -0
  53. merge/resources/knowledgebase/resources/groups/__init__.py +32 -0
  54. merge/resources/knowledgebase/resources/groups/client.py +348 -0
  55. merge/resources/knowledgebase/resources/groups/raw_client.py +333 -0
  56. merge/resources/knowledgebase/resources/groups/types/__init__.py +36 -0
  57. merge/resources/knowledgebase/resources/groups/types/groups_list_request_expand.py +25 -0
  58. merge/resources/knowledgebase/resources/groups/types/groups_retrieve_request_expand.py +25 -0
  59. merge/resources/knowledgebase/resources/issues/__init__.py +32 -0
  60. merge/resources/knowledgebase/resources/issues/client.py +331 -0
  61. merge/resources/knowledgebase/resources/issues/raw_client.py +336 -0
  62. merge/resources/knowledgebase/resources/issues/types/__init__.py +32 -0
  63. merge/resources/knowledgebase/resources/issues/types/issues_list_request_status.py +17 -0
  64. merge/resources/knowledgebase/resources/link_token/__init__.py +32 -0
  65. merge/resources/knowledgebase/resources/link_token/client.py +273 -0
  66. merge/resources/knowledgebase/resources/link_token/raw_client.py +256 -0
  67. merge/resources/knowledgebase/resources/link_token/types/__init__.py +32 -0
  68. merge/resources/knowledgebase/resources/link_token/types/end_user_details_request_language.py +7 -0
  69. merge/resources/knowledgebase/resources/linked_accounts/__init__.py +32 -0
  70. merge/resources/knowledgebase/resources/linked_accounts/client.py +265 -0
  71. merge/resources/knowledgebase/resources/linked_accounts/raw_client.py +248 -0
  72. merge/resources/knowledgebase/resources/linked_accounts/types/__init__.py +34 -0
  73. merge/resources/knowledgebase/resources/linked_accounts/types/linked_accounts_list_request_category.py +45 -0
  74. merge/resources/knowledgebase/resources/passthrough/__init__.py +4 -0
  75. merge/resources/knowledgebase/resources/passthrough/client.py +126 -0
  76. merge/resources/knowledgebase/resources/passthrough/raw_client.py +111 -0
  77. merge/resources/knowledgebase/resources/regenerate_key/__init__.py +4 -0
  78. merge/resources/knowledgebase/resources/regenerate_key/client.py +115 -0
  79. merge/resources/knowledgebase/resources/regenerate_key/raw_client.py +114 -0
  80. merge/resources/knowledgebase/resources/scopes/__init__.py +4 -0
  81. merge/resources/knowledgebase/resources/scopes/client.py +320 -0
  82. merge/resources/knowledgebase/resources/scopes/raw_client.py +267 -0
  83. merge/resources/knowledgebase/resources/sync_status/__init__.py +4 -0
  84. merge/resources/knowledgebase/resources/sync_status/client.py +130 -0
  85. merge/resources/knowledgebase/resources/sync_status/raw_client.py +121 -0
  86. merge/resources/knowledgebase/resources/users/__init__.py +4 -0
  87. merge/resources/knowledgebase/resources/users/client.py +326 -0
  88. merge/resources/knowledgebase/resources/users/raw_client.py +311 -0
  89. merge/resources/knowledgebase/resources/webhook_receivers/__init__.py +4 -0
  90. merge/resources/knowledgebase/resources/webhook_receivers/client.py +201 -0
  91. merge/resources/knowledgebase/resources/webhook_receivers/raw_client.py +208 -0
  92. merge/resources/knowledgebase/types/__init__.py +374 -0
  93. merge/resources/knowledgebase/types/account_details.py +40 -0
  94. merge/resources/knowledgebase/types/account_details_and_actions.py +54 -0
  95. merge/resources/knowledgebase/types/account_details_and_actions_category.py +7 -0
  96. merge/resources/knowledgebase/types/account_details_and_actions_integration.py +29 -0
  97. merge/resources/knowledgebase/types/account_details_and_actions_status.py +7 -0
  98. merge/resources/knowledgebase/types/account_details_and_actions_status_enum.py +36 -0
  99. merge/resources/knowledgebase/types/account_details_category.py +7 -0
  100. merge/resources/knowledgebase/types/account_integration.py +67 -0
  101. merge/resources/knowledgebase/types/account_token.py +23 -0
  102. merge/resources/knowledgebase/types/advanced_metadata.py +25 -0
  103. merge/resources/knowledgebase/types/article.py +159 -0
  104. merge/resources/knowledgebase/types/article_attachments_item.py +7 -0
  105. merge/resources/knowledgebase/types/article_author.py +7 -0
  106. merge/resources/knowledgebase/types/article_last_edited_by.py +7 -0
  107. merge/resources/knowledgebase/types/article_parent_article.py +9 -0
  108. merge/resources/knowledgebase/types/article_parent_container.py +7 -0
  109. merge/resources/knowledgebase/types/article_permissions_item.py +7 -0
  110. merge/resources/knowledgebase/types/article_root_container.py +7 -0
  111. merge/resources/knowledgebase/types/article_status.py +7 -0
  112. merge/resources/knowledgebase/types/article_type.py +7 -0
  113. merge/resources/knowledgebase/types/article_type_enum.py +31 -0
  114. merge/resources/knowledgebase/types/article_visibility.py +7 -0
  115. merge/resources/knowledgebase/types/async_passthrough_reciept.py +20 -0
  116. merge/resources/knowledgebase/types/attachment.py +67 -0
  117. merge/resources/knowledgebase/types/audit_log_event.py +97 -0
  118. merge/resources/knowledgebase/types/audit_log_event_event_type.py +7 -0
  119. merge/resources/knowledgebase/types/audit_log_event_role.py +7 -0
  120. merge/resources/knowledgebase/types/available_actions.py +33 -0
  121. merge/resources/knowledgebase/types/categories_enum.py +56 -0
  122. merge/resources/knowledgebase/types/category_enum.py +56 -0
  123. merge/resources/knowledgebase/types/common_model_scope_api.py +24 -0
  124. merge/resources/knowledgebase/types/common_model_scopes_body_request.py +23 -0
  125. merge/resources/knowledgebase/types/completed_account_initial_screen_enum.py +5 -0
  126. merge/resources/knowledgebase/types/container.py +130 -0
  127. merge/resources/knowledgebase/types/container_permissions_item.py +7 -0
  128. merge/resources/knowledgebase/types/container_status.py +7 -0
  129. merge/resources/knowledgebase/types/container_type.py +7 -0
  130. merge/resources/knowledgebase/types/container_type_enum.py +46 -0
  131. merge/resources/knowledgebase/types/container_visibility.py +7 -0
  132. merge/resources/knowledgebase/types/data_passthrough_request.py +62 -0
  133. merge/resources/knowledgebase/types/data_passthrough_request_method.py +7 -0
  134. merge/resources/knowledgebase/types/data_passthrough_request_request_format.py +7 -0
  135. merge/resources/knowledgebase/types/debug_mode_log.py +23 -0
  136. merge/resources/knowledgebase/types/debug_model_log_summary.py +22 -0
  137. merge/resources/knowledgebase/types/enabled_actions_enum.py +22 -0
  138. merge/resources/knowledgebase/types/encoding_enum.py +31 -0
  139. merge/resources/knowledgebase/types/error_validation_problem.py +24 -0
  140. merge/resources/knowledgebase/types/event_type_enum.py +231 -0
  141. merge/resources/knowledgebase/types/external_target_field_api.py +22 -0
  142. merge/resources/knowledgebase/types/external_target_field_api_response.py +25 -0
  143. merge/resources/knowledgebase/types/field_mapping_api_instance.py +26 -0
  144. merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field.py +27 -0
  145. merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field_remote_endpoint_info.py +22 -0
  146. merge/resources/knowledgebase/types/field_mapping_api_instance_response.py +25 -0
  147. merge/resources/knowledgebase/types/field_mapping_api_instance_target_field.py +22 -0
  148. merge/resources/knowledgebase/types/field_mapping_instance_response.py +27 -0
  149. merge/resources/knowledgebase/types/field_permission_deserializer.py +21 -0
  150. merge/resources/knowledgebase/types/field_permission_deserializer_request.py +21 -0
  151. merge/resources/knowledgebase/types/group.py +71 -0
  152. merge/resources/knowledgebase/types/group_parent_group.py +9 -0
  153. merge/resources/knowledgebase/types/group_users_item.py +7 -0
  154. merge/resources/knowledgebase/types/individual_common_model_scope_deserializer.py +24 -0
  155. merge/resources/knowledgebase/types/individual_common_model_scope_deserializer_request.py +24 -0
  156. merge/resources/knowledgebase/types/issue.py +36 -0
  157. merge/resources/knowledgebase/types/issue_status.py +7 -0
  158. merge/resources/knowledgebase/types/issue_status_enum.py +22 -0
  159. merge/resources/knowledgebase/types/language_enum.py +22 -0
  160. merge/resources/knowledgebase/types/last_sync_result_enum.py +46 -0
  161. merge/resources/knowledgebase/types/link_token.py +22 -0
  162. merge/resources/knowledgebase/types/method_enum.py +51 -0
  163. merge/resources/knowledgebase/types/model_operation.py +32 -0
  164. merge/resources/knowledgebase/types/model_permission_deserializer.py +20 -0
  165. merge/resources/knowledgebase/types/model_permission_deserializer_request.py +20 -0
  166. merge/resources/knowledgebase/types/multipart_form_field_request.py +57 -0
  167. merge/resources/knowledgebase/types/multipart_form_field_request_encoding.py +7 -0
  168. merge/resources/knowledgebase/types/paginated_account_details_and_actions_list.py +23 -0
  169. merge/resources/knowledgebase/types/paginated_article_list.py +30 -0
  170. merge/resources/knowledgebase/types/paginated_attachment_list.py +23 -0
  171. merge/resources/knowledgebase/types/paginated_audit_log_event_list.py +23 -0
  172. merge/resources/knowledgebase/types/paginated_container_list.py +30 -0
  173. merge/resources/knowledgebase/types/paginated_group_list.py +29 -0
  174. merge/resources/knowledgebase/types/paginated_issue_list.py +23 -0
  175. merge/resources/knowledgebase/types/paginated_sync_status_list.py +23 -0
  176. merge/resources/knowledgebase/types/paginated_user_list.py +23 -0
  177. merge/resources/knowledgebase/types/permission.py +77 -0
  178. merge/resources/knowledgebase/types/permission_group.py +7 -0
  179. merge/resources/knowledgebase/types/permission_type.py +7 -0
  180. merge/resources/knowledgebase/types/permission_type_enum.py +36 -0
  181. merge/resources/knowledgebase/types/permission_user.py +7 -0
  182. merge/resources/knowledgebase/types/remote_data.py +34 -0
  183. merge/resources/knowledgebase/types/remote_endpoint_info.py +22 -0
  184. merge/resources/knowledgebase/types/remote_field_api.py +28 -0
  185. merge/resources/knowledgebase/types/remote_field_api_advanced_metadata.py +7 -0
  186. merge/resources/knowledgebase/types/remote_field_api_coverage.py +5 -0
  187. merge/resources/knowledgebase/types/remote_field_api_response.py +25 -0
  188. merge/resources/knowledgebase/types/remote_key.py +30 -0
  189. merge/resources/knowledgebase/types/remote_response.py +36 -0
  190. merge/resources/knowledgebase/types/remote_response_response_type.py +7 -0
  191. merge/resources/knowledgebase/types/request_format_enum.py +31 -0
  192. merge/resources/knowledgebase/types/response_type_enum.py +22 -0
  193. merge/resources/knowledgebase/types/role_enum.py +46 -0
  194. merge/resources/knowledgebase/types/roles_enum.py +31 -0
  195. merge/resources/knowledgebase/types/selective_sync_configurations_usage_enum.py +24 -0
  196. merge/resources/knowledgebase/types/status_3_c_6_enum.py +36 -0
  197. merge/resources/knowledgebase/types/status_fd_5_enum.py +46 -0
  198. merge/resources/knowledgebase/types/sync_status.py +41 -0
  199. merge/resources/knowledgebase/types/sync_status_last_sync_result.py +7 -0
  200. merge/resources/knowledgebase/types/sync_status_status.py +7 -0
  201. merge/resources/knowledgebase/types/user.py +60 -0
  202. merge/resources/knowledgebase/types/validation_problem_source.py +20 -0
  203. merge/resources/knowledgebase/types/visibility_enum.py +31 -0
  204. merge/resources/knowledgebase/types/warning_validation_problem.py +24 -0
  205. merge/resources/knowledgebase/types/webhook_receiver.py +22 -0
  206. {mergepythonclient-2.3.2.dist-info → mergepythonclient-2.4.0.dist-info}/METADATA +2 -1
  207. {mergepythonclient-2.3.2.dist-info → mergepythonclient-2.4.0.dist-info}/RECORD +209 -8
  208. {mergepythonclient-2.3.2.dist-info → mergepythonclient-2.4.0.dist-info}/LICENSE.md +0 -0
  209. {mergepythonclient-2.3.2.dist-info → mergepythonclient-2.4.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,248 @@
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.request_options import RequestOptions
10
+ from .....core.unchecked_base_model import construct_type
11
+ from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList
12
+ from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory
13
+
14
+
15
+ class RawLinkedAccountsClient:
16
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
17
+ self._client_wrapper = client_wrapper
18
+
19
+ def list(
20
+ self,
21
+ *,
22
+ category: typing.Optional[LinkedAccountsListRequestCategory] = None,
23
+ cursor: typing.Optional[str] = None,
24
+ end_user_email_address: typing.Optional[str] = None,
25
+ end_user_organization_name: typing.Optional[str] = None,
26
+ end_user_origin_id: typing.Optional[str] = None,
27
+ end_user_origin_ids: typing.Optional[str] = None,
28
+ id: typing.Optional[str] = None,
29
+ ids: typing.Optional[str] = None,
30
+ include_duplicates: typing.Optional[bool] = None,
31
+ integration_name: typing.Optional[str] = None,
32
+ is_test_account: typing.Optional[str] = None,
33
+ page_size: typing.Optional[int] = None,
34
+ status: typing.Optional[str] = None,
35
+ request_options: typing.Optional[RequestOptions] = None,
36
+ ) -> HttpResponse[PaginatedAccountDetailsAndActionsList]:
37
+ """
38
+ List linked accounts for your organization.
39
+
40
+ Parameters
41
+ ----------
42
+ category : typing.Optional[LinkedAccountsListRequestCategory]
43
+ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `knowledgebase`, `mktg`, `ticketing`
44
+
45
+ * `hris` - hris
46
+ * `ats` - ats
47
+ * `accounting` - accounting
48
+ * `ticketing` - ticketing
49
+ * `crm` - crm
50
+ * `mktg` - mktg
51
+ * `filestorage` - filestorage
52
+ * `knowledgebase` - knowledgebase
53
+
54
+ cursor : typing.Optional[str]
55
+ The pagination cursor value.
56
+
57
+ end_user_email_address : typing.Optional[str]
58
+ If provided, will only return linked accounts associated with the given email address.
59
+
60
+ end_user_organization_name : typing.Optional[str]
61
+ If provided, will only return linked accounts associated with the given organization name.
62
+
63
+ end_user_origin_id : typing.Optional[str]
64
+ If provided, will only return linked accounts associated with the given origin ID.
65
+
66
+ end_user_origin_ids : typing.Optional[str]
67
+ Comma-separated list of EndUser origin IDs, making it possible to specify multiple EndUsers at once.
68
+
69
+ id : typing.Optional[str]
70
+
71
+ ids : typing.Optional[str]
72
+ Comma-separated list of LinkedAccount IDs, making it possible to specify multiple LinkedAccounts at once.
73
+
74
+ include_duplicates : typing.Optional[bool]
75
+ If `true`, will include complete production duplicates of the account specified by the `id` query parameter in the response. `id` must be for a complete production linked account.
76
+
77
+ integration_name : typing.Optional[str]
78
+ If provided, will only return linked accounts associated with the given integration name.
79
+
80
+ is_test_account : typing.Optional[str]
81
+ If included, will only include test linked accounts. If not included, will only include non-test linked accounts.
82
+
83
+ page_size : typing.Optional[int]
84
+ Number of results to return per page.
85
+
86
+ status : typing.Optional[str]
87
+ Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED`
88
+
89
+ request_options : typing.Optional[RequestOptions]
90
+ Request-specific configuration.
91
+
92
+ Returns
93
+ -------
94
+ HttpResponse[PaginatedAccountDetailsAndActionsList]
95
+
96
+ """
97
+ _response = self._client_wrapper.httpx_client.request(
98
+ "knowledgebase/v1/linked-accounts",
99
+ method="GET",
100
+ params={
101
+ "category": category,
102
+ "cursor": cursor,
103
+ "end_user_email_address": end_user_email_address,
104
+ "end_user_organization_name": end_user_organization_name,
105
+ "end_user_origin_id": end_user_origin_id,
106
+ "end_user_origin_ids": end_user_origin_ids,
107
+ "id": id,
108
+ "ids": ids,
109
+ "include_duplicates": include_duplicates,
110
+ "integration_name": integration_name,
111
+ "is_test_account": is_test_account,
112
+ "page_size": page_size,
113
+ "status": status,
114
+ },
115
+ request_options=request_options,
116
+ )
117
+ try:
118
+ if 200 <= _response.status_code < 300:
119
+ _data = typing.cast(
120
+ PaginatedAccountDetailsAndActionsList,
121
+ construct_type(
122
+ type_=PaginatedAccountDetailsAndActionsList, # type: ignore
123
+ object_=_response.json(),
124
+ ),
125
+ )
126
+ return HttpResponse(response=_response, data=_data)
127
+ _response_json = _response.json()
128
+ except JSONDecodeError:
129
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
130
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
131
+
132
+
133
+ class AsyncRawLinkedAccountsClient:
134
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
135
+ self._client_wrapper = client_wrapper
136
+
137
+ async def list(
138
+ self,
139
+ *,
140
+ category: typing.Optional[LinkedAccountsListRequestCategory] = None,
141
+ cursor: typing.Optional[str] = None,
142
+ end_user_email_address: typing.Optional[str] = None,
143
+ end_user_organization_name: typing.Optional[str] = None,
144
+ end_user_origin_id: typing.Optional[str] = None,
145
+ end_user_origin_ids: typing.Optional[str] = None,
146
+ id: typing.Optional[str] = None,
147
+ ids: typing.Optional[str] = None,
148
+ include_duplicates: typing.Optional[bool] = None,
149
+ integration_name: typing.Optional[str] = None,
150
+ is_test_account: typing.Optional[str] = None,
151
+ page_size: typing.Optional[int] = None,
152
+ status: typing.Optional[str] = None,
153
+ request_options: typing.Optional[RequestOptions] = None,
154
+ ) -> AsyncHttpResponse[PaginatedAccountDetailsAndActionsList]:
155
+ """
156
+ List linked accounts for your organization.
157
+
158
+ Parameters
159
+ ----------
160
+ category : typing.Optional[LinkedAccountsListRequestCategory]
161
+ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `knowledgebase`, `mktg`, `ticketing`
162
+
163
+ * `hris` - hris
164
+ * `ats` - ats
165
+ * `accounting` - accounting
166
+ * `ticketing` - ticketing
167
+ * `crm` - crm
168
+ * `mktg` - mktg
169
+ * `filestorage` - filestorage
170
+ * `knowledgebase` - knowledgebase
171
+
172
+ cursor : typing.Optional[str]
173
+ The pagination cursor value.
174
+
175
+ end_user_email_address : typing.Optional[str]
176
+ If provided, will only return linked accounts associated with the given email address.
177
+
178
+ end_user_organization_name : typing.Optional[str]
179
+ If provided, will only return linked accounts associated with the given organization name.
180
+
181
+ end_user_origin_id : typing.Optional[str]
182
+ If provided, will only return linked accounts associated with the given origin ID.
183
+
184
+ end_user_origin_ids : typing.Optional[str]
185
+ Comma-separated list of EndUser origin IDs, making it possible to specify multiple EndUsers at once.
186
+
187
+ id : typing.Optional[str]
188
+
189
+ ids : typing.Optional[str]
190
+ Comma-separated list of LinkedAccount IDs, making it possible to specify multiple LinkedAccounts at once.
191
+
192
+ include_duplicates : typing.Optional[bool]
193
+ If `true`, will include complete production duplicates of the account specified by the `id` query parameter in the response. `id` must be for a complete production linked account.
194
+
195
+ integration_name : typing.Optional[str]
196
+ If provided, will only return linked accounts associated with the given integration name.
197
+
198
+ is_test_account : typing.Optional[str]
199
+ If included, will only include test linked accounts. If not included, will only include non-test linked accounts.
200
+
201
+ page_size : typing.Optional[int]
202
+ Number of results to return per page.
203
+
204
+ status : typing.Optional[str]
205
+ Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED`
206
+
207
+ request_options : typing.Optional[RequestOptions]
208
+ Request-specific configuration.
209
+
210
+ Returns
211
+ -------
212
+ AsyncHttpResponse[PaginatedAccountDetailsAndActionsList]
213
+
214
+ """
215
+ _response = await self._client_wrapper.httpx_client.request(
216
+ "knowledgebase/v1/linked-accounts",
217
+ method="GET",
218
+ params={
219
+ "category": category,
220
+ "cursor": cursor,
221
+ "end_user_email_address": end_user_email_address,
222
+ "end_user_organization_name": end_user_organization_name,
223
+ "end_user_origin_id": end_user_origin_id,
224
+ "end_user_origin_ids": end_user_origin_ids,
225
+ "id": id,
226
+ "ids": ids,
227
+ "include_duplicates": include_duplicates,
228
+ "integration_name": integration_name,
229
+ "is_test_account": is_test_account,
230
+ "page_size": page_size,
231
+ "status": status,
232
+ },
233
+ request_options=request_options,
234
+ )
235
+ try:
236
+ if 200 <= _response.status_code < 300:
237
+ _data = typing.cast(
238
+ PaginatedAccountDetailsAndActionsList,
239
+ construct_type(
240
+ type_=PaginatedAccountDetailsAndActionsList, # type: ignore
241
+ object_=_response.json(),
242
+ ),
243
+ )
244
+ return AsyncHttpResponse(response=_response, data=_data)
245
+ _response_json = _response.json()
246
+ except JSONDecodeError:
247
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
248
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .linked_accounts_list_request_category import LinkedAccountsListRequestCategory
10
+ _dynamic_imports: typing.Dict[str, str] = {
11
+ "LinkedAccountsListRequestCategory": ".linked_accounts_list_request_category"
12
+ }
13
+
14
+
15
+ def __getattr__(attr_name: str) -> typing.Any:
16
+ module_name = _dynamic_imports.get(attr_name)
17
+ if module_name is None:
18
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
19
+ try:
20
+ module = import_module(module_name, __package__)
21
+ result = getattr(module, attr_name)
22
+ return result
23
+ except ImportError as e:
24
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
25
+ except AttributeError as e:
26
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
27
+
28
+
29
+ def __dir__():
30
+ lazy_attrs = list(_dynamic_imports.keys())
31
+ return sorted(lazy_attrs)
32
+
33
+
34
+ __all__ = ["LinkedAccountsListRequestCategory"]
@@ -0,0 +1,45 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class LinkedAccountsListRequestCategory(str, enum.Enum):
10
+ ACCOUNTING = "accounting"
11
+ ATS = "ats"
12
+ CRM = "crm"
13
+ FILESTORAGE = "filestorage"
14
+ HRIS = "hris"
15
+ KNOWLEDGEBASE = "knowledgebase"
16
+ MKTG = "mktg"
17
+ TICKETING = "ticketing"
18
+
19
+ def visit(
20
+ self,
21
+ accounting: typing.Callable[[], T_Result],
22
+ ats: typing.Callable[[], T_Result],
23
+ crm: typing.Callable[[], T_Result],
24
+ filestorage: typing.Callable[[], T_Result],
25
+ hris: typing.Callable[[], T_Result],
26
+ knowledgebase: typing.Callable[[], T_Result],
27
+ mktg: typing.Callable[[], T_Result],
28
+ ticketing: typing.Callable[[], T_Result],
29
+ ) -> T_Result:
30
+ if self is LinkedAccountsListRequestCategory.ACCOUNTING:
31
+ return accounting()
32
+ if self is LinkedAccountsListRequestCategory.ATS:
33
+ return ats()
34
+ if self is LinkedAccountsListRequestCategory.CRM:
35
+ return crm()
36
+ if self is LinkedAccountsListRequestCategory.FILESTORAGE:
37
+ return filestorage()
38
+ if self is LinkedAccountsListRequestCategory.HRIS:
39
+ return hris()
40
+ if self is LinkedAccountsListRequestCategory.KNOWLEDGEBASE:
41
+ return knowledgebase()
42
+ if self is LinkedAccountsListRequestCategory.MKTG:
43
+ return mktg()
44
+ if self is LinkedAccountsListRequestCategory.TICKETING:
45
+ return ticketing()
@@ -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,126 @@
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.data_passthrough_request import DataPassthroughRequest
8
+ from ...types.remote_response import RemoteResponse
9
+ from .raw_client import AsyncRawPassthroughClient, RawPassthroughClient
10
+
11
+ # this is used as the default value for optional parameters
12
+ OMIT = typing.cast(typing.Any, ...)
13
+
14
+
15
+ class PassthroughClient:
16
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
17
+ self._raw_client = RawPassthroughClient(client_wrapper=client_wrapper)
18
+
19
+ @property
20
+ def with_raw_response(self) -> RawPassthroughClient:
21
+ """
22
+ Retrieves a raw implementation of this client that returns raw responses.
23
+
24
+ Returns
25
+ -------
26
+ RawPassthroughClient
27
+ """
28
+ return self._raw_client
29
+
30
+ def create(
31
+ self, *, request: DataPassthroughRequest, request_options: typing.Optional[RequestOptions] = None
32
+ ) -> RemoteResponse:
33
+ """
34
+ Pull data from an endpoint not currently supported by Merge.
35
+
36
+ Parameters
37
+ ----------
38
+ request : DataPassthroughRequest
39
+
40
+ request_options : typing.Optional[RequestOptions]
41
+ Request-specific configuration.
42
+
43
+ Returns
44
+ -------
45
+ RemoteResponse
46
+
47
+
48
+ Examples
49
+ --------
50
+ from merge import Merge
51
+ from merge.resources.knowledgebase import DataPassthroughRequest, MethodEnum
52
+
53
+ client = Merge(
54
+ account_token="YOUR_ACCOUNT_TOKEN",
55
+ api_key="YOUR_API_KEY",
56
+ )
57
+ client.knowledgebase.passthrough.create(
58
+ request=DataPassthroughRequest(
59
+ method=MethodEnum.GET,
60
+ path="/scooters",
61
+ ),
62
+ )
63
+ """
64
+ _response = self._raw_client.create(request=request, request_options=request_options)
65
+ return _response.data
66
+
67
+
68
+ class AsyncPassthroughClient:
69
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
70
+ self._raw_client = AsyncRawPassthroughClient(client_wrapper=client_wrapper)
71
+
72
+ @property
73
+ def with_raw_response(self) -> AsyncRawPassthroughClient:
74
+ """
75
+ Retrieves a raw implementation of this client that returns raw responses.
76
+
77
+ Returns
78
+ -------
79
+ AsyncRawPassthroughClient
80
+ """
81
+ return self._raw_client
82
+
83
+ async def create(
84
+ self, *, request: DataPassthroughRequest, request_options: typing.Optional[RequestOptions] = None
85
+ ) -> RemoteResponse:
86
+ """
87
+ Pull data from an endpoint not currently supported by Merge.
88
+
89
+ Parameters
90
+ ----------
91
+ request : DataPassthroughRequest
92
+
93
+ request_options : typing.Optional[RequestOptions]
94
+ Request-specific configuration.
95
+
96
+ Returns
97
+ -------
98
+ RemoteResponse
99
+
100
+
101
+ Examples
102
+ --------
103
+ import asyncio
104
+
105
+ from merge import AsyncMerge
106
+ from merge.resources.knowledgebase import DataPassthroughRequest, MethodEnum
107
+
108
+ client = AsyncMerge(
109
+ account_token="YOUR_ACCOUNT_TOKEN",
110
+ api_key="YOUR_API_KEY",
111
+ )
112
+
113
+
114
+ async def main() -> None:
115
+ await client.knowledgebase.passthrough.create(
116
+ request=DataPassthroughRequest(
117
+ method=MethodEnum.GET,
118
+ path="/scooters",
119
+ ),
120
+ )
121
+
122
+
123
+ asyncio.run(main())
124
+ """
125
+ _response = await self._raw_client.create(request=request, request_options=request_options)
126
+ return _response.data
@@ -0,0 +1,111 @@
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.request_options import RequestOptions
10
+ from .....core.unchecked_base_model import construct_type
11
+ from ...types.data_passthrough_request import DataPassthroughRequest
12
+ from ...types.remote_response import RemoteResponse
13
+
14
+ # this is used as the default value for optional parameters
15
+ OMIT = typing.cast(typing.Any, ...)
16
+
17
+
18
+ class RawPassthroughClient:
19
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
20
+ self._client_wrapper = client_wrapper
21
+
22
+ def create(
23
+ self, *, request: DataPassthroughRequest, request_options: typing.Optional[RequestOptions] = None
24
+ ) -> HttpResponse[RemoteResponse]:
25
+ """
26
+ Pull data from an endpoint not currently supported by Merge.
27
+
28
+ Parameters
29
+ ----------
30
+ request : DataPassthroughRequest
31
+
32
+ request_options : typing.Optional[RequestOptions]
33
+ Request-specific configuration.
34
+
35
+ Returns
36
+ -------
37
+ HttpResponse[RemoteResponse]
38
+
39
+ """
40
+ _response = self._client_wrapper.httpx_client.request(
41
+ "knowledgebase/v1/passthrough",
42
+ method="POST",
43
+ json=request,
44
+ headers={
45
+ "content-type": "application/json",
46
+ },
47
+ request_options=request_options,
48
+ omit=OMIT,
49
+ )
50
+ try:
51
+ if 200 <= _response.status_code < 300:
52
+ _data = typing.cast(
53
+ RemoteResponse,
54
+ construct_type(
55
+ type_=RemoteResponse, # type: ignore
56
+ object_=_response.json(),
57
+ ),
58
+ )
59
+ return HttpResponse(response=_response, data=_data)
60
+ _response_json = _response.json()
61
+ except JSONDecodeError:
62
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
63
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
64
+
65
+
66
+ class AsyncRawPassthroughClient:
67
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
68
+ self._client_wrapper = client_wrapper
69
+
70
+ async def create(
71
+ self, *, request: DataPassthroughRequest, request_options: typing.Optional[RequestOptions] = None
72
+ ) -> AsyncHttpResponse[RemoteResponse]:
73
+ """
74
+ Pull data from an endpoint not currently supported by Merge.
75
+
76
+ Parameters
77
+ ----------
78
+ request : DataPassthroughRequest
79
+
80
+ request_options : typing.Optional[RequestOptions]
81
+ Request-specific configuration.
82
+
83
+ Returns
84
+ -------
85
+ AsyncHttpResponse[RemoteResponse]
86
+
87
+ """
88
+ _response = await self._client_wrapper.httpx_client.request(
89
+ "knowledgebase/v1/passthrough",
90
+ method="POST",
91
+ json=request,
92
+ headers={
93
+ "content-type": "application/json",
94
+ },
95
+ request_options=request_options,
96
+ omit=OMIT,
97
+ )
98
+ try:
99
+ if 200 <= _response.status_code < 300:
100
+ _data = typing.cast(
101
+ RemoteResponse,
102
+ construct_type(
103
+ type_=RemoteResponse, # type: ignore
104
+ object_=_response.json(),
105
+ ),
106
+ )
107
+ return AsyncHttpResponse(response=_response, data=_data)
108
+ _response_json = _response.json()
109
+ except JSONDecodeError:
110
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
111
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -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,115 @@
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.remote_key import RemoteKey
8
+ from .raw_client import AsyncRawRegenerateKeyClient, RawRegenerateKeyClient
9
+
10
+ # this is used as the default value for optional parameters
11
+ OMIT = typing.cast(typing.Any, ...)
12
+
13
+
14
+ class RegenerateKeyClient:
15
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
16
+ self._raw_client = RawRegenerateKeyClient(client_wrapper=client_wrapper)
17
+
18
+ @property
19
+ def with_raw_response(self) -> RawRegenerateKeyClient:
20
+ """
21
+ Retrieves a raw implementation of this client that returns raw responses.
22
+
23
+ Returns
24
+ -------
25
+ RawRegenerateKeyClient
26
+ """
27
+ return self._raw_client
28
+
29
+ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] = None) -> RemoteKey:
30
+ """
31
+ Exchange remote keys.
32
+
33
+ Parameters
34
+ ----------
35
+ name : str
36
+ The name of the remote key
37
+
38
+ request_options : typing.Optional[RequestOptions]
39
+ Request-specific configuration.
40
+
41
+ Returns
42
+ -------
43
+ RemoteKey
44
+
45
+
46
+ Examples
47
+ --------
48
+ from merge import Merge
49
+
50
+ client = Merge(
51
+ account_token="YOUR_ACCOUNT_TOKEN",
52
+ api_key="YOUR_API_KEY",
53
+ )
54
+ client.knowledgebase.regenerate_key.create(
55
+ name="Remote Deployment Key 1",
56
+ )
57
+ """
58
+ _response = self._raw_client.create(name=name, request_options=request_options)
59
+ return _response.data
60
+
61
+
62
+ class AsyncRegenerateKeyClient:
63
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
64
+ self._raw_client = AsyncRawRegenerateKeyClient(client_wrapper=client_wrapper)
65
+
66
+ @property
67
+ def with_raw_response(self) -> AsyncRawRegenerateKeyClient:
68
+ """
69
+ Retrieves a raw implementation of this client that returns raw responses.
70
+
71
+ Returns
72
+ -------
73
+ AsyncRawRegenerateKeyClient
74
+ """
75
+ return self._raw_client
76
+
77
+ async def create(self, *, name: str, request_options: typing.Optional[RequestOptions] = None) -> RemoteKey:
78
+ """
79
+ Exchange remote keys.
80
+
81
+ Parameters
82
+ ----------
83
+ name : str
84
+ The name of the remote key
85
+
86
+ request_options : typing.Optional[RequestOptions]
87
+ Request-specific configuration.
88
+
89
+ Returns
90
+ -------
91
+ RemoteKey
92
+
93
+
94
+ Examples
95
+ --------
96
+ import asyncio
97
+
98
+ from merge import AsyncMerge
99
+
100
+ client = AsyncMerge(
101
+ account_token="YOUR_ACCOUNT_TOKEN",
102
+ api_key="YOUR_API_KEY",
103
+ )
104
+
105
+
106
+ async def main() -> None:
107
+ await client.knowledgebase.regenerate_key.create(
108
+ name="Remote Deployment Key 1",
109
+ )
110
+
111
+
112
+ asyncio.run(main())
113
+ """
114
+ _response = await self._raw_client.create(name=name, request_options=request_options)
115
+ return _response.data