universal-mcp-applications 0.1.33__py3-none-any.whl → 0.1.39rc16__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.

Potentially problematic release.


This version of universal-mcp-applications might be problematic. Click here for more details.

Files changed (119) hide show
  1. universal_mcp/applications/BEST_PRACTICES.md +1 -1
  2. universal_mcp/applications/ahrefs/app.py +92 -238
  3. universal_mcp/applications/airtable/app.py +36 -135
  4. universal_mcp/applications/apollo/app.py +124 -477
  5. universal_mcp/applications/asana/app.py +605 -1755
  6. universal_mcp/applications/aws_s3/app.py +63 -119
  7. universal_mcp/applications/bill/app.py +644 -2055
  8. universal_mcp/applications/box/app.py +1246 -4159
  9. universal_mcp/applications/braze/app.py +410 -1476
  10. universal_mcp/applications/browser_use/README.md +15 -1
  11. universal_mcp/applications/browser_use/__init__.py +1 -0
  12. universal_mcp/applications/browser_use/app.py +91 -26
  13. universal_mcp/applications/cal_com_v2/app.py +207 -625
  14. universal_mcp/applications/calendly/app.py +103 -242
  15. universal_mcp/applications/canva/app.py +75 -140
  16. universal_mcp/applications/clickup/app.py +331 -798
  17. universal_mcp/applications/coda/app.py +240 -520
  18. universal_mcp/applications/confluence/app.py +497 -1285
  19. universal_mcp/applications/contentful/app.py +40 -155
  20. universal_mcp/applications/crustdata/app.py +44 -123
  21. universal_mcp/applications/dialpad/app.py +451 -924
  22. universal_mcp/applications/digitalocean/app.py +2071 -6082
  23. universal_mcp/applications/domain_checker/app.py +3 -54
  24. universal_mcp/applications/e2b/app.py +17 -68
  25. universal_mcp/applications/elevenlabs/README.md +27 -3
  26. universal_mcp/applications/elevenlabs/app.py +741 -74
  27. universal_mcp/applications/exa/README.md +8 -4
  28. universal_mcp/applications/exa/app.py +415 -186
  29. universal_mcp/applications/falai/README.md +5 -7
  30. universal_mcp/applications/falai/app.py +156 -232
  31. universal_mcp/applications/figma/app.py +91 -175
  32. universal_mcp/applications/file_system/app.py +2 -13
  33. universal_mcp/applications/firecrawl/app.py +198 -176
  34. universal_mcp/applications/fireflies/app.py +59 -281
  35. universal_mcp/applications/fpl/app.py +92 -529
  36. universal_mcp/applications/fpl/utils/fixtures.py +15 -49
  37. universal_mcp/applications/fpl/utils/helper.py +25 -89
  38. universal_mcp/applications/fpl/utils/league_utils.py +20 -64
  39. universal_mcp/applications/ghost_content/app.py +70 -179
  40. universal_mcp/applications/github/app.py +30 -67
  41. universal_mcp/applications/gong/app.py +142 -302
  42. universal_mcp/applications/google_calendar/app.py +26 -78
  43. universal_mcp/applications/google_docs/README.md +15 -14
  44. universal_mcp/applications/google_docs/app.py +103 -206
  45. universal_mcp/applications/google_drive/app.py +194 -793
  46. universal_mcp/applications/google_gemini/app.py +68 -59
  47. universal_mcp/applications/google_mail/README.md +1 -0
  48. universal_mcp/applications/google_mail/app.py +93 -214
  49. universal_mcp/applications/google_searchconsole/app.py +25 -58
  50. universal_mcp/applications/google_sheet/README.md +2 -1
  51. universal_mcp/applications/google_sheet/app.py +226 -624
  52. universal_mcp/applications/google_sheet/helper.py +26 -53
  53. universal_mcp/applications/hashnode/app.py +57 -269
  54. universal_mcp/applications/heygen/README.md +10 -32
  55. universal_mcp/applications/heygen/app.py +339 -811
  56. universal_mcp/applications/http_tools/app.py +10 -32
  57. universal_mcp/applications/hubspot/README.md +1 -1
  58. universal_mcp/applications/hubspot/app.py +7508 -99
  59. universal_mcp/applications/jira/app.py +2419 -8334
  60. universal_mcp/applications/klaviyo/app.py +739 -1621
  61. universal_mcp/applications/linkedin/README.md +18 -1
  62. universal_mcp/applications/linkedin/app.py +729 -251
  63. universal_mcp/applications/mailchimp/app.py +696 -1851
  64. universal_mcp/applications/markitdown/app.py +8 -20
  65. universal_mcp/applications/miro/app.py +333 -815
  66. universal_mcp/applications/ms_teams/app.py +420 -1407
  67. universal_mcp/applications/neon/app.py +144 -250
  68. universal_mcp/applications/notion/app.py +38 -53
  69. universal_mcp/applications/onedrive/app.py +26 -48
  70. universal_mcp/applications/openai/app.py +43 -166
  71. universal_mcp/applications/outlook/README.md +22 -9
  72. universal_mcp/applications/outlook/app.py +403 -141
  73. universal_mcp/applications/perplexity/README.md +2 -1
  74. universal_mcp/applications/perplexity/app.py +161 -20
  75. universal_mcp/applications/pipedrive/app.py +1021 -3331
  76. universal_mcp/applications/posthog/app.py +272 -541
  77. universal_mcp/applications/reddit/app.py +65 -164
  78. universal_mcp/applications/resend/app.py +72 -139
  79. universal_mcp/applications/retell/app.py +23 -50
  80. universal_mcp/applications/rocketlane/app.py +252 -965
  81. universal_mcp/applications/scraper/app.py +114 -142
  82. universal_mcp/applications/semanticscholar/app.py +36 -78
  83. universal_mcp/applications/semrush/app.py +44 -78
  84. universal_mcp/applications/sendgrid/app.py +826 -1576
  85. universal_mcp/applications/sentry/app.py +444 -1079
  86. universal_mcp/applications/serpapi/app.py +44 -146
  87. universal_mcp/applications/sharepoint/app.py +27 -49
  88. universal_mcp/applications/shopify/app.py +1748 -4486
  89. universal_mcp/applications/shortcut/app.py +275 -536
  90. universal_mcp/applications/slack/app.py +43 -125
  91. universal_mcp/applications/spotify/app.py +206 -405
  92. universal_mcp/applications/supabase/app.py +174 -283
  93. universal_mcp/applications/tavily/app.py +2 -2
  94. universal_mcp/applications/trello/app.py +853 -2816
  95. universal_mcp/applications/twilio/app.py +27 -62
  96. universal_mcp/applications/twitter/api_segments/compliance_api.py +4 -14
  97. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +6 -18
  98. universal_mcp/applications/twitter/api_segments/likes_api.py +1 -3
  99. universal_mcp/applications/twitter/api_segments/lists_api.py +5 -15
  100. universal_mcp/applications/twitter/api_segments/trends_api.py +1 -3
  101. universal_mcp/applications/twitter/api_segments/tweets_api.py +9 -31
  102. universal_mcp/applications/twitter/api_segments/usage_api.py +1 -5
  103. universal_mcp/applications/twitter/api_segments/users_api.py +14 -42
  104. universal_mcp/applications/whatsapp/app.py +35 -186
  105. universal_mcp/applications/whatsapp/audio.py +2 -6
  106. universal_mcp/applications/whatsapp/whatsapp.py +17 -51
  107. universal_mcp/applications/whatsapp_business/app.py +86 -299
  108. universal_mcp/applications/wrike/app.py +80 -153
  109. universal_mcp/applications/yahoo_finance/app.py +19 -65
  110. universal_mcp/applications/youtube/app.py +120 -306
  111. universal_mcp/applications/zenquotes/app.py +3 -3
  112. {universal_mcp_applications-0.1.33.dist-info → universal_mcp_applications-0.1.39rc16.dist-info}/METADATA +4 -2
  113. {universal_mcp_applications-0.1.33.dist-info → universal_mcp_applications-0.1.39rc16.dist-info}/RECORD +115 -119
  114. {universal_mcp_applications-0.1.33.dist-info → universal_mcp_applications-0.1.39rc16.dist-info}/WHEEL +1 -1
  115. universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  116. universal_mcp/applications/hubspot/api_segments/api_segment_base.py +0 -54
  117. universal_mcp/applications/hubspot/api_segments/crm_api.py +0 -7337
  118. universal_mcp/applications/hubspot/api_segments/marketing_api.py +0 -1467
  119. {universal_mcp_applications-0.1.33.dist-info → universal_mcp_applications-0.1.39rc16.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,4 @@
1
1
  from typing import Any
2
-
3
2
  from universal_mcp.applications.application import APIApplication
4
3
  from universal_mcp.integrations import Integration
5
4
 
@@ -19,7 +18,7 @@ class WrikeApp(APIApplication):
19
18
  super().__init__(name="wrike", integration=integration, **kwargs)
20
19
  self.base_url = "https://www.wrike.com/api/v4"
21
20
 
22
- def get_contacts(self, deleted=None, fields=None, metadata=None) -> Any:
21
+ async def get_contacts(self, deleted=None, fields=None, metadata=None) -> Any:
23
22
  """
24
23
  Retrieves contacts from the server with optional deleted status filtering, field selection, and metadata inclusion.
25
24
 
@@ -38,20 +37,12 @@ class WrikeApp(APIApplication):
38
37
  retrieve, contacts, filter, api, important
39
38
  """
40
39
  url = f"{self.base_url}/contacts"
41
- query_params = {
42
- k: v
43
- for k, v in [
44
- ("deleted", deleted),
45
- ("fields", fields),
46
- ("metadata", metadata),
47
- ]
48
- if v is not None
49
- }
50
- response = self._get(url, params=query_params)
40
+ query_params = {k: v for k, v in [("deleted", deleted), ("fields", fields), ("metadata", metadata)] if v is not None}
41
+ response = await self._aget(url, params=query_params)
51
42
  response.raise_for_status()
52
43
  return response.json()
53
44
 
54
- def get_contacts_by_contactid(self, contactId, fields=None) -> Any:
45
+ async def get_contacts_by_contactid(self, contactId, fields=None) -> Any:
55
46
  """
56
47
  Retrieves contact information for a specific contact ID, optionally returning only specified fields.
57
48
 
@@ -72,19 +63,12 @@ class WrikeApp(APIApplication):
72
63
  raise ValueError("Missing required parameter 'contactId'")
73
64
  url = f"{self.base_url}/contacts/{contactId}"
74
65
  query_params = {k: v for k, v in [("fields", fields)] if v is not None}
75
- response = self._get(url, params=query_params)
66
+ response = await self._aget(url, params=query_params)
76
67
  response.raise_for_status()
77
68
  return response.json()
78
69
 
79
- def put_contacts_by_contactid(
80
- self,
81
- contactId,
82
- metadata=None,
83
- currentBillRate=None,
84
- currentCostRate=None,
85
- jobRoleId=None,
86
- customFields=None,
87
- fields=None,
70
+ async def put_contacts_by_contactid(
71
+ self, contactId, metadata=None, currentBillRate=None, currentCostRate=None, jobRoleId=None, customFields=None, fields=None
88
72
  ) -> Any:
89
73
  """
90
74
  Updates an existing contact using the specified contact ID with provided details including metadata, billing/cost rates, job role, and custom fields.
@@ -121,11 +105,11 @@ class WrikeApp(APIApplication):
121
105
  request_body = {k: v for k, v in request_body.items() if v is not None}
122
106
  url = f"{self.base_url}/contacts/{contactId}"
123
107
  query_params = {}
124
- response = self._put(url, data=request_body, params=query_params)
108
+ response = await self._aput(url, data=request_body, params=query_params)
125
109
  response.raise_for_status()
126
110
  return response.json()
127
111
 
128
- def get_users_by_userid(self, userId) -> Any:
112
+ async def get_users_by_userid(self, userId) -> Any:
129
113
  """
130
114
  Retrieves user information by ID from the API endpoint.
131
115
 
@@ -146,11 +130,11 @@ class WrikeApp(APIApplication):
146
130
  raise ValueError("Missing required parameter 'userId'")
147
131
  url = f"{self.base_url}/users/{userId}"
148
132
  query_params = {}
149
- response = self._get(url, params=query_params)
133
+ response = await self._aget(url, params=query_params)
150
134
  response.raise_for_status()
151
135
  return response.json()
152
136
 
153
- def put_users_by_userid(self, userId, profile=None) -> Any:
137
+ async def put_users_by_userid(self, userId, profile=None) -> Any:
154
138
  """
155
139
  Updates a user's profile information by user ID using a PUT request.
156
140
 
@@ -170,19 +154,15 @@ class WrikeApp(APIApplication):
170
154
  """
171
155
  if userId is None:
172
156
  raise ValueError("Missing required parameter 'userId'")
173
- request_body = {
174
- "profile": profile,
175
- }
157
+ request_body = {"profile": profile}
176
158
  request_body = {k: v for k, v in request_body.items() if v is not None}
177
159
  url = f"{self.base_url}/users/{userId}"
178
160
  query_params = {}
179
- response = self._put(url, data=request_body, params=query_params)
161
+ response = await self._aput(url, data=request_body, params=query_params)
180
162
  response.raise_for_status()
181
163
  return response.json()
182
164
 
183
- def get_groups(
184
- self, metadata=None, pageSize=None, pageToken=None, fields=None
185
- ) -> Any:
165
+ async def get_groups(self, metadata=None, pageSize=None, pageToken=None, fields=None) -> Any:
186
166
  """
187
167
  Retrieves a list of groups from the API, applying optional filtering and pagination parameters.
188
168
 
@@ -203,22 +183,13 @@ class WrikeApp(APIApplication):
203
183
  """
204
184
  url = f"{self.base_url}/groups"
205
185
  query_params = {
206
- k: v
207
- for k, v in [
208
- ("metadata", metadata),
209
- ("pageSize", pageSize),
210
- ("pageToken", pageToken),
211
- ("fields", fields),
212
- ]
213
- if v is not None
186
+ k: v for k, v in [("metadata", metadata), ("pageSize", pageSize), ("pageToken", pageToken), ("fields", fields)] if v is not None
214
187
  }
215
- response = self._get(url, params=query_params)
188
+ response = await self._aget(url, params=query_params)
216
189
  response.raise_for_status()
217
190
  return response.json()
218
191
 
219
- def post_groups(
220
- self, title, members=None, parent=None, avatar=None, metadata=None
221
- ) -> Any:
192
+ async def post_groups(self, title, members=None, parent=None, avatar=None, metadata=None) -> Any:
222
193
  """
223
194
  Creates a new group with the specified title and optional details via a POST request to the groups endpoint.
224
195
 
@@ -240,21 +211,15 @@ class WrikeApp(APIApplication):
240
211
  """
241
212
  if title is None:
242
213
  raise ValueError("Missing required parameter 'title'")
243
- request_body = {
244
- "title": title,
245
- "members": members,
246
- "parent": parent,
247
- "avatar": avatar,
248
- "metadata": metadata,
249
- }
214
+ request_body = {"title": title, "members": members, "parent": parent, "avatar": avatar, "metadata": metadata}
250
215
  request_body = {k: v for k, v in request_body.items() if v is not None}
251
216
  url = f"{self.base_url}/groups"
252
217
  query_params = {}
253
- response = self._post(url, data=request_body, params=query_params)
218
+ response = await self._apost(url, data=request_body, params=query_params)
254
219
  response.raise_for_status()
255
220
  return response.json()
256
221
 
257
- def get_groups_by_groupid(self, groupId, fields=None) -> Any:
222
+ async def get_groups_by_groupid(self, groupId, fields=None) -> Any:
258
223
  """
259
224
  Retrieves details for a specific group by its group ID, optionally returning only specified fields.
260
225
 
@@ -275,11 +240,11 @@ class WrikeApp(APIApplication):
275
240
  raise ValueError("Missing required parameter 'groupId'")
276
241
  url = f"{self.base_url}/groups/{groupId}"
277
242
  query_params = {k: v for k, v in [("fields", fields)] if v is not None}
278
- response = self._get(url, params=query_params)
243
+ response = await self._aget(url, params=query_params)
279
244
  response.raise_for_status()
280
245
  return response.json()
281
246
 
282
- def put_groups_by_groupid(
247
+ async def put_groups_by_groupid(
283
248
  self,
284
249
  groupId,
285
250
  title=None,
@@ -329,11 +294,11 @@ class WrikeApp(APIApplication):
329
294
  request_body = {k: v for k, v in request_body.items() if v is not None}
330
295
  url = f"{self.base_url}/groups/{groupId}"
331
296
  query_params = {}
332
- response = self._put(url, data=request_body, params=query_params)
297
+ response = await self._aput(url, data=request_body, params=query_params)
333
298
  response.raise_for_status()
334
299
  return response.json()
335
300
 
336
- def delete_groups_by_groupid(self, groupId) -> Any:
301
+ async def delete_groups_by_groupid(self, groupId) -> Any:
337
302
  """
338
303
  Deletes a group resource identified by the provided groupId using an HTTP DELETE request.
339
304
 
@@ -353,11 +318,11 @@ class WrikeApp(APIApplication):
353
318
  raise ValueError("Missing required parameter 'groupId'")
354
319
  url = f"{self.base_url}/groups/{groupId}"
355
320
  query_params = {}
356
- response = self._delete(url, params=query_params)
321
+ response = await self._adelete(url, params=query_params)
357
322
  response.raise_for_status()
358
323
  return response.json()
359
324
 
360
- def put_groups_bulk(self, members) -> Any:
325
+ async def put_groups_bulk(self, members) -> Any:
361
326
  """
362
327
  Updates multiple group memberships in bulk by sending a PUT request with the given member data.
363
328
 
@@ -375,19 +340,15 @@ class WrikeApp(APIApplication):
375
340
  """
376
341
  if members is None:
377
342
  raise ValueError("Missing required parameter 'members'")
378
- request_body = {
379
- "members": members,
380
- }
343
+ request_body = {"members": members}
381
344
  request_body = {k: v for k, v in request_body.items() if v is not None}
382
345
  url = f"{self.base_url}/groups_bulk"
383
346
  query_params = {}
384
- response = self._put(url, data=request_body, params=query_params)
347
+ response = await self._aput(url, data=request_body, params=query_params)
385
348
  response.raise_for_status()
386
349
  return response.json()
387
350
 
388
- def get_invitations(
389
- self,
390
- ) -> Any:
351
+ async def get_invitations(self) -> Any:
391
352
  """
392
353
  Retrieves all invitations from the server using a GET request.
393
354
 
@@ -405,20 +366,12 @@ class WrikeApp(APIApplication):
405
366
  """
406
367
  url = f"{self.base_url}/invitations"
407
368
  query_params = {}
408
- response = self._get(url, params=query_params)
369
+ response = await self._aget(url, params=query_params)
409
370
  response.raise_for_status()
410
371
  return response.json()
411
372
 
412
- def post_invitations(
413
- self,
414
- email,
415
- firstName=None,
416
- lastName=None,
417
- role=None,
418
- external=None,
419
- subject=None,
420
- message=None,
421
- userTypeId=None,
373
+ async def post_invitations(
374
+ self, email, firstName=None, lastName=None, role=None, external=None, subject=None, message=None, userTypeId=None
422
375
  ) -> Any:
423
376
  """
424
377
  Sends an invitation email to a user with optional details such as name, role, and custom message.
@@ -457,13 +410,11 @@ class WrikeApp(APIApplication):
457
410
  request_body = {k: v for k, v in request_body.items() if v is not None}
458
411
  url = f"{self.base_url}/invitations"
459
412
  query_params = {}
460
- response = self._post(url, data=request_body, params=query_params)
413
+ response = await self._apost(url, data=request_body, params=query_params)
461
414
  response.raise_for_status()
462
415
  return response.json()
463
416
 
464
- def put_invitations_by_invitationid(
465
- self, invitationId, resend=None, role=None, external=None, userTypeId=None
466
- ) -> Any:
417
+ async def put_invitations_by_invitationid(self, invitationId, resend=None, role=None, external=None, userTypeId=None) -> Any:
467
418
  """
468
419
  Updates an existing invitation by its unique ID with optional parameters, handling conditional updates and API communication.
469
420
 
@@ -486,20 +437,15 @@ class WrikeApp(APIApplication):
486
437
  """
487
438
  if invitationId is None:
488
439
  raise ValueError("Missing required parameter 'invitationId'")
489
- request_body = {
490
- "resend": resend,
491
- "role": role,
492
- "external": external,
493
- "userTypeId": userTypeId,
494
- }
440
+ request_body = {"resend": resend, "role": role, "external": external, "userTypeId": userTypeId}
495
441
  request_body = {k: v for k, v in request_body.items() if v is not None}
496
442
  url = f"{self.base_url}/invitations/{invitationId}"
497
443
  query_params = {}
498
- response = self._put(url, data=request_body, params=query_params)
444
+ response = await self._aput(url, data=request_body, params=query_params)
499
445
  response.raise_for_status()
500
446
  return response.json()
501
447
 
502
- def delete_invitations_by_invitationid(self, invitationId) -> Any:
448
+ async def delete_invitations_by_invitationid(self, invitationId) -> Any:
503
449
  """
504
450
  Deletes a specific invitation using its unique identifier
505
451
 
@@ -520,11 +466,11 @@ class WrikeApp(APIApplication):
520
466
  raise ValueError("Missing required parameter 'invitationId'")
521
467
  url = f"{self.base_url}/invitations/{invitationId}"
522
468
  query_params = {}
523
- response = self._delete(url, params=query_params)
469
+ response = await self._adelete(url, params=query_params)
524
470
  response.raise_for_status()
525
471
  return response.json()
526
472
 
527
- def get_a_ccount(self, fields=None) -> Any:
473
+ async def get_a_ccount(self, fields=None) -> Any:
528
474
  """
529
475
  Retrieves account information from the API, optionally including only specified fields.
530
476
 
@@ -542,11 +488,11 @@ class WrikeApp(APIApplication):
542
488
  """
543
489
  url = f"{self.base_url}/account"
544
490
  query_params = {k: v for k, v in [("fields", fields)] if v is not None}
545
- response = self._get(url, params=query_params)
491
+ response = await self._aget(url, params=query_params)
546
492
  response.raise_for_status()
547
493
  return response.json()
548
494
 
549
- def put_a_ccount(self, metadata=None) -> Any:
495
+ async def put_a_ccount(self, metadata=None) -> Any:
550
496
  """
551
497
  Sends a PUT request to update or create an account with the provided metadata and returns the server response as a JSON object.
552
498
 
@@ -562,19 +508,15 @@ class WrikeApp(APIApplication):
562
508
  Tags:
563
509
  put, account, metadata, async_job
564
510
  """
565
- request_body = {
566
- "metadata": metadata,
567
- }
511
+ request_body = {"metadata": metadata}
568
512
  request_body = {k: v for k, v in request_body.items() if v is not None}
569
513
  url = f"{self.base_url}/account"
570
514
  query_params = {}
571
- response = self._put(url, data=request_body, params=query_params)
515
+ response = await self._aput(url, data=request_body, params=query_params)
572
516
  response.raise_for_status()
573
517
  return response.json()
574
518
 
575
- def get_workflows(
576
- self,
577
- ) -> Any:
519
+ async def get_workflows(self) -> Any:
578
520
  """
579
521
  Retrieves all workflows from the server using a GET request.
580
522
 
@@ -592,11 +534,11 @@ class WrikeApp(APIApplication):
592
534
  """
593
535
  url = f"{self.base_url}/workflows"
594
536
  query_params = {}
595
- response = self._get(url, params=query_params)
537
+ response = await self._aget(url, params=query_params)
596
538
  response.raise_for_status()
597
539
  return response.json()
598
540
 
599
- def post_workflows(self, name=None, request_body=None) -> Any:
541
+ async def post_workflows(self, name=None, request_body=None) -> Any:
600
542
  """
601
543
  Creates a new workflow by sending a POST request to the workflows endpoint with optional name and request body.
602
544
 
@@ -615,13 +557,11 @@ class WrikeApp(APIApplication):
615
557
  """
616
558
  url = f"{self.base_url}/workflows"
617
559
  query_params = {k: v for k, v in [("name", name)] if v is not None}
618
- response = self._post(url, data=request_body, params=query_params)
560
+ response = await self._apost(url, data=request_body, params=query_params)
619
561
  response.raise_for_status()
620
562
  return response.json()
621
563
 
622
- def put_workflows_by_workflowid(
623
- self, workflowId, name=None, hidden=None, request_body=None
624
- ) -> Any:
564
+ async def put_workflows_by_workflowid(self, workflowId, name=None, hidden=None, request_body=None) -> Any:
625
565
  """
626
566
  Updates an existing workflow by workflow ID with optional name, hidden status, and request body data.
627
567
 
@@ -643,16 +583,12 @@ class WrikeApp(APIApplication):
643
583
  if workflowId is None:
644
584
  raise ValueError("Missing required parameter 'workflowId'")
645
585
  url = f"{self.base_url}/workflows/{workflowId}"
646
- query_params = {
647
- k: v for k, v in [("name", name), ("hidden", hidden)] if v is not None
648
- }
649
- response = self._put(url, data=request_body, params=query_params)
586
+ query_params = {k: v for k, v in [("name", name), ("hidden", hidden)] if v is not None}
587
+ response = await self._aput(url, data=request_body, params=query_params)
650
588
  response.raise_for_status()
651
589
  return response.json()
652
590
 
653
- def get_customfields(
654
- self,
655
- ) -> Any:
591
+ async def get_customfields(self) -> Any:
656
592
  """
657
593
  Retrieves all custom fields from the API and returns them as a parsed JSON object.
658
594
 
@@ -670,20 +606,11 @@ class WrikeApp(APIApplication):
670
606
  """
671
607
  url = f"{self.base_url}/customfields"
672
608
  query_params = {}
673
- response = self._get(url, params=query_params)
609
+ response = await self._aget(url, params=query_params)
674
610
  response.raise_for_status()
675
611
  return response.json()
676
612
 
677
- def post_customfields(
678
- self,
679
- title,
680
- type,
681
- spaceId=None,
682
- sharing=None,
683
- shareds=None,
684
- settings=None,
685
- request_body=None,
686
- ) -> Any:
613
+ async def post_customfields(self, title, type, spaceId=None, sharing=None, shareds=None, settings=None, request_body=None) -> Any:
687
614
  """
688
615
  Creates a custom field by sending a POST request to the customfields endpoint with the specified parameters.
689
616
 
@@ -722,11 +649,11 @@ class WrikeApp(APIApplication):
722
649
  ]
723
650
  if v is not None
724
651
  }
725
- response = self._post(url, data=request_body, params=query_params)
652
+ response = await self._apost(url, data=request_body, params=query_params)
726
653
  response.raise_for_status()
727
654
  return response.json()
728
655
 
729
- def get_customfields_by_customfieldid(self, customFieldId) -> Any:
656
+ async def get_customfields_by_customfieldid(self, customFieldId) -> Any:
730
657
  """
731
658
  Retrieves details for a custom field by its unique identifier from the API
732
659
 
@@ -746,11 +673,11 @@ class WrikeApp(APIApplication):
746
673
  raise ValueError("Missing required parameter 'customFieldId'")
747
674
  url = f"{self.base_url}/customfields/{customFieldId}"
748
675
  query_params = {}
749
- response = self._get(url, params=query_params)
676
+ response = await self._aget(url, params=query_params)
750
677
  response.raise_for_status()
751
678
  return response.json()
752
679
 
753
- def put_customfields_by_customfieldid(
680
+ async def put_customfields_by_customfieldid(
754
681
  self,
755
682
  customFieldId,
756
683
  title=None,
@@ -808,11 +735,11 @@ class WrikeApp(APIApplication):
808
735
  ]
809
736
  if v is not None
810
737
  }
811
- response = self._put(url, data={}, params=query_params)
738
+ response = await self._aput(url, data={}, params=query_params)
812
739
  response.raise_for_status()
813
740
  return response.json()
814
741
 
815
- def delete_customfields_by_customfieldid(self, customFieldId) -> Any:
742
+ async def delete_customfields_by_customfieldid(self, customFieldId) -> Any:
816
743
  """
817
744
  Deletes a custom field resource identified by its custom field ID.
818
745
 
@@ -832,11 +759,11 @@ class WrikeApp(APIApplication):
832
759
  raise ValueError("Missing required parameter 'customFieldId'")
833
760
  url = f"{self.base_url}/customfields/{customFieldId}"
834
761
  query_params = {}
835
- response = self._delete(url, params=query_params)
762
+ response = await self._adelete(url, params=query_params)
836
763
  response.raise_for_status()
837
764
  return response.json()
838
765
 
839
- def get_folders(
766
+ async def get_folders(
840
767
  self,
841
768
  permalink=None,
842
769
  descendants=None,
@@ -902,11 +829,11 @@ class WrikeApp(APIApplication):
902
829
  ]
903
830
  if v is not None
904
831
  }
905
- response = self._get(url, params=query_params)
832
+ response = await self._aget(url, params=query_params)
906
833
  response.raise_for_status()
907
834
  return response.json()
908
835
 
909
- def get_folders_by_folderid_folders(
836
+ async def get_folders_by_folderid_folders(
910
837
  self,
911
838
  folderId,
912
839
  permalink=None,
@@ -973,11 +900,11 @@ class WrikeApp(APIApplication):
973
900
  ]
974
901
  if v is not None
975
902
  }
976
- response = self._get(url, params=query_params)
903
+ response = await self._aget(url, params=query_params)
977
904
  response.raise_for_status()
978
905
  return response.json()
979
906
 
980
- def post_folders_by_folderid_folders(
907
+ async def post_folders_by_folderid_folders(
981
908
  self,
982
909
  folderId,
983
910
  title,
@@ -1041,11 +968,11 @@ class WrikeApp(APIApplication):
1041
968
  request_body = {k: v for k, v in request_body.items() if v is not None}
1042
969
  url = f"{self.base_url}/folders/{folderId}/folders"
1043
970
  query_params = {}
1044
- response = self._post(url, data=request_body, params=query_params)
971
+ response = await self._apost(url, data=request_body, params=query_params)
1045
972
  response.raise_for_status()
1046
973
  return response.json()
1047
974
 
1048
- def delete_folders_by_folderid(self, folderId) -> Any:
975
+ async def delete_folders_by_folderid(self, folderId) -> Any:
1049
976
  """
1050
977
  Deletes a folder resource identified by its folder ID via an HTTP DELETE request.
1051
978
 
@@ -1066,11 +993,11 @@ class WrikeApp(APIApplication):
1066
993
  raise ValueError("Missing required parameter 'folderId'")
1067
994
  url = f"{self.base_url}/folders/{folderId}"
1068
995
  query_params = {}
1069
- response = self._delete(url, params=query_params)
996
+ response = await self._adelete(url, params=query_params)
1070
997
  response.raise_for_status()
1071
998
  return response.json()
1072
999
 
1073
- def put_folders_by_folderid(
1000
+ async def put_folders_by_folderid(
1074
1001
  self,
1075
1002
  folderId,
1076
1003
  title=None,
@@ -1151,11 +1078,11 @@ class WrikeApp(APIApplication):
1151
1078
  request_body = {k: v for k, v in request_body.items() if v is not None}
1152
1079
  url = f"{self.base_url}/folders/{folderId}"
1153
1080
  query_params = {}
1154
- response = self._put(url, data=request_body, params=query_params)
1081
+ response = await self._aput(url, data=request_body, params=query_params)
1155
1082
  response.raise_for_status()
1156
1083
  return response.json()
1157
1084
 
1158
- def get_tasks(
1085
+ async def get_tasks(
1159
1086
  self,
1160
1087
  descendants=None,
1161
1088
  title=None,
@@ -1269,11 +1196,11 @@ class WrikeApp(APIApplication):
1269
1196
  ]
1270
1197
  if v is not None
1271
1198
  }
1272
- response = self._get(url, params=query_params)
1199
+ response = await self._aget(url, params=query_params)
1273
1200
  response.raise_for_status()
1274
1201
  return response.json()
1275
1202
 
1276
- def get_tasks_by_taskid(self, taskId, fields=None) -> Any:
1203
+ async def get_tasks_by_taskid(self, taskId, fields=None) -> Any:
1277
1204
  """
1278
1205
  Retrieves a task by its ID from the remote service, optionally returning only specified fields.
1279
1206
 
@@ -1294,11 +1221,11 @@ class WrikeApp(APIApplication):
1294
1221
  raise ValueError("Missing required parameter 'taskId'")
1295
1222
  url = f"{self.base_url}/tasks/{taskId}"
1296
1223
  query_params = {k: v for k, v in [("fields", fields)] if v is not None}
1297
- response = self._get(url, params=query_params)
1224
+ response = await self._aget(url, params=query_params)
1298
1225
  response.raise_for_status()
1299
1226
  return response.json()
1300
1227
 
1301
- def put_tasks_by_taskid(
1228
+ async def put_tasks_by_taskid(
1302
1229
  self,
1303
1230
  taskId,
1304
1231
  title=None,
@@ -1412,11 +1339,11 @@ class WrikeApp(APIApplication):
1412
1339
  request_body = {k: v for k, v in request_body.items() if v is not None}
1413
1340
  url = f"{self.base_url}/tasks/{taskId}"
1414
1341
  query_params = {}
1415
- response = self._put(url, data=request_body, params=query_params)
1342
+ response = await self._aput(url, data=request_body, params=query_params)
1416
1343
  response.raise_for_status()
1417
1344
  return response.json()
1418
1345
 
1419
- def delete_tasks_by_taskid(self, taskId) -> Any:
1346
+ async def delete_tasks_by_taskid(self, taskId) -> Any:
1420
1347
  """
1421
1348
  Deletes a task identified by the given task ID via an HTTP DELETE request and returns the response as a JSON object.
1422
1349
 
@@ -1437,11 +1364,11 @@ class WrikeApp(APIApplication):
1437
1364
  raise ValueError("Missing required parameter 'taskId'")
1438
1365
  url = f"{self.base_url}/tasks/{taskId}"
1439
1366
  query_params = {}
1440
- response = self._delete(url, params=query_params)
1367
+ response = await self._adelete(url, params=query_params)
1441
1368
  response.raise_for_status()
1442
1369
  return response.json()
1443
1370
 
1444
- def post_folders_by_folderid_tasks(
1371
+ async def post_folders_by_folderid_tasks(
1445
1372
  self,
1446
1373
  folderId,
1447
1374
  title,
@@ -1539,7 +1466,7 @@ class WrikeApp(APIApplication):
1539
1466
  request_body = {k: v for k, v in request_body.items() if v is not None}
1540
1467
  url = f"{self.base_url}/folders/{folderId}/tasks"
1541
1468
  query_params = {}
1542
- response = self._post(url, data=request_body, params=query_params)
1469
+ response = await self._apost(url, data=request_body, params=query_params)
1543
1470
  response.raise_for_status()
1544
1471
  return response.json()
1545
1472