mergepythonclient 2.6.3__py3-none-any.whl → 2.6.4__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/client.py CHANGED
@@ -88,23 +88,15 @@ class Merge:
88
88
  else httpx.Client(timeout=_defaulted_timeout),
89
89
  timeout=_defaulted_timeout,
90
90
  )
91
- self._chat: typing.Optional[ChatClient] = None
92
91
  self._ats: typing.Optional[AtsClient] = None
92
+ self._chat: typing.Optional[ChatClient] = None
93
93
  self._crm: typing.Optional[CrmClient] = None
94
+ self._filestorage: typing.Optional[FilestorageClient] = None
94
95
  self._hris: typing.Optional[HrisClient] = None
95
96
  self._knowledgebase: typing.Optional[KnowledgebaseClient] = None
96
97
  self._ticketing: typing.Optional[TicketingClient] = None
97
- self._filestorage: typing.Optional[FilestorageClient] = None
98
98
  self._accounting: typing.Optional[AccountingClient] = None
99
99
 
100
- @property
101
- def chat(self):
102
- if self._chat is None:
103
- from .resources.chat.client import ChatClient # noqa: E402
104
-
105
- self._chat = ChatClient(client_wrapper=self._client_wrapper)
106
- return self._chat
107
-
108
100
  @property
109
101
  def ats(self):
110
102
  if self._ats is None:
@@ -113,6 +105,14 @@ class Merge:
113
105
  self._ats = AtsClient(client_wrapper=self._client_wrapper)
114
106
  return self._ats
115
107
 
108
+ @property
109
+ def chat(self):
110
+ if self._chat is None:
111
+ from .resources.chat.client import ChatClient # noqa: E402
112
+
113
+ self._chat = ChatClient(client_wrapper=self._client_wrapper)
114
+ return self._chat
115
+
116
116
  @property
117
117
  def crm(self):
118
118
  if self._crm is None:
@@ -121,6 +121,14 @@ class Merge:
121
121
  self._crm = CrmClient(client_wrapper=self._client_wrapper)
122
122
  return self._crm
123
123
 
124
+ @property
125
+ def filestorage(self):
126
+ if self._filestorage is None:
127
+ from .resources.filestorage.client import FilestorageClient # noqa: E402
128
+
129
+ self._filestorage = FilestorageClient(client_wrapper=self._client_wrapper)
130
+ return self._filestorage
131
+
124
132
  @property
125
133
  def hris(self):
126
134
  if self._hris is None:
@@ -145,14 +153,6 @@ class Merge:
145
153
  self._ticketing = TicketingClient(client_wrapper=self._client_wrapper)
146
154
  return self._ticketing
147
155
 
148
- @property
149
- def filestorage(self):
150
- if self._filestorage is None:
151
- from .resources.filestorage.client import FilestorageClient # noqa: E402
152
-
153
- self._filestorage = FilestorageClient(client_wrapper=self._client_wrapper)
154
- return self._filestorage
155
-
156
156
  @property
157
157
  def accounting(self):
158
158
  if self._accounting is None:
@@ -231,23 +231,15 @@ class AsyncMerge:
231
231
  else httpx.AsyncClient(timeout=_defaulted_timeout),
232
232
  timeout=_defaulted_timeout,
233
233
  )
234
- self._chat: typing.Optional[AsyncChatClient] = None
235
234
  self._ats: typing.Optional[AsyncAtsClient] = None
235
+ self._chat: typing.Optional[AsyncChatClient] = None
236
236
  self._crm: typing.Optional[AsyncCrmClient] = None
237
+ self._filestorage: typing.Optional[AsyncFilestorageClient] = None
237
238
  self._hris: typing.Optional[AsyncHrisClient] = None
238
239
  self._knowledgebase: typing.Optional[AsyncKnowledgebaseClient] = None
239
240
  self._ticketing: typing.Optional[AsyncTicketingClient] = None
240
- self._filestorage: typing.Optional[AsyncFilestorageClient] = None
241
241
  self._accounting: typing.Optional[AsyncAccountingClient] = None
242
242
 
243
- @property
244
- def chat(self):
245
- if self._chat is None:
246
- from .resources.chat.client import AsyncChatClient # noqa: E402
247
-
248
- self._chat = AsyncChatClient(client_wrapper=self._client_wrapper)
249
- return self._chat
250
-
251
243
  @property
252
244
  def ats(self):
253
245
  if self._ats is None:
@@ -256,6 +248,14 @@ class AsyncMerge:
256
248
  self._ats = AsyncAtsClient(client_wrapper=self._client_wrapper)
257
249
  return self._ats
258
250
 
251
+ @property
252
+ def chat(self):
253
+ if self._chat is None:
254
+ from .resources.chat.client import AsyncChatClient # noqa: E402
255
+
256
+ self._chat = AsyncChatClient(client_wrapper=self._client_wrapper)
257
+ return self._chat
258
+
259
259
  @property
260
260
  def crm(self):
261
261
  if self._crm is None:
@@ -264,6 +264,14 @@ class AsyncMerge:
264
264
  self._crm = AsyncCrmClient(client_wrapper=self._client_wrapper)
265
265
  return self._crm
266
266
 
267
+ @property
268
+ def filestorage(self):
269
+ if self._filestorage is None:
270
+ from .resources.filestorage.client import AsyncFilestorageClient # noqa: E402
271
+
272
+ self._filestorage = AsyncFilestorageClient(client_wrapper=self._client_wrapper)
273
+ return self._filestorage
274
+
267
275
  @property
268
276
  def hris(self):
269
277
  if self._hris is None:
@@ -288,14 +296,6 @@ class AsyncMerge:
288
296
  self._ticketing = AsyncTicketingClient(client_wrapper=self._client_wrapper)
289
297
  return self._ticketing
290
298
 
291
- @property
292
- def filestorage(self):
293
- if self._filestorage is None:
294
- from .resources.filestorage.client import AsyncFilestorageClient # noqa: E402
295
-
296
- self._filestorage = AsyncFilestorageClient(client_wrapper=self._client_wrapper)
297
- return self._filestorage
298
-
299
299
  @property
300
300
  def accounting(self):
301
301
  if self._accounting is None:
@@ -24,10 +24,10 @@ class BaseClientWrapper:
24
24
 
25
25
  def get_headers(self) -> typing.Dict[str, str]:
26
26
  headers: typing.Dict[str, str] = {
27
- "User-Agent": "MergePythonClient/2.6.3",
27
+ "User-Agent": "MergePythonClient/2.6.4",
28
28
  "X-Fern-Language": "Python",
29
29
  "X-Fern-SDK-Name": "MergePythonClient",
30
- "X-Fern-SDK-Version": "2.6.3",
30
+ "X-Fern-SDK-Version": "2.6.4",
31
31
  **(self.get_custom_headers() or {}),
32
32
  }
33
33
  if self._account_token is not None:
@@ -55,6 +55,11 @@ class Member(UncheckedBaseModel):
55
55
  When the third party's conversation was updated.
56
56
  """
57
57
 
58
+ visible_history_start_datetime: typing.Optional[dt.datetime] = pydantic.Field(default=None)
59
+ """
60
+ The earliest datetime of messages the member can access in the conversation. If null, the member can see the full history.
61
+ """
62
+
58
63
  remote_was_deleted: typing.Optional[bool] = pydantic.Field(default=None)
59
64
  """
60
65
  Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mergepythonclient
3
- Version: 2.6.3
3
+ Version: 2.6.4
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -70,17 +70,17 @@ Instantiate and use the client with the following:
70
70
 
71
71
  ```python
72
72
  from merge import Merge
73
- from merge.resources.chat import DataPassthroughRequest, MethodEnum
73
+ from merge.resources.ats import ActivityRequest
74
74
 
75
75
  client = Merge(
76
76
  account_token="YOUR_ACCOUNT_TOKEN",
77
77
  api_key="YOUR_API_KEY",
78
78
  )
79
- client.chat.async_passthrough.create(
80
- request=DataPassthroughRequest(
81
- method=MethodEnum.GET,
82
- path="/scooters",
83
- ),
79
+ client.ats.activities.create(
80
+ is_debug_mode=True,
81
+ run_async=True,
82
+ model=ActivityRequest(),
83
+ remote_user_id="remote_user_id",
84
84
  )
85
85
  ```
86
86
 
@@ -115,7 +115,7 @@ The SDK also exports an `async` client so that you can make non-blocking calls t
115
115
  import asyncio
116
116
 
117
117
  from merge import AsyncMerge
118
- from merge.resources.chat import DataPassthroughRequest, MethodEnum
118
+ from merge.resources.ats import ActivityRequest
119
119
 
120
120
  client = AsyncMerge(
121
121
  account_token="YOUR_ACCOUNT_TOKEN",
@@ -124,11 +124,11 @@ client = AsyncMerge(
124
124
 
125
125
 
126
126
  async def main() -> None:
127
- await client.chat.async_passthrough.create(
128
- request=DataPassthroughRequest(
129
- method=MethodEnum.GET,
130
- path="/scooters",
131
- ),
127
+ await client.ats.activities.create(
128
+ is_debug_mode=True,
129
+ run_async=True,
130
+ model=ActivityRequest(),
131
+ remote_user_id="remote_user_id",
132
132
  )
133
133
 
134
134
 
@@ -144,7 +144,7 @@ will be thrown.
144
144
  from merge.core.api_error import ApiError
145
145
 
146
146
  try:
147
- client.chat.async_passthrough.create(...)
147
+ client.ats.activities.create(...)
148
148
  except ApiError as e:
149
149
  print(e.status_code)
150
150
  print(e.body)
@@ -163,7 +163,7 @@ from merge import Merge
163
163
  client = Merge(
164
164
  ...,
165
165
  )
166
- response = client.chat.async_passthrough.with_raw_response.create(...)
166
+ response = client.ats.activities.with_raw_response.create(...)
167
167
  print(response.headers) # access the response headers
168
168
  print(response.data) # access the underlying object
169
169
  ```
@@ -183,7 +183,7 @@ A request is deemed retryable when any of the following HTTP status codes is ret
183
183
  Use the `max_retries` request option to configure this behavior.
184
184
 
185
185
  ```python
186
- client.chat.async_passthrough.create(..., request_options={
186
+ client.ats.activities.create(..., request_options={
187
187
  "max_retries": 1
188
188
  })
189
189
  ```
@@ -203,7 +203,7 @@ client = Merge(
203
203
 
204
204
 
205
205
  # Override timeout for a specific method
206
- client.chat.async_passthrough.create(..., request_options={
206
+ client.ats.activities.create(..., request_options={
207
207
  "timeout_in_seconds": 1
208
208
  })
209
209
  ```
@@ -292,3 +292,4 @@ while response.next is not None:
292
292
 
293
293
 
294
294
 
295
+
@@ -1,8 +1,8 @@
1
1
  merge/__init__.py,sha256=K3KxH-H0yK6Mp-fSHYH_I6TxE3EquIdXUOeclJm6yYg,1697
2
- merge/client.py,sha256=X_HQAqKZIQzXgmzrPQhT1f2sgT1eL08EKA6R6ttbaXw,11937
2
+ merge/client.py,sha256=_bxMTHVjU04PvdYXojUCiTwazrodJRBX9dtthm6pdYY,11937
3
3
  merge/core/__init__.py,sha256=HNk-wnH_j2yAf7IroaZM9JJFe4mnkNHq06t2QmaBweg,3862
4
4
  merge/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
5
- merge/core/client_wrapper.py,sha256=_nM_lm2uOiLrCI-iJh5_GHijsXVZy348aRKjpoW_Tjs,3096
5
+ merge/core/client_wrapper.py,sha256=Miyn232kW6Z2U-d1KYHAvdi8070Ftmxwbs5W5cj-pwE,3096
6
6
  merge/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  merge/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
8
8
  merge/core/force_multipart.py,sha256=cH981xLy0kZVKiZZkFoeUjgJ2Zuq7KXB2aRAnmHzRDc,477
@@ -1242,7 +1242,7 @@ merge/resources/chat/types/issue_status_enum.py,sha256=LyAyUrrmvKbovYkhYTPMzVGvv
1242
1242
  merge/resources/chat/types/language_enum.py,sha256=FuF4oIahcE954MHHDIZHmvBf9ENLvUrkmNFryHzO-oE,469
1243
1243
  merge/resources/chat/types/last_sync_result_enum.py,sha256=iKiu1Zk-mue5Ki725f7_DorLDboH1l4W86upM77y1hQ,1319
1244
1244
  merge/resources/chat/types/link_token.py,sha256=fYa5j3XnK01j8XHUx_A6fa95qXQ3OrRHs43vW54VU1g,663
1245
- merge/resources/chat/types/member.py,sha256=boBYnAMTxhItGVYvK9j3jpcysXIq3-1B5VoUKKoMPLM,2497
1245
+ merge/resources/chat/types/member.py,sha256=hNY1wMOOJKO-3kBM6dqfAtHtPXPybOFEk6Nowiy6_rg,2737
1246
1246
  merge/resources/chat/types/message.py,sha256=-DKy1jQJad6xpw4HD7bkZhZAi61N7Koqjdzjvx1pRSQ,2694
1247
1247
  merge/resources/chat/types/method_enum.py,sha256=TSpKQkDMHSQWo_kyeYo4g1uh7DqyVgZx_REojfiLw0Q,1275
1248
1248
  merge/resources/chat/types/model_operation.py,sha256=43OJAKzDJO2_lza7ZpUZRweK8d467yGi7Gc61nGHHbg,976
@@ -2682,7 +2682,7 @@ merge/resources/ticketing/types/viewer_user.py,sha256=VrOx8xWvNadSYjdErIMg2pPsHV
2682
2682
  merge/resources/ticketing/types/warning_validation_problem.py,sha256=RXDtt3t3FwIeGGXkIr_OHOAybDZg44L_5hOqa2sLlJ0,736
2683
2683
  merge/resources/ticketing/types/webhook_receiver.py,sha256=g4KQnc-vZPJGlXK-OOFIn2WGyTLKoeaq9TPWQ46VwFY,623
2684
2684
  merge/version.py,sha256=kLtHrVsKjnCqlIC_JtezQUWrCPQkXhjpD_2pdlcGh18,84
2685
- mergepythonclient-2.6.3.dist-info/LICENSE.md,sha256=WKO7xLnLSUInldiq5i25eVqKAjwIUKenaS4Cgir2Iuw,3275
2686
- mergepythonclient-2.6.3.dist-info/METADATA,sha256=UFKiu9VXHRFjx6z1orD9tq7FyRJCdwde4mRk8TiwHsQ,7974
2687
- mergepythonclient-2.6.3.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
2688
- mergepythonclient-2.6.3.dist-info/RECORD,,
2685
+ mergepythonclient-2.6.4.dist-info/LICENSE.md,sha256=WKO7xLnLSUInldiq5i25eVqKAjwIUKenaS4Cgir2Iuw,3275
2686
+ mergepythonclient-2.6.4.dist-info/METADATA,sha256=CUPStCQXbElQpwfCDzbHJg7D5iEUutHSRqBrtZfr0ec,7907
2687
+ mergepythonclient-2.6.4.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
2688
+ mergepythonclient-2.6.4.dist-info/RECORD,,