universal-mcp-applications 0.1.30rc1__py3-none-any.whl → 0.1.36rc1__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.
- universal_mcp/applications/ahrefs/app.py +52 -198
- universal_mcp/applications/airtable/app.py +23 -122
- universal_mcp/applications/apollo/app.py +111 -464
- universal_mcp/applications/asana/app.py +417 -1567
- universal_mcp/applications/aws_s3/app.py +33 -100
- universal_mcp/applications/bill/app.py +546 -1957
- universal_mcp/applications/box/app.py +1068 -3981
- universal_mcp/applications/braze/app.py +364 -1430
- universal_mcp/applications/browser_use/app.py +2 -8
- universal_mcp/applications/cal_com_v2/app.py +207 -625
- universal_mcp/applications/calendly/app.py +61 -200
- universal_mcp/applications/canva/app.py +45 -110
- universal_mcp/applications/clickup/app.py +207 -674
- universal_mcp/applications/coda/app.py +146 -426
- universal_mcp/applications/confluence/app.py +310 -1098
- universal_mcp/applications/contentful/app.py +36 -151
- universal_mcp/applications/crustdata/app.py +28 -107
- universal_mcp/applications/dialpad/app.py +283 -756
- universal_mcp/applications/digitalocean/app.py +1766 -5777
- universal_mcp/applications/domain_checker/app.py +3 -54
- universal_mcp/applications/e2b/app.py +14 -64
- universal_mcp/applications/elevenlabs/app.py +9 -47
- universal_mcp/applications/exa/app.py +6 -17
- universal_mcp/applications/falai/app.py +23 -100
- universal_mcp/applications/figma/app.py +53 -137
- universal_mcp/applications/file_system/app.py +2 -13
- universal_mcp/applications/firecrawl/app.py +51 -152
- universal_mcp/applications/fireflies/app.py +59 -281
- universal_mcp/applications/fpl/app.py +91 -528
- universal_mcp/applications/fpl/utils/fixtures.py +15 -49
- universal_mcp/applications/fpl/utils/helper.py +25 -89
- universal_mcp/applications/fpl/utils/league_utils.py +20 -64
- universal_mcp/applications/ghost_content/app.py +52 -161
- universal_mcp/applications/github/app.py +19 -56
- universal_mcp/applications/gong/app.py +88 -248
- universal_mcp/applications/google_calendar/app.py +16 -68
- universal_mcp/applications/google_docs/app.py +88 -188
- universal_mcp/applications/google_drive/app.py +140 -462
- universal_mcp/applications/google_gemini/app.py +12 -64
- universal_mcp/applications/google_mail/app.py +28 -157
- universal_mcp/applications/google_searchconsole/app.py +15 -48
- universal_mcp/applications/google_sheet/app.py +101 -578
- universal_mcp/applications/google_sheet/helper.py +10 -37
- universal_mcp/applications/hashnode/app.py +57 -269
- universal_mcp/applications/heygen/app.py +44 -122
- universal_mcp/applications/http_tools/app.py +10 -32
- universal_mcp/applications/hubspot/api_segments/crm_api.py +460 -1573
- universal_mcp/applications/hubspot/api_segments/marketing_api.py +74 -262
- universal_mcp/applications/hubspot/app.py +23 -87
- universal_mcp/applications/jira/app.py +2071 -7986
- universal_mcp/applications/klaviyo/app.py +494 -1376
- universal_mcp/applications/linkedin/README.md +23 -4
- universal_mcp/applications/linkedin/app.py +392 -212
- universal_mcp/applications/mailchimp/app.py +450 -1605
- universal_mcp/applications/markitdown/app.py +8 -20
- universal_mcp/applications/miro/app.py +217 -699
- universal_mcp/applications/ms_teams/app.py +64 -186
- universal_mcp/applications/neon/app.py +86 -192
- universal_mcp/applications/notion/app.py +21 -36
- universal_mcp/applications/onedrive/app.py +14 -36
- universal_mcp/applications/openai/app.py +42 -165
- universal_mcp/applications/outlook/app.py +16 -76
- universal_mcp/applications/perplexity/app.py +4 -19
- universal_mcp/applications/pipedrive/app.py +832 -3142
- universal_mcp/applications/posthog/app.py +163 -432
- universal_mcp/applications/reddit/app.py +40 -139
- universal_mcp/applications/resend/app.py +41 -107
- universal_mcp/applications/retell/app.py +14 -41
- universal_mcp/applications/rocketlane/app.py +221 -934
- universal_mcp/applications/scraper/README.md +7 -4
- universal_mcp/applications/scraper/app.py +280 -93
- universal_mcp/applications/semanticscholar/app.py +22 -64
- universal_mcp/applications/semrush/app.py +43 -77
- universal_mcp/applications/sendgrid/app.py +512 -1262
- universal_mcp/applications/sentry/app.py +271 -906
- universal_mcp/applications/serpapi/app.py +40 -143
- universal_mcp/applications/sharepoint/app.py +15 -37
- universal_mcp/applications/shopify/app.py +1551 -4287
- universal_mcp/applications/shortcut/app.py +155 -417
- universal_mcp/applications/slack/app.py +50 -101
- universal_mcp/applications/spotify/app.py +126 -325
- universal_mcp/applications/supabase/app.py +104 -213
- universal_mcp/applications/tavily/app.py +1 -1
- universal_mcp/applications/trello/app.py +693 -2656
- universal_mcp/applications/twilio/app.py +14 -50
- universal_mcp/applications/twitter/api_segments/compliance_api.py +4 -14
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +6 -18
- universal_mcp/applications/twitter/api_segments/likes_api.py +1 -3
- universal_mcp/applications/twitter/api_segments/lists_api.py +5 -15
- universal_mcp/applications/twitter/api_segments/trends_api.py +1 -3
- universal_mcp/applications/twitter/api_segments/tweets_api.py +9 -31
- universal_mcp/applications/twitter/api_segments/usage_api.py +1 -5
- universal_mcp/applications/twitter/api_segments/users_api.py +14 -42
- universal_mcp/applications/whatsapp/app.py +35 -186
- universal_mcp/applications/whatsapp/audio.py +2 -6
- universal_mcp/applications/whatsapp/whatsapp.py +17 -51
- universal_mcp/applications/whatsapp_business/app.py +70 -283
- universal_mcp/applications/wrike/app.py +45 -118
- universal_mcp/applications/yahoo_finance/app.py +19 -65
- universal_mcp/applications/youtube/app.py +75 -261
- universal_mcp/applications/zenquotes/app.py +2 -2
- {universal_mcp_applications-0.1.30rc1.dist-info → universal_mcp_applications-0.1.36rc1.dist-info}/METADATA +2 -2
- {universal_mcp_applications-0.1.30rc1.dist-info → universal_mcp_applications-0.1.36rc1.dist-info}/RECORD +105 -106
- universal_mcp/applications/scraper/scraper_testers.py +0 -17
- {universal_mcp_applications-0.1.30rc1.dist-info → universal_mcp_applications-0.1.36rc1.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.30rc1.dist-info → universal_mcp_applications-0.1.36rc1.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
|
|
|
@@ -9,9 +8,7 @@ class ClickupApp(APIApplication):
|
|
|
9
8
|
super().__init__(name="clickup", integration=integration, **kwargs)
|
|
10
9
|
self.base_url = "https://api.clickup.com/api/v2"
|
|
11
10
|
|
|
12
|
-
def authorization_get_access_token(
|
|
13
|
-
self, client_id, client_secret, code
|
|
14
|
-
) -> dict[str, Any]:
|
|
11
|
+
async def authorization_get_access_token(self, client_id, client_secret, code) -> dict[str, Any]:
|
|
15
12
|
"""
|
|
16
13
|
Exchanges an authorization code for an access token using OAuth2 credentials.
|
|
17
14
|
|
|
@@ -37,22 +34,12 @@ class ClickupApp(APIApplication):
|
|
|
37
34
|
if code is None:
|
|
38
35
|
raise ValueError("Missing required parameter 'code'")
|
|
39
36
|
url = f"{self.base_url}/oauth/token"
|
|
40
|
-
query_params = {
|
|
41
|
-
k: v
|
|
42
|
-
for k, v in [
|
|
43
|
-
("client_id", client_id),
|
|
44
|
-
("client_secret", client_secret),
|
|
45
|
-
("code", code),
|
|
46
|
-
]
|
|
47
|
-
if v is not None
|
|
48
|
-
}
|
|
37
|
+
query_params = {k: v for k, v in [("client_id", client_id), ("client_secret", client_secret), ("code", code)] if v is not None}
|
|
49
38
|
response = self._post(url, data={}, params=query_params)
|
|
50
39
|
response.raise_for_status()
|
|
51
40
|
return response.json()
|
|
52
41
|
|
|
53
|
-
def authorization_view_account_details(
|
|
54
|
-
self,
|
|
55
|
-
) -> dict[str, Any]:
|
|
42
|
+
async def authorization_view_account_details(self) -> dict[str, Any]:
|
|
56
43
|
"""
|
|
57
44
|
Retrieves the current authenticated user's account details from the authorization service.
|
|
58
45
|
|
|
@@ -74,9 +61,7 @@ class ClickupApp(APIApplication):
|
|
|
74
61
|
response.raise_for_status()
|
|
75
62
|
return response.json()
|
|
76
63
|
|
|
77
|
-
def authorization_get_workspace_list(
|
|
78
|
-
self,
|
|
79
|
-
) -> dict[str, Any]:
|
|
64
|
+
async def authorization_get_workspace_list(self) -> dict[str, Any]:
|
|
80
65
|
"""
|
|
81
66
|
Retrieves a list of workspaces accessible to the authorized user from the authorization service.
|
|
82
67
|
|
|
@@ -98,9 +83,7 @@ class ClickupApp(APIApplication):
|
|
|
98
83
|
response.raise_for_status()
|
|
99
84
|
return response.json()
|
|
100
85
|
|
|
101
|
-
def task_checklists_create_new_checklist(
|
|
102
|
-
self, task_id, name, custom_task_ids=None, team_id=None
|
|
103
|
-
) -> dict[str, Any]:
|
|
86
|
+
async def task_checklists_create_new_checklist(self, task_id, name, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
104
87
|
"""
|
|
105
88
|
Creates a new checklist for a given task and returns the created checklist details as a dictionary.
|
|
106
89
|
|
|
@@ -124,23 +107,15 @@ class ClickupApp(APIApplication):
|
|
|
124
107
|
raise ValueError("Missing required parameter 'task_id'")
|
|
125
108
|
if name is None:
|
|
126
109
|
raise ValueError("Missing required parameter 'name'")
|
|
127
|
-
request_body = {
|
|
128
|
-
"name": name,
|
|
129
|
-
}
|
|
110
|
+
request_body = {"name": name}
|
|
130
111
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
131
112
|
url = f"{self.base_url}/task/{task_id}/checklist"
|
|
132
|
-
query_params = {
|
|
133
|
-
k: v
|
|
134
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
135
|
-
if v is not None
|
|
136
|
-
}
|
|
113
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
137
114
|
response = self._post(url, data=request_body, params=query_params)
|
|
138
115
|
response.raise_for_status()
|
|
139
116
|
return response.json()
|
|
140
117
|
|
|
141
|
-
def task_checklists_update_checklist(
|
|
142
|
-
self, checklist_id, name=None, position=None
|
|
143
|
-
) -> dict[str, Any]:
|
|
118
|
+
async def task_checklists_update_checklist(self, checklist_id, name=None, position=None) -> dict[str, Any]:
|
|
144
119
|
"""
|
|
145
120
|
Updates a checklist's name and/or position by sending a PUT request to the checklist API endpoint.
|
|
146
121
|
|
|
@@ -161,10 +136,7 @@ class ClickupApp(APIApplication):
|
|
|
161
136
|
"""
|
|
162
137
|
if checklist_id is None:
|
|
163
138
|
raise ValueError("Missing required parameter 'checklist_id'")
|
|
164
|
-
request_body = {
|
|
165
|
-
"name": name,
|
|
166
|
-
"position": position,
|
|
167
|
-
}
|
|
139
|
+
request_body = {"name": name, "position": position}
|
|
168
140
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
169
141
|
url = f"{self.base_url}/checklist/{checklist_id}"
|
|
170
142
|
query_params = {}
|
|
@@ -172,7 +144,7 @@ class ClickupApp(APIApplication):
|
|
|
172
144
|
response.raise_for_status()
|
|
173
145
|
return response.json()
|
|
174
146
|
|
|
175
|
-
def task_checklists_remove_checklist(self, checklist_id) -> dict[str, Any]:
|
|
147
|
+
async def task_checklists_remove_checklist(self, checklist_id) -> dict[str, Any]:
|
|
176
148
|
"""
|
|
177
149
|
Removes a checklist by its ID using a DELETE request to the API.
|
|
178
150
|
|
|
@@ -197,9 +169,7 @@ class ClickupApp(APIApplication):
|
|
|
197
169
|
response.raise_for_status()
|
|
198
170
|
return response.json()
|
|
199
171
|
|
|
200
|
-
def task_checklists_add_line_item(
|
|
201
|
-
self, checklist_id, name=None, assignee=None
|
|
202
|
-
) -> dict[str, Any]:
|
|
172
|
+
async def task_checklists_add_line_item(self, checklist_id, name=None, assignee=None) -> dict[str, Any]:
|
|
203
173
|
"""
|
|
204
174
|
Adds a new line item to a specified task checklist.
|
|
205
175
|
|
|
@@ -220,10 +190,7 @@ class ClickupApp(APIApplication):
|
|
|
220
190
|
"""
|
|
221
191
|
if checklist_id is None:
|
|
222
192
|
raise ValueError("Missing required parameter 'checklist_id'")
|
|
223
|
-
request_body = {
|
|
224
|
-
"name": name,
|
|
225
|
-
"assignee": assignee,
|
|
226
|
-
}
|
|
193
|
+
request_body = {"name": name, "assignee": assignee}
|
|
227
194
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
228
195
|
url = f"{self.base_url}/checklist/{checklist_id}/checklist_item"
|
|
229
196
|
query_params = {}
|
|
@@ -231,14 +198,8 @@ class ClickupApp(APIApplication):
|
|
|
231
198
|
response.raise_for_status()
|
|
232
199
|
return response.json()
|
|
233
200
|
|
|
234
|
-
def task_checklists_update_checklist_item(
|
|
235
|
-
self,
|
|
236
|
-
checklist_id,
|
|
237
|
-
checklist_item_id,
|
|
238
|
-
name=None,
|
|
239
|
-
assignee=None,
|
|
240
|
-
resolved=None,
|
|
241
|
-
parent=None,
|
|
201
|
+
async def task_checklists_update_checklist_item(
|
|
202
|
+
self, checklist_id, checklist_item_id, name=None, assignee=None, resolved=None, parent=None
|
|
242
203
|
) -> dict[str, Any]:
|
|
243
204
|
"""
|
|
244
205
|
Updates a checklist item with new details such as name, assignee, resolution status, or parent within a specified checklist.
|
|
@@ -265,12 +226,7 @@ class ClickupApp(APIApplication):
|
|
|
265
226
|
raise ValueError("Missing required parameter 'checklist_id'")
|
|
266
227
|
if checklist_item_id is None:
|
|
267
228
|
raise ValueError("Missing required parameter 'checklist_item_id'")
|
|
268
|
-
request_body = {
|
|
269
|
-
"name": name,
|
|
270
|
-
"assignee": assignee,
|
|
271
|
-
"resolved": resolved,
|
|
272
|
-
"parent": parent,
|
|
273
|
-
}
|
|
229
|
+
request_body = {"name": name, "assignee": assignee, "resolved": resolved, "parent": parent}
|
|
274
230
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
275
231
|
url = f"{self.base_url}/checklist/{checklist_id}/checklist_item/{checklist_item_id}"
|
|
276
232
|
query_params = {}
|
|
@@ -278,9 +234,7 @@ class ClickupApp(APIApplication):
|
|
|
278
234
|
response.raise_for_status()
|
|
279
235
|
return response.json()
|
|
280
236
|
|
|
281
|
-
def task_checklists_remove_checklist_item(
|
|
282
|
-
self, checklist_id, checklist_item_id
|
|
283
|
-
) -> dict[str, Any]:
|
|
237
|
+
async def task_checklists_remove_checklist_item(self, checklist_id, checklist_item_id) -> dict[str, Any]:
|
|
284
238
|
"""
|
|
285
239
|
Removes a specific checklist item from a checklist by issuing a DELETE request to the appropriate API endpoint.
|
|
286
240
|
|
|
@@ -308,9 +262,7 @@ class ClickupApp(APIApplication):
|
|
|
308
262
|
response.raise_for_status()
|
|
309
263
|
return response.json()
|
|
310
264
|
|
|
311
|
-
def comments_get_task_comments(
|
|
312
|
-
self, task_id, custom_task_ids=None, team_id=None, start=None, start_id=None
|
|
313
|
-
) -> dict[str, Any]:
|
|
265
|
+
async def comments_get_task_comments(self, task_id, custom_task_ids=None, team_id=None, start=None, start_id=None) -> dict[str, Any]:
|
|
314
266
|
"""
|
|
315
267
|
Retrieve all comments associated with a specific task.
|
|
316
268
|
|
|
@@ -336,26 +288,15 @@ class ClickupApp(APIApplication):
|
|
|
336
288
|
url = f"{self.base_url}/task/{task_id}/comment"
|
|
337
289
|
query_params = {
|
|
338
290
|
k: v
|
|
339
|
-
for k, v in [
|
|
340
|
-
("custom_task_ids", custom_task_ids),
|
|
341
|
-
("team_id", team_id),
|
|
342
|
-
("start", start),
|
|
343
|
-
("start_id", start_id),
|
|
344
|
-
]
|
|
291
|
+
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id), ("start", start), ("start_id", start_id)]
|
|
345
292
|
if v is not None
|
|
346
293
|
}
|
|
347
294
|
response = self._get(url, params=query_params)
|
|
348
295
|
response.raise_for_status()
|
|
349
296
|
return response.json()
|
|
350
297
|
|
|
351
|
-
def comments_create_new_task_comment(
|
|
352
|
-
self,
|
|
353
|
-
task_id,
|
|
354
|
-
comment_text,
|
|
355
|
-
assignee,
|
|
356
|
-
notify_all,
|
|
357
|
-
custom_task_ids=None,
|
|
358
|
-
team_id=None,
|
|
298
|
+
async def comments_create_new_task_comment(
|
|
299
|
+
self, task_id, comment_text, assignee, notify_all, custom_task_ids=None, team_id=None
|
|
359
300
|
) -> dict[str, Any]:
|
|
360
301
|
"""
|
|
361
302
|
Creates a new comment on the specified task, assigning it to a user and controlling notification behavior.
|
|
@@ -386,25 +327,15 @@ class ClickupApp(APIApplication):
|
|
|
386
327
|
raise ValueError("Missing required parameter 'assignee'")
|
|
387
328
|
if notify_all is None:
|
|
388
329
|
raise ValueError("Missing required parameter 'notify_all'")
|
|
389
|
-
request_body = {
|
|
390
|
-
"comment_text": comment_text,
|
|
391
|
-
"assignee": assignee,
|
|
392
|
-
"notify_all": notify_all,
|
|
393
|
-
}
|
|
330
|
+
request_body = {"comment_text": comment_text, "assignee": assignee, "notify_all": notify_all}
|
|
394
331
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
395
332
|
url = f"{self.base_url}/task/{task_id}/comment"
|
|
396
|
-
query_params = {
|
|
397
|
-
k: v
|
|
398
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
399
|
-
if v is not None
|
|
400
|
-
}
|
|
333
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
401
334
|
response = self._post(url, data=request_body, params=query_params)
|
|
402
335
|
response.raise_for_status()
|
|
403
336
|
return response.json()
|
|
404
337
|
|
|
405
|
-
def comments_get_view_comments(
|
|
406
|
-
self, view_id, start=None, start_id=None
|
|
407
|
-
) -> dict[str, Any]:
|
|
338
|
+
async def comments_get_view_comments(self, view_id, start=None, start_id=None) -> dict[str, Any]:
|
|
408
339
|
"""
|
|
409
340
|
Retrieve comments for a specific view, supporting optional pagination parameters.
|
|
410
341
|
|
|
@@ -426,16 +357,12 @@ class ClickupApp(APIApplication):
|
|
|
426
357
|
if view_id is None:
|
|
427
358
|
raise ValueError("Missing required parameter 'view_id'")
|
|
428
359
|
url = f"{self.base_url}/view/{view_id}/comment"
|
|
429
|
-
query_params = {
|
|
430
|
-
k: v for k, v in [("start", start), ("start_id", start_id)] if v is not None
|
|
431
|
-
}
|
|
360
|
+
query_params = {k: v for k, v in [("start", start), ("start_id", start_id)] if v is not None}
|
|
432
361
|
response = self._get(url, params=query_params)
|
|
433
362
|
response.raise_for_status()
|
|
434
363
|
return response.json()
|
|
435
364
|
|
|
436
|
-
def comments_create_chat_view_comment(
|
|
437
|
-
self, view_id, comment_text, notify_all
|
|
438
|
-
) -> dict[str, Any]:
|
|
365
|
+
async def comments_create_chat_view_comment(self, view_id, comment_text, notify_all) -> dict[str, Any]:
|
|
439
366
|
"""
|
|
440
367
|
Creates a new comment on a chat view and optionally notifies all participants.
|
|
441
368
|
|
|
@@ -460,10 +387,7 @@ class ClickupApp(APIApplication):
|
|
|
460
387
|
raise ValueError("Missing required parameter 'comment_text'")
|
|
461
388
|
if notify_all is None:
|
|
462
389
|
raise ValueError("Missing required parameter 'notify_all'")
|
|
463
|
-
request_body = {
|
|
464
|
-
"comment_text": comment_text,
|
|
465
|
-
"notify_all": notify_all,
|
|
466
|
-
}
|
|
390
|
+
request_body = {"comment_text": comment_text, "notify_all": notify_all}
|
|
467
391
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
468
392
|
url = f"{self.base_url}/view/{view_id}/comment"
|
|
469
393
|
query_params = {}
|
|
@@ -471,9 +395,7 @@ class ClickupApp(APIApplication):
|
|
|
471
395
|
response.raise_for_status()
|
|
472
396
|
return response.json()
|
|
473
397
|
|
|
474
|
-
def comments_get_list_comments(
|
|
475
|
-
self, list_id, start=None, start_id=None
|
|
476
|
-
) -> dict[str, Any]:
|
|
398
|
+
async def comments_get_list_comments(self, list_id, start=None, start_id=None) -> dict[str, Any]:
|
|
477
399
|
"""
|
|
478
400
|
Retrieve a list of comments associated with a specific list, supporting optional pagination.
|
|
479
401
|
|
|
@@ -495,16 +417,12 @@ class ClickupApp(APIApplication):
|
|
|
495
417
|
if list_id is None:
|
|
496
418
|
raise ValueError("Missing required parameter 'list_id'")
|
|
497
419
|
url = f"{self.base_url}/list/{list_id}/comment"
|
|
498
|
-
query_params = {
|
|
499
|
-
k: v for k, v in [("start", start), ("start_id", start_id)] if v is not None
|
|
500
|
-
}
|
|
420
|
+
query_params = {k: v for k, v in [("start", start), ("start_id", start_id)] if v is not None}
|
|
501
421
|
response = self._get(url, params=query_params)
|
|
502
422
|
response.raise_for_status()
|
|
503
423
|
return response.json()
|
|
504
424
|
|
|
505
|
-
def comments_add_to_list_comment(
|
|
506
|
-
self, list_id, comment_text, assignee, notify_all
|
|
507
|
-
) -> dict[str, Any]:
|
|
425
|
+
async def comments_add_to_list_comment(self, list_id, comment_text, assignee, notify_all) -> dict[str, Any]:
|
|
508
426
|
"""
|
|
509
427
|
Adds a comment to a specified list, assigns it to a given user, and optionally notifies all stakeholders.
|
|
510
428
|
|
|
@@ -532,11 +450,7 @@ class ClickupApp(APIApplication):
|
|
|
532
450
|
raise ValueError("Missing required parameter 'assignee'")
|
|
533
451
|
if notify_all is None:
|
|
534
452
|
raise ValueError("Missing required parameter 'notify_all'")
|
|
535
|
-
request_body = {
|
|
536
|
-
"comment_text": comment_text,
|
|
537
|
-
"assignee": assignee,
|
|
538
|
-
"notify_all": notify_all,
|
|
539
|
-
}
|
|
453
|
+
request_body = {"comment_text": comment_text, "assignee": assignee, "notify_all": notify_all}
|
|
540
454
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
541
455
|
url = f"{self.base_url}/list/{list_id}/comment"
|
|
542
456
|
query_params = {}
|
|
@@ -544,9 +458,7 @@ class ClickupApp(APIApplication):
|
|
|
544
458
|
response.raise_for_status()
|
|
545
459
|
return response.json()
|
|
546
460
|
|
|
547
|
-
def comments_update_task_comment(
|
|
548
|
-
self, comment_id, comment_text, assignee, resolved
|
|
549
|
-
) -> dict[str, Any]:
|
|
461
|
+
async def comments_update_task_comment(self, comment_id, comment_text, assignee, resolved) -> dict[str, Any]:
|
|
550
462
|
"""
|
|
551
463
|
Updates an existing task comment with new text, assignee, and resolution status.
|
|
552
464
|
|
|
@@ -574,11 +486,7 @@ class ClickupApp(APIApplication):
|
|
|
574
486
|
raise ValueError("Missing required parameter 'assignee'")
|
|
575
487
|
if resolved is None:
|
|
576
488
|
raise ValueError("Missing required parameter 'resolved'")
|
|
577
|
-
request_body = {
|
|
578
|
-
"comment_text": comment_text,
|
|
579
|
-
"assignee": assignee,
|
|
580
|
-
"resolved": resolved,
|
|
581
|
-
}
|
|
489
|
+
request_body = {"comment_text": comment_text, "assignee": assignee, "resolved": resolved}
|
|
582
490
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
583
491
|
url = f"{self.base_url}/comment/{comment_id}"
|
|
584
492
|
query_params = {}
|
|
@@ -586,7 +494,7 @@ class ClickupApp(APIApplication):
|
|
|
586
494
|
response.raise_for_status()
|
|
587
495
|
return response.json()
|
|
588
496
|
|
|
589
|
-
def comments_delete_task_comment(self, comment_id) -> dict[str, Any]:
|
|
497
|
+
async def comments_delete_task_comment(self, comment_id) -> dict[str, Any]:
|
|
590
498
|
"""
|
|
591
499
|
Deletes a task comment by its ID.
|
|
592
500
|
|
|
@@ -611,7 +519,7 @@ class ClickupApp(APIApplication):
|
|
|
611
519
|
response.raise_for_status()
|
|
612
520
|
return response.json()
|
|
613
521
|
|
|
614
|
-
def custom_fields_get_list_fields(self, list_id) -> dict[str, Any]:
|
|
522
|
+
async def custom_fields_get_list_fields(self, list_id) -> dict[str, Any]:
|
|
615
523
|
"""
|
|
616
524
|
Retrieves a list of custom fields associated with a specified list by its ID.
|
|
617
525
|
|
|
@@ -636,9 +544,7 @@ class ClickupApp(APIApplication):
|
|
|
636
544
|
response.raise_for_status()
|
|
637
545
|
return response.json()
|
|
638
546
|
|
|
639
|
-
def custom_fields_remove_field_value(
|
|
640
|
-
self, task_id, field_id, custom_task_ids=None, team_id=None
|
|
641
|
-
) -> dict[str, Any]:
|
|
547
|
+
async def custom_fields_remove_field_value(self, task_id, field_id, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
642
548
|
"""
|
|
643
549
|
Removes a specific custom field value from a given task.
|
|
644
550
|
|
|
@@ -663,22 +569,13 @@ class ClickupApp(APIApplication):
|
|
|
663
569
|
if field_id is None:
|
|
664
570
|
raise ValueError("Missing required parameter 'field_id'")
|
|
665
571
|
url = f"{self.base_url}/task/{task_id}/field/{field_id}"
|
|
666
|
-
query_params = {
|
|
667
|
-
k: v
|
|
668
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
669
|
-
if v is not None
|
|
670
|
-
}
|
|
572
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
671
573
|
response = self._delete(url, params=query_params)
|
|
672
574
|
response.raise_for_status()
|
|
673
575
|
return response.json()
|
|
674
576
|
|
|
675
|
-
def task_relationships_add_dependency(
|
|
676
|
-
self,
|
|
677
|
-
task_id,
|
|
678
|
-
custom_task_ids=None,
|
|
679
|
-
team_id=None,
|
|
680
|
-
depends_on=None,
|
|
681
|
-
depedency_of=None,
|
|
577
|
+
async def task_relationships_add_dependency(
|
|
578
|
+
self, task_id, custom_task_ids=None, team_id=None, depends_on=None, depedency_of=None
|
|
682
579
|
) -> dict[str, Any]:
|
|
683
580
|
"""
|
|
684
581
|
Adds a dependency relationship to a specified task, allowing you to define predecessor or dependent tasks within a project management system.
|
|
@@ -702,22 +599,15 @@ class ClickupApp(APIApplication):
|
|
|
702
599
|
"""
|
|
703
600
|
if task_id is None:
|
|
704
601
|
raise ValueError("Missing required parameter 'task_id'")
|
|
705
|
-
request_body = {
|
|
706
|
-
"depends_on": depends_on,
|
|
707
|
-
"depedency_of": depedency_of,
|
|
708
|
-
}
|
|
602
|
+
request_body = {"depends_on": depends_on, "depedency_of": depedency_of}
|
|
709
603
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
710
604
|
url = f"{self.base_url}/task/{task_id}/dependency"
|
|
711
|
-
query_params = {
|
|
712
|
-
k: v
|
|
713
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
714
|
-
if v is not None
|
|
715
|
-
}
|
|
605
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
716
606
|
response = self._post(url, data=request_body, params=query_params)
|
|
717
607
|
response.raise_for_status()
|
|
718
608
|
return response.json()
|
|
719
609
|
|
|
720
|
-
def task_relationships_remove_dependency(
|
|
610
|
+
async def task_relationships_remove_dependency(
|
|
721
611
|
self, task_id, depends_on, dependency_of, custom_task_ids=None, team_id=None
|
|
722
612
|
) -> dict[str, Any]:
|
|
723
613
|
"""
|
|
@@ -761,9 +651,7 @@ class ClickupApp(APIApplication):
|
|
|
761
651
|
response.raise_for_status()
|
|
762
652
|
return response.json()
|
|
763
653
|
|
|
764
|
-
def task_relationships_link_tasks(
|
|
765
|
-
self, task_id, links_to, custom_task_ids=None, team_id=None
|
|
766
|
-
) -> dict[str, Any]:
|
|
654
|
+
async def task_relationships_link_tasks(self, task_id, links_to, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
767
655
|
"""
|
|
768
656
|
Links one task to another by creating a relationship between the source and target task IDs, with optional custom task and team identifiers.
|
|
769
657
|
|
|
@@ -788,18 +676,12 @@ class ClickupApp(APIApplication):
|
|
|
788
676
|
if links_to is None:
|
|
789
677
|
raise ValueError("Missing required parameter 'links_to'")
|
|
790
678
|
url = f"{self.base_url}/task/{task_id}/link/{links_to}"
|
|
791
|
-
query_params = {
|
|
792
|
-
k: v
|
|
793
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
794
|
-
if v is not None
|
|
795
|
-
}
|
|
679
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
796
680
|
response = self._post(url, data={}, params=query_params)
|
|
797
681
|
response.raise_for_status()
|
|
798
682
|
return response.json()
|
|
799
683
|
|
|
800
|
-
def task_relationships_remove_link_between_tasks(
|
|
801
|
-
self, task_id, links_to, custom_task_ids=None, team_id=None
|
|
802
|
-
) -> dict[str, Any]:
|
|
684
|
+
async def task_relationships_remove_link_between_tasks(self, task_id, links_to, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
803
685
|
"""
|
|
804
686
|
Removes a link between two specified tasks within the task management system.
|
|
805
687
|
|
|
@@ -824,16 +706,12 @@ class ClickupApp(APIApplication):
|
|
|
824
706
|
if links_to is None:
|
|
825
707
|
raise ValueError("Missing required parameter 'links_to'")
|
|
826
708
|
url = f"{self.base_url}/task/{task_id}/link/{links_to}"
|
|
827
|
-
query_params = {
|
|
828
|
-
k: v
|
|
829
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
830
|
-
if v is not None
|
|
831
|
-
}
|
|
709
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
832
710
|
response = self._delete(url, params=query_params)
|
|
833
711
|
response.raise_for_status()
|
|
834
712
|
return response.json()
|
|
835
713
|
|
|
836
|
-
def folders_get_contents_of(self, space_id, archived=None) -> dict[str, Any]:
|
|
714
|
+
async def folders_get_contents_of(self, space_id, archived=None) -> dict[str, Any]:
|
|
837
715
|
"""
|
|
838
716
|
Retrieves the contents of all folders within a specified space, with optional filtering for archived folders.
|
|
839
717
|
|
|
@@ -859,7 +737,7 @@ class ClickupApp(APIApplication):
|
|
|
859
737
|
response.raise_for_status()
|
|
860
738
|
return response.json()
|
|
861
739
|
|
|
862
|
-
def folders_create_new_folder(self, space_id, name) -> dict[str, Any]:
|
|
740
|
+
async def folders_create_new_folder(self, space_id, name) -> dict[str, Any]:
|
|
863
741
|
"""
|
|
864
742
|
Creates a new folder within a specified space.
|
|
865
743
|
|
|
@@ -881,9 +759,7 @@ class ClickupApp(APIApplication):
|
|
|
881
759
|
raise ValueError("Missing required parameter 'space_id'")
|
|
882
760
|
if name is None:
|
|
883
761
|
raise ValueError("Missing required parameter 'name'")
|
|
884
|
-
request_body = {
|
|
885
|
-
"name": name,
|
|
886
|
-
}
|
|
762
|
+
request_body = {"name": name}
|
|
887
763
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
888
764
|
url = f"{self.base_url}/space/{space_id}/folder"
|
|
889
765
|
query_params = {}
|
|
@@ -891,7 +767,7 @@ class ClickupApp(APIApplication):
|
|
|
891
767
|
response.raise_for_status()
|
|
892
768
|
return response.json()
|
|
893
769
|
|
|
894
|
-
def folders_get_folder_content(self, folder_id) -> dict[str, Any]:
|
|
770
|
+
async def folders_get_folder_content(self, folder_id) -> dict[str, Any]:
|
|
895
771
|
"""
|
|
896
772
|
Retrieves the contents of a specified folder by its ID.
|
|
897
773
|
|
|
@@ -916,7 +792,7 @@ class ClickupApp(APIApplication):
|
|
|
916
792
|
response.raise_for_status()
|
|
917
793
|
return response.json()
|
|
918
794
|
|
|
919
|
-
def folders_rename_folder(self, folder_id, name) -> dict[str, Any]:
|
|
795
|
+
async def folders_rename_folder(self, folder_id, name) -> dict[str, Any]:
|
|
920
796
|
"""
|
|
921
797
|
Renames an existing folder by updating its name using the specified folder ID.
|
|
922
798
|
|
|
@@ -938,9 +814,7 @@ class ClickupApp(APIApplication):
|
|
|
938
814
|
raise ValueError("Missing required parameter 'folder_id'")
|
|
939
815
|
if name is None:
|
|
940
816
|
raise ValueError("Missing required parameter 'name'")
|
|
941
|
-
request_body = {
|
|
942
|
-
"name": name,
|
|
943
|
-
}
|
|
817
|
+
request_body = {"name": name}
|
|
944
818
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
945
819
|
url = f"{self.base_url}/folder/{folder_id}"
|
|
946
820
|
query_params = {}
|
|
@@ -948,7 +822,7 @@ class ClickupApp(APIApplication):
|
|
|
948
822
|
response.raise_for_status()
|
|
949
823
|
return response.json()
|
|
950
824
|
|
|
951
|
-
def folders_remove_folder(self, folder_id) -> dict[str, Any]:
|
|
825
|
+
async def folders_remove_folder(self, folder_id) -> dict[str, Any]:
|
|
952
826
|
"""
|
|
953
827
|
Removes a folder with the specified folder ID by sending a DELETE request to the API.
|
|
954
828
|
|
|
@@ -973,9 +847,7 @@ class ClickupApp(APIApplication):
|
|
|
973
847
|
response.raise_for_status()
|
|
974
848
|
return response.json()
|
|
975
849
|
|
|
976
|
-
def goals_get_workspace_goals(
|
|
977
|
-
self, team_id, include_completed=None
|
|
978
|
-
) -> dict[str, Any]:
|
|
850
|
+
async def goals_get_workspace_goals(self, team_id, include_completed=None) -> dict[str, Any]:
|
|
979
851
|
"""
|
|
980
852
|
Retrieves all workspace goals for a specified team, optionally including completed goals.
|
|
981
853
|
|
|
@@ -996,16 +868,12 @@ class ClickupApp(APIApplication):
|
|
|
996
868
|
if team_id is None:
|
|
997
869
|
raise ValueError("Missing required parameter 'team_id'")
|
|
998
870
|
url = f"{self.base_url}/team/{team_id}/goal"
|
|
999
|
-
query_params = {
|
|
1000
|
-
k: v for k, v in [("include_completed", include_completed)] if v is not None
|
|
1001
|
-
}
|
|
871
|
+
query_params = {k: v for k, v in [("include_completed", include_completed)] if v is not None}
|
|
1002
872
|
response = self._get(url, params=query_params)
|
|
1003
873
|
response.raise_for_status()
|
|
1004
874
|
return response.json()
|
|
1005
875
|
|
|
1006
|
-
def goals_add_new_goal_to_workspace(
|
|
1007
|
-
self, team_id, description, name, due_date, multiple_owners, owners, color
|
|
1008
|
-
) -> dict[str, Any]:
|
|
876
|
+
async def goals_add_new_goal_to_workspace(self, team_id, description, name, due_date, multiple_owners, owners, color) -> dict[str, Any]:
|
|
1009
877
|
"""
|
|
1010
878
|
Adds a new goal to the specified team workspace.
|
|
1011
879
|
|
|
@@ -1056,7 +924,7 @@ class ClickupApp(APIApplication):
|
|
|
1056
924
|
response.raise_for_status()
|
|
1057
925
|
return response.json()
|
|
1058
926
|
|
|
1059
|
-
def goals_get_details(self, goal_id) -> dict[str, Any]:
|
|
927
|
+
async def goals_get_details(self, goal_id) -> dict[str, Any]:
|
|
1060
928
|
"""
|
|
1061
929
|
Retrieves detailed information about a goal based on the provided goal ID.
|
|
1062
930
|
|
|
@@ -1080,9 +948,7 @@ class ClickupApp(APIApplication):
|
|
|
1080
948
|
response.raise_for_status()
|
|
1081
949
|
return response.json()
|
|
1082
950
|
|
|
1083
|
-
def goals_update_goal_details(
|
|
1084
|
-
self, goal_id, description, name, due_date, rem_owners, add_owners, color
|
|
1085
|
-
) -> dict[str, Any]:
|
|
951
|
+
async def goals_update_goal_details(self, goal_id, description, name, due_date, rem_owners, add_owners, color) -> dict[str, Any]:
|
|
1086
952
|
"""
|
|
1087
953
|
Updates the details of an existing goal with new information, including description, name, due date, owners, and color.
|
|
1088
954
|
|
|
@@ -1134,7 +1000,7 @@ class ClickupApp(APIApplication):
|
|
|
1134
1000
|
response.raise_for_status()
|
|
1135
1001
|
return response.json()
|
|
1136
1002
|
|
|
1137
|
-
def goals_remove_goal(self, goal_id) -> dict[str, Any]:
|
|
1003
|
+
async def goals_remove_goal(self, goal_id) -> dict[str, Any]:
|
|
1138
1004
|
"""
|
|
1139
1005
|
Removes a goal from the system using the specified goal ID.
|
|
1140
1006
|
|
|
@@ -1159,18 +1025,7 @@ class ClickupApp(APIApplication):
|
|
|
1159
1025
|
response.raise_for_status()
|
|
1160
1026
|
return response.json()
|
|
1161
1027
|
|
|
1162
|
-
def goals_add_key_result(
|
|
1163
|
-
self,
|
|
1164
|
-
goal_id,
|
|
1165
|
-
name,
|
|
1166
|
-
owners,
|
|
1167
|
-
type,
|
|
1168
|
-
steps_start,
|
|
1169
|
-
steps_end,
|
|
1170
|
-
unit,
|
|
1171
|
-
task_ids,
|
|
1172
|
-
list_ids,
|
|
1173
|
-
) -> dict[str, Any]:
|
|
1028
|
+
async def goals_add_key_result(self, goal_id, name, owners, type, steps_start, steps_end, unit, task_ids, list_ids) -> dict[str, Any]:
|
|
1174
1029
|
"""
|
|
1175
1030
|
Creates and adds a new key result to a specified goal with the provided details and associated tasks/lists.
|
|
1176
1031
|
|
|
@@ -1230,9 +1085,7 @@ class ClickupApp(APIApplication):
|
|
|
1230
1085
|
response.raise_for_status()
|
|
1231
1086
|
return response.json()
|
|
1232
1087
|
|
|
1233
|
-
def goals_update_key_result(
|
|
1234
|
-
self, key_result_id, steps_current, note
|
|
1235
|
-
) -> dict[str, Any]:
|
|
1088
|
+
async def goals_update_key_result(self, key_result_id, steps_current, note) -> dict[str, Any]:
|
|
1236
1089
|
"""
|
|
1237
1090
|
Updates the current number of steps and note for a specific key result.
|
|
1238
1091
|
|
|
@@ -1257,10 +1110,7 @@ class ClickupApp(APIApplication):
|
|
|
1257
1110
|
raise ValueError("Missing required parameter 'steps_current'")
|
|
1258
1111
|
if note is None:
|
|
1259
1112
|
raise ValueError("Missing required parameter 'note'")
|
|
1260
|
-
request_body = {
|
|
1261
|
-
"steps_current": steps_current,
|
|
1262
|
-
"note": note,
|
|
1263
|
-
}
|
|
1113
|
+
request_body = {"steps_current": steps_current, "note": note}
|
|
1264
1114
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1265
1115
|
url = f"{self.base_url}/key_result/{key_result_id}"
|
|
1266
1116
|
query_params = {}
|
|
@@ -1268,7 +1118,7 @@ class ClickupApp(APIApplication):
|
|
|
1268
1118
|
response.raise_for_status()
|
|
1269
1119
|
return response.json()
|
|
1270
1120
|
|
|
1271
|
-
def goals_remove_target(self, key_result_id) -> dict[str, Any]:
|
|
1121
|
+
async def goals_remove_target(self, key_result_id) -> dict[str, Any]:
|
|
1272
1122
|
"""
|
|
1273
1123
|
Removes the target associated with a specified key result by sending a DELETE request to the API.
|
|
1274
1124
|
|
|
@@ -1293,15 +1143,8 @@ class ClickupApp(APIApplication):
|
|
|
1293
1143
|
response.raise_for_status()
|
|
1294
1144
|
return response.json()
|
|
1295
1145
|
|
|
1296
|
-
def guests_invite_to_workspace(
|
|
1297
|
-
self,
|
|
1298
|
-
team_id,
|
|
1299
|
-
email,
|
|
1300
|
-
can_edit_tags,
|
|
1301
|
-
can_see_time_spent,
|
|
1302
|
-
can_see_time_estimated,
|
|
1303
|
-
can_create_views,
|
|
1304
|
-
custom_role_id,
|
|
1146
|
+
async def guests_invite_to_workspace(
|
|
1147
|
+
self, team_id, email, can_edit_tags, can_see_time_spent, can_see_time_estimated, can_create_views, custom_role_id
|
|
1305
1148
|
) -> dict[str, Any]:
|
|
1306
1149
|
"""
|
|
1307
1150
|
Invites a guest to a workspace with specific permissions.
|
|
@@ -1354,7 +1197,7 @@ class ClickupApp(APIApplication):
|
|
|
1354
1197
|
response.raise_for_status()
|
|
1355
1198
|
return response.json()
|
|
1356
1199
|
|
|
1357
|
-
def guests_get_guest_information(self, team_id, guest_id) -> dict[str, Any]:
|
|
1200
|
+
async def guests_get_guest_information(self, team_id, guest_id) -> dict[str, Any]:
|
|
1358
1201
|
"""
|
|
1359
1202
|
Fetches guest information for a specific guest in a team.
|
|
1360
1203
|
|
|
@@ -1381,16 +1224,8 @@ class ClickupApp(APIApplication):
|
|
|
1381
1224
|
response.raise_for_status()
|
|
1382
1225
|
return response.json()
|
|
1383
1226
|
|
|
1384
|
-
def guests_edit_guest_on_workspace(
|
|
1385
|
-
self,
|
|
1386
|
-
team_id,
|
|
1387
|
-
guest_id,
|
|
1388
|
-
username,
|
|
1389
|
-
can_edit_tags,
|
|
1390
|
-
can_see_time_spent,
|
|
1391
|
-
can_see_time_estimated,
|
|
1392
|
-
can_create_views,
|
|
1393
|
-
custom_role_id,
|
|
1227
|
+
async def guests_edit_guest_on_workspace(
|
|
1228
|
+
self, team_id, guest_id, username, can_edit_tags, can_see_time_spent, can_see_time_estimated, can_create_views, custom_role_id
|
|
1394
1229
|
) -> dict[str, Any]:
|
|
1395
1230
|
"""
|
|
1396
1231
|
Edits a guest user's permissions and role within a specified workspace team.
|
|
@@ -1446,9 +1281,7 @@ class ClickupApp(APIApplication):
|
|
|
1446
1281
|
response.raise_for_status()
|
|
1447
1282
|
return response.json()
|
|
1448
1283
|
|
|
1449
|
-
def guests_revoke_guest_access_to_workspace(
|
|
1450
|
-
self, team_id, guest_id
|
|
1451
|
-
) -> dict[str, Any]:
|
|
1284
|
+
async def guests_revoke_guest_access_to_workspace(self, team_id, guest_id) -> dict[str, Any]:
|
|
1452
1285
|
"""
|
|
1453
1286
|
Revokes a guest's access to a workspace for a specified team.
|
|
1454
1287
|
|
|
@@ -1476,14 +1309,8 @@ class ClickupApp(APIApplication):
|
|
|
1476
1309
|
response.raise_for_status()
|
|
1477
1310
|
return response.json()
|
|
1478
1311
|
|
|
1479
|
-
def guests_add_to_task(
|
|
1480
|
-
self,
|
|
1481
|
-
task_id,
|
|
1482
|
-
guest_id,
|
|
1483
|
-
permission_level,
|
|
1484
|
-
include_shared=None,
|
|
1485
|
-
custom_task_ids=None,
|
|
1486
|
-
team_id=None,
|
|
1312
|
+
async def guests_add_to_task(
|
|
1313
|
+
self, task_id, guest_id, permission_level, include_shared=None, custom_task_ids=None, team_id=None
|
|
1487
1314
|
) -> dict[str, Any]:
|
|
1488
1315
|
"""
|
|
1489
1316
|
Adds a guest to a task with specified permission level and optional parameters.
|
|
@@ -1511,25 +1338,19 @@ class ClickupApp(APIApplication):
|
|
|
1511
1338
|
raise ValueError("Missing required parameter 'guest_id'")
|
|
1512
1339
|
if permission_level is None:
|
|
1513
1340
|
raise ValueError("Missing required parameter 'permission_level'")
|
|
1514
|
-
request_body = {
|
|
1515
|
-
"permission_level": permission_level,
|
|
1516
|
-
}
|
|
1341
|
+
request_body = {"permission_level": permission_level}
|
|
1517
1342
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1518
1343
|
url = f"{self.base_url}/task/{task_id}/guest/{guest_id}"
|
|
1519
1344
|
query_params = {
|
|
1520
1345
|
k: v
|
|
1521
|
-
for k, v in [
|
|
1522
|
-
("include_shared", include_shared),
|
|
1523
|
-
("custom_task_ids", custom_task_ids),
|
|
1524
|
-
("team_id", team_id),
|
|
1525
|
-
]
|
|
1346
|
+
for k, v in [("include_shared", include_shared), ("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
1526
1347
|
if v is not None
|
|
1527
1348
|
}
|
|
1528
1349
|
response = self._post(url, data=request_body, params=query_params)
|
|
1529
1350
|
response.raise_for_status()
|
|
1530
1351
|
return response.json()
|
|
1531
1352
|
|
|
1532
|
-
def guests_revoke_access_to_task(
|
|
1353
|
+
async def guests_revoke_access_to_task(
|
|
1533
1354
|
self, task_id, guest_id, include_shared=None, custom_task_ids=None, team_id=None
|
|
1534
1355
|
) -> dict[str, Any]:
|
|
1535
1356
|
"""
|
|
@@ -1559,20 +1380,14 @@ class ClickupApp(APIApplication):
|
|
|
1559
1380
|
url = f"{self.base_url}/task/{task_id}/guest/{guest_id}"
|
|
1560
1381
|
query_params = {
|
|
1561
1382
|
k: v
|
|
1562
|
-
for k, v in [
|
|
1563
|
-
("include_shared", include_shared),
|
|
1564
|
-
("custom_task_ids", custom_task_ids),
|
|
1565
|
-
("team_id", team_id),
|
|
1566
|
-
]
|
|
1383
|
+
for k, v in [("include_shared", include_shared), ("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
1567
1384
|
if v is not None
|
|
1568
1385
|
}
|
|
1569
1386
|
response = self._delete(url, params=query_params)
|
|
1570
1387
|
response.raise_for_status()
|
|
1571
1388
|
return response.json()
|
|
1572
1389
|
|
|
1573
|
-
def guests_share_list_with(
|
|
1574
|
-
self, list_id, guest_id, permission_level, include_shared=None
|
|
1575
|
-
) -> dict[str, Any]:
|
|
1390
|
+
async def guests_share_list_with(self, list_id, guest_id, permission_level, include_shared=None) -> dict[str, Any]:
|
|
1576
1391
|
"""
|
|
1577
1392
|
Shares a list with a specified guest by assigning a permission level and optionally including shared items.
|
|
1578
1393
|
|
|
@@ -1598,21 +1413,15 @@ class ClickupApp(APIApplication):
|
|
|
1598
1413
|
raise ValueError("Missing required parameter 'guest_id'")
|
|
1599
1414
|
if permission_level is None:
|
|
1600
1415
|
raise ValueError("Missing required parameter 'permission_level'")
|
|
1601
|
-
request_body = {
|
|
1602
|
-
"permission_level": permission_level,
|
|
1603
|
-
}
|
|
1416
|
+
request_body = {"permission_level": permission_level}
|
|
1604
1417
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1605
1418
|
url = f"{self.base_url}/list/{list_id}/guest/{guest_id}"
|
|
1606
|
-
query_params = {
|
|
1607
|
-
k: v for k, v in [("include_shared", include_shared)] if v is not None
|
|
1608
|
-
}
|
|
1419
|
+
query_params = {k: v for k, v in [("include_shared", include_shared)] if v is not None}
|
|
1609
1420
|
response = self._post(url, data=request_body, params=query_params)
|
|
1610
1421
|
response.raise_for_status()
|
|
1611
1422
|
return response.json()
|
|
1612
1423
|
|
|
1613
|
-
def guests_remove_from_list(
|
|
1614
|
-
self, list_id, guest_id, include_shared=None
|
|
1615
|
-
) -> dict[str, Any]:
|
|
1424
|
+
async def guests_remove_from_list(self, list_id, guest_id, include_shared=None) -> dict[str, Any]:
|
|
1616
1425
|
"""
|
|
1617
1426
|
Removes a guest from a specified list, optionally including shared guests in the operation.
|
|
1618
1427
|
|
|
@@ -1636,16 +1445,12 @@ class ClickupApp(APIApplication):
|
|
|
1636
1445
|
if guest_id is None:
|
|
1637
1446
|
raise ValueError("Missing required parameter 'guest_id'")
|
|
1638
1447
|
url = f"{self.base_url}/list/{list_id}/guest/{guest_id}"
|
|
1639
|
-
query_params = {
|
|
1640
|
-
k: v for k, v in [("include_shared", include_shared)] if v is not None
|
|
1641
|
-
}
|
|
1448
|
+
query_params = {k: v for k, v in [("include_shared", include_shared)] if v is not None}
|
|
1642
1449
|
response = self._delete(url, params=query_params)
|
|
1643
1450
|
response.raise_for_status()
|
|
1644
1451
|
return response.json()
|
|
1645
1452
|
|
|
1646
|
-
def guests_add_guest_to_folder(
|
|
1647
|
-
self, folder_id, guest_id, permission_level, include_shared=None
|
|
1648
|
-
) -> dict[str, Any]:
|
|
1453
|
+
async def guests_add_guest_to_folder(self, folder_id, guest_id, permission_level, include_shared=None) -> dict[str, Any]:
|
|
1649
1454
|
"""
|
|
1650
1455
|
Adds a guest to a specified folder with a given permission level, optionally including shared folders.
|
|
1651
1456
|
|
|
@@ -1671,21 +1476,15 @@ class ClickupApp(APIApplication):
|
|
|
1671
1476
|
raise ValueError("Missing required parameter 'guest_id'")
|
|
1672
1477
|
if permission_level is None:
|
|
1673
1478
|
raise ValueError("Missing required parameter 'permission_level'")
|
|
1674
|
-
request_body = {
|
|
1675
|
-
"permission_level": permission_level,
|
|
1676
|
-
}
|
|
1479
|
+
request_body = {"permission_level": permission_level}
|
|
1677
1480
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1678
1481
|
url = f"{self.base_url}/folder/{folder_id}/guest/{guest_id}"
|
|
1679
|
-
query_params = {
|
|
1680
|
-
k: v for k, v in [("include_shared", include_shared)] if v is not None
|
|
1681
|
-
}
|
|
1482
|
+
query_params = {k: v for k, v in [("include_shared", include_shared)] if v is not None}
|
|
1682
1483
|
response = self._post(url, data=request_body, params=query_params)
|
|
1683
1484
|
response.raise_for_status()
|
|
1684
1485
|
return response.json()
|
|
1685
1486
|
|
|
1686
|
-
def guests_revoke_access_from_folder(
|
|
1687
|
-
self, folder_id, guest_id, include_shared=None
|
|
1688
|
-
) -> dict[str, Any]:
|
|
1487
|
+
async def guests_revoke_access_from_folder(self, folder_id, guest_id, include_shared=None) -> dict[str, Any]:
|
|
1689
1488
|
"""
|
|
1690
1489
|
Revokes a guest's access from a specified folder, with optional inclusion of shared resources.
|
|
1691
1490
|
|
|
@@ -1709,14 +1508,12 @@ class ClickupApp(APIApplication):
|
|
|
1709
1508
|
if guest_id is None:
|
|
1710
1509
|
raise ValueError("Missing required parameter 'guest_id'")
|
|
1711
1510
|
url = f"{self.base_url}/folder/{folder_id}/guest/{guest_id}"
|
|
1712
|
-
query_params = {
|
|
1713
|
-
k: v for k, v in [("include_shared", include_shared)] if v is not None
|
|
1714
|
-
}
|
|
1511
|
+
query_params = {k: v for k, v in [("include_shared", include_shared)] if v is not None}
|
|
1715
1512
|
response = self._delete(url, params=query_params)
|
|
1716
1513
|
response.raise_for_status()
|
|
1717
1514
|
return response.json()
|
|
1718
1515
|
|
|
1719
|
-
def lists_get_folder_lists(self, folder_id, archived=None) -> dict[str, Any]:
|
|
1516
|
+
async def lists_get_folder_lists(self, folder_id, archived=None) -> dict[str, Any]:
|
|
1720
1517
|
"""
|
|
1721
1518
|
Retrieves all lists contained within a specified folder, with optional filtering for archived lists.
|
|
1722
1519
|
|
|
@@ -1742,16 +1539,8 @@ class ClickupApp(APIApplication):
|
|
|
1742
1539
|
response.raise_for_status()
|
|
1743
1540
|
return response.json()
|
|
1744
1541
|
|
|
1745
|
-
def lists_add_to_folder(
|
|
1746
|
-
self,
|
|
1747
|
-
folder_id,
|
|
1748
|
-
name,
|
|
1749
|
-
content=None,
|
|
1750
|
-
due_date=None,
|
|
1751
|
-
due_date_time=None,
|
|
1752
|
-
priority=None,
|
|
1753
|
-
assignee=None,
|
|
1754
|
-
status=None,
|
|
1542
|
+
async def lists_add_to_folder(
|
|
1543
|
+
self, folder_id, name, content=None, due_date=None, due_date_time=None, priority=None, assignee=None, status=None
|
|
1755
1544
|
) -> dict[str, Any]:
|
|
1756
1545
|
"""
|
|
1757
1546
|
Creates a new list in the specified folder with the given name and optional attributes.
|
|
@@ -1796,7 +1585,7 @@ class ClickupApp(APIApplication):
|
|
|
1796
1585
|
response.raise_for_status()
|
|
1797
1586
|
return response.json()
|
|
1798
1587
|
|
|
1799
|
-
def lists_get_folderless(self, space_id, archived=None) -> dict[str, Any]:
|
|
1588
|
+
async def lists_get_folderless(self, space_id, archived=None) -> dict[str, Any]:
|
|
1800
1589
|
"""
|
|
1801
1590
|
Retrieves all lists within the specified space that are not associated with a folder.
|
|
1802
1591
|
|
|
@@ -1822,16 +1611,8 @@ class ClickupApp(APIApplication):
|
|
|
1822
1611
|
response.raise_for_status()
|
|
1823
1612
|
return response.json()
|
|
1824
1613
|
|
|
1825
|
-
def lists_create_folderless_list(
|
|
1826
|
-
self,
|
|
1827
|
-
space_id,
|
|
1828
|
-
name,
|
|
1829
|
-
content=None,
|
|
1830
|
-
due_date=None,
|
|
1831
|
-
due_date_time=None,
|
|
1832
|
-
priority=None,
|
|
1833
|
-
assignee=None,
|
|
1834
|
-
status=None,
|
|
1614
|
+
async def lists_create_folderless_list(
|
|
1615
|
+
self, space_id, name, content=None, due_date=None, due_date_time=None, priority=None, assignee=None, status=None
|
|
1835
1616
|
) -> dict[str, Any]:
|
|
1836
1617
|
"""
|
|
1837
1618
|
Creates a new list within a specified space without associating it with a folder.
|
|
@@ -1876,7 +1657,7 @@ class ClickupApp(APIApplication):
|
|
|
1876
1657
|
response.raise_for_status()
|
|
1877
1658
|
return response.json()
|
|
1878
1659
|
|
|
1879
|
-
def lists_get_list_details(self, list_id) -> dict[str, Any]:
|
|
1660
|
+
async def lists_get_list_details(self, list_id) -> dict[str, Any]:
|
|
1880
1661
|
"""
|
|
1881
1662
|
Retrieves the details of a specific list by its unique identifier.
|
|
1882
1663
|
|
|
@@ -1901,17 +1682,8 @@ class ClickupApp(APIApplication):
|
|
|
1901
1682
|
response.raise_for_status()
|
|
1902
1683
|
return response.json()
|
|
1903
1684
|
|
|
1904
|
-
def lists_update_list(
|
|
1905
|
-
self,
|
|
1906
|
-
list_id,
|
|
1907
|
-
name,
|
|
1908
|
-
content,
|
|
1909
|
-
due_date,
|
|
1910
|
-
due_date_time,
|
|
1911
|
-
priority,
|
|
1912
|
-
assignee,
|
|
1913
|
-
status,
|
|
1914
|
-
unset_status,
|
|
1685
|
+
async def lists_update_list(
|
|
1686
|
+
self, list_id, name, content, due_date, due_date_time, priority, assignee, status, unset_status
|
|
1915
1687
|
) -> dict[str, Any]:
|
|
1916
1688
|
"""
|
|
1917
1689
|
Updates the information of a list, including name, content, due date, priority, assignee, status, and color attributes.
|
|
@@ -1972,7 +1744,7 @@ class ClickupApp(APIApplication):
|
|
|
1972
1744
|
response.raise_for_status()
|
|
1973
1745
|
return response.json()
|
|
1974
1746
|
|
|
1975
|
-
def lists_remove_list(self, list_id) -> dict[str, Any]:
|
|
1747
|
+
async def lists_remove_list(self, list_id) -> dict[str, Any]:
|
|
1976
1748
|
"""
|
|
1977
1749
|
Removes a list with the specified list ID via an HTTP DELETE request and returns the API response as a dictionary.
|
|
1978
1750
|
|
|
@@ -1997,7 +1769,7 @@ class ClickupApp(APIApplication):
|
|
|
1997
1769
|
response.raise_for_status()
|
|
1998
1770
|
return response.json()
|
|
1999
1771
|
|
|
2000
|
-
def lists_add_task_to_list(self, list_id, task_id) -> dict[str, Any]:
|
|
1772
|
+
async def lists_add_task_to_list(self, list_id, task_id) -> dict[str, Any]:
|
|
2001
1773
|
"""
|
|
2002
1774
|
Adds a task to a specified list.
|
|
2003
1775
|
|
|
@@ -2025,7 +1797,7 @@ class ClickupApp(APIApplication):
|
|
|
2025
1797
|
response.raise_for_status()
|
|
2026
1798
|
return response.json()
|
|
2027
1799
|
|
|
2028
|
-
def lists_remove_task_from_list(self, list_id, task_id) -> dict[str, Any]:
|
|
1800
|
+
async def lists_remove_task_from_list(self, list_id, task_id) -> dict[str, Any]:
|
|
2029
1801
|
"""
|
|
2030
1802
|
Removes a specific task from a list by sending a DELETE request to the appropriate API endpoint.
|
|
2031
1803
|
|
|
@@ -2053,7 +1825,7 @@ class ClickupApp(APIApplication):
|
|
|
2053
1825
|
response.raise_for_status()
|
|
2054
1826
|
return response.json()
|
|
2055
1827
|
|
|
2056
|
-
def members_get_task_access(self, task_id) -> dict[str, Any]:
|
|
1828
|
+
async def members_get_task_access(self, task_id) -> dict[str, Any]:
|
|
2057
1829
|
"""
|
|
2058
1830
|
Retrieves a list of members who have access to the specified task.
|
|
2059
1831
|
|
|
@@ -2078,7 +1850,7 @@ class ClickupApp(APIApplication):
|
|
|
2078
1850
|
response.raise_for_status()
|
|
2079
1851
|
return response.json()
|
|
2080
1852
|
|
|
2081
|
-
def members_get_list_users(self, list_id) -> dict[str, Any]:
|
|
1853
|
+
async def members_get_list_users(self, list_id) -> dict[str, Any]:
|
|
2082
1854
|
"""
|
|
2083
1855
|
Retrieves the list of users who are members of the specified list.
|
|
2084
1856
|
|
|
@@ -2103,9 +1875,7 @@ class ClickupApp(APIApplication):
|
|
|
2103
1875
|
response.raise_for_status()
|
|
2104
1876
|
return response.json()
|
|
2105
1877
|
|
|
2106
|
-
def roles_list_available_custom_roles(
|
|
2107
|
-
self, team_id, include_members=None
|
|
2108
|
-
) -> dict[str, Any]:
|
|
1878
|
+
async def roles_list_available_custom_roles(self, team_id, include_members=None) -> dict[str, Any]:
|
|
2109
1879
|
"""
|
|
2110
1880
|
Retrieves a list of available custom roles for a specified team, optionally including role members.
|
|
2111
1881
|
|
|
@@ -2125,14 +1895,12 @@ class ClickupApp(APIApplication):
|
|
|
2125
1895
|
if team_id is None:
|
|
2126
1896
|
raise ValueError("Missing required parameter 'team_id'")
|
|
2127
1897
|
url = f"{self.base_url}/team/{team_id}/customroles"
|
|
2128
|
-
query_params = {
|
|
2129
|
-
k: v for k, v in [("include_members", include_members)] if v is not None
|
|
2130
|
-
}
|
|
1898
|
+
query_params = {k: v for k, v in [("include_members", include_members)] if v is not None}
|
|
2131
1899
|
response = self._get(url, params=query_params)
|
|
2132
1900
|
response.raise_for_status()
|
|
2133
1901
|
return response.json()
|
|
2134
1902
|
|
|
2135
|
-
def shared_hierarchy_view_tasks_lists_folders(self, team_id) -> dict[str, Any]:
|
|
1903
|
+
async def shared_hierarchy_view_tasks_lists_folders(self, team_id) -> dict[str, Any]:
|
|
2136
1904
|
"""
|
|
2137
1905
|
Retrieves the shared hierarchy view including tasks, lists, and folders for a specified team.
|
|
2138
1906
|
|
|
@@ -2157,7 +1925,7 @@ class ClickupApp(APIApplication):
|
|
|
2157
1925
|
response.raise_for_status()
|
|
2158
1926
|
return response.json()
|
|
2159
1927
|
|
|
2160
|
-
def spaces_get_space_details(self, team_id, archived=None) -> dict[str, Any]:
|
|
1928
|
+
async def spaces_get_space_details(self, team_id, archived=None) -> dict[str, Any]:
|
|
2161
1929
|
"""
|
|
2162
1930
|
Retrieves details about spaces within a specified team, optionally filtering by archived status.
|
|
2163
1931
|
|
|
@@ -2183,9 +1951,7 @@ class ClickupApp(APIApplication):
|
|
|
2183
1951
|
response.raise_for_status()
|
|
2184
1952
|
return response.json()
|
|
2185
1953
|
|
|
2186
|
-
def spaces_add_new_space_to_workspace(
|
|
2187
|
-
self, team_id, name, multiple_assignees, features
|
|
2188
|
-
) -> dict[str, Any]:
|
|
1954
|
+
async def spaces_add_new_space_to_workspace(self, team_id, name, multiple_assignees, features) -> dict[str, Any]:
|
|
2189
1955
|
"""
|
|
2190
1956
|
Creates a new space within a specified workspace team, configuring assignment settings and desired features.
|
|
2191
1957
|
|
|
@@ -2213,11 +1979,7 @@ class ClickupApp(APIApplication):
|
|
|
2213
1979
|
raise ValueError("Missing required parameter 'multiple_assignees'")
|
|
2214
1980
|
if features is None:
|
|
2215
1981
|
raise ValueError("Missing required parameter 'features'")
|
|
2216
|
-
request_body = {
|
|
2217
|
-
"name": name,
|
|
2218
|
-
"multiple_assignees": multiple_assignees,
|
|
2219
|
-
"features": features,
|
|
2220
|
-
}
|
|
1982
|
+
request_body = {"name": name, "multiple_assignees": multiple_assignees, "features": features}
|
|
2221
1983
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2222
1984
|
url = f"{self.base_url}/team/{team_id}/space"
|
|
2223
1985
|
query_params = {}
|
|
@@ -2225,7 +1987,7 @@ class ClickupApp(APIApplication):
|
|
|
2225
1987
|
response.raise_for_status()
|
|
2226
1988
|
return response.json()
|
|
2227
1989
|
|
|
2228
|
-
def spaces_get_details(self, space_id) -> dict[str, Any]:
|
|
1990
|
+
async def spaces_get_details(self, space_id) -> dict[str, Any]:
|
|
2229
1991
|
"""
|
|
2230
1992
|
Retrieves the details of a specified space by its unique identifier.
|
|
2231
1993
|
|
|
@@ -2250,15 +2012,8 @@ class ClickupApp(APIApplication):
|
|
|
2250
2012
|
response.raise_for_status()
|
|
2251
2013
|
return response.json()
|
|
2252
2014
|
|
|
2253
|
-
def spaces_update_details_and_enable_click_apps(
|
|
2254
|
-
self,
|
|
2255
|
-
space_id,
|
|
2256
|
-
name,
|
|
2257
|
-
color,
|
|
2258
|
-
private,
|
|
2259
|
-
admin_can_manage,
|
|
2260
|
-
multiple_assignees,
|
|
2261
|
-
features,
|
|
2015
|
+
async def spaces_update_details_and_enable_click_apps(
|
|
2016
|
+
self, space_id, name, color, private, admin_can_manage, multiple_assignees, features
|
|
2262
2017
|
) -> dict[str, Any]:
|
|
2263
2018
|
"""
|
|
2264
2019
|
Updates the details of a specific space and enables click apps by sending a PUT request with the provided attributes.
|
|
@@ -2311,7 +2066,7 @@ class ClickupApp(APIApplication):
|
|
|
2311
2066
|
response.raise_for_status()
|
|
2312
2067
|
return response.json()
|
|
2313
2068
|
|
|
2314
|
-
def spaces_remove_space(self, space_id) -> dict[str, Any]:
|
|
2069
|
+
async def spaces_remove_space(self, space_id) -> dict[str, Any]:
|
|
2315
2070
|
"""
|
|
2316
2071
|
Removes a space identified by the given space_id.
|
|
2317
2072
|
|
|
@@ -2336,7 +2091,7 @@ class ClickupApp(APIApplication):
|
|
|
2336
2091
|
response.raise_for_status()
|
|
2337
2092
|
return response.json()
|
|
2338
2093
|
|
|
2339
|
-
def tags_get_space(self, space_id) -> dict[str, Any]:
|
|
2094
|
+
async def tags_get_space(self, space_id) -> dict[str, Any]:
|
|
2340
2095
|
"""
|
|
2341
2096
|
Retrieves all tags associated with a specific space by its unique identifier.
|
|
2342
2097
|
|
|
@@ -2361,7 +2116,7 @@ class ClickupApp(APIApplication):
|
|
|
2361
2116
|
response.raise_for_status()
|
|
2362
2117
|
return response.json()
|
|
2363
2118
|
|
|
2364
|
-
def tags_create_space_tag(self, space_id, tag) -> dict[str, Any]:
|
|
2119
|
+
async def tags_create_space_tag(self, space_id, tag) -> dict[str, Any]:
|
|
2365
2120
|
"""
|
|
2366
2121
|
Creates a new tag for a specified space by sending a POST request to the space tag API endpoint.
|
|
2367
2122
|
|
|
@@ -2383,9 +2138,7 @@ class ClickupApp(APIApplication):
|
|
|
2383
2138
|
raise ValueError("Missing required parameter 'space_id'")
|
|
2384
2139
|
if tag is None:
|
|
2385
2140
|
raise ValueError("Missing required parameter 'tag'")
|
|
2386
|
-
request_body = {
|
|
2387
|
-
"tag": tag,
|
|
2388
|
-
}
|
|
2141
|
+
request_body = {"tag": tag}
|
|
2389
2142
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2390
2143
|
url = f"{self.base_url}/space/{space_id}/tag"
|
|
2391
2144
|
query_params = {}
|
|
@@ -2393,7 +2146,7 @@ class ClickupApp(APIApplication):
|
|
|
2393
2146
|
response.raise_for_status()
|
|
2394
2147
|
return response.json()
|
|
2395
2148
|
|
|
2396
|
-
def tags_update_space_tag(self, space_id, tag_name, tag) -> dict[str, Any]:
|
|
2149
|
+
async def tags_update_space_tag(self, space_id, tag_name, tag) -> dict[str, Any]:
|
|
2397
2150
|
"""
|
|
2398
2151
|
Updates a tag for a specified space by sending a PUT request with the provided tag data.
|
|
2399
2152
|
|
|
@@ -2418,9 +2171,7 @@ class ClickupApp(APIApplication):
|
|
|
2418
2171
|
raise ValueError("Missing required parameter 'tag_name'")
|
|
2419
2172
|
if tag is None:
|
|
2420
2173
|
raise ValueError("Missing required parameter 'tag'")
|
|
2421
|
-
request_body = {
|
|
2422
|
-
"tag": tag,
|
|
2423
|
-
}
|
|
2174
|
+
request_body = {"tag": tag}
|
|
2424
2175
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2425
2176
|
url = f"{self.base_url}/space/{space_id}/tag/{tag_name}"
|
|
2426
2177
|
query_params = {}
|
|
@@ -2428,7 +2179,7 @@ class ClickupApp(APIApplication):
|
|
|
2428
2179
|
response.raise_for_status()
|
|
2429
2180
|
return response.json()
|
|
2430
2181
|
|
|
2431
|
-
def tags_remove_space_tag(self, space_id, tag_name, tag) -> dict[str, Any]:
|
|
2182
|
+
async def tags_remove_space_tag(self, space_id, tag_name, tag) -> dict[str, Any]:
|
|
2432
2183
|
"""
|
|
2433
2184
|
Removes a specified tag from a given space by tag name.
|
|
2434
2185
|
|
|
@@ -2453,9 +2204,7 @@ class ClickupApp(APIApplication):
|
|
|
2453
2204
|
raise ValueError("Missing required parameter 'tag_name'")
|
|
2454
2205
|
if tag is None:
|
|
2455
2206
|
raise ValueError("Missing required parameter 'tag'")
|
|
2456
|
-
request_body = {
|
|
2457
|
-
"tag": tag,
|
|
2458
|
-
}
|
|
2207
|
+
request_body = {"tag": tag}
|
|
2459
2208
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2460
2209
|
url = f"{self.base_url}/space/{space_id}/tag/{tag_name}"
|
|
2461
2210
|
query_params = {}
|
|
@@ -2463,9 +2212,7 @@ class ClickupApp(APIApplication):
|
|
|
2463
2212
|
response.raise_for_status()
|
|
2464
2213
|
return response.json()
|
|
2465
2214
|
|
|
2466
|
-
def tags_add_to_task(
|
|
2467
|
-
self, task_id, tag_name, custom_task_ids=None, team_id=None
|
|
2468
|
-
) -> dict[str, Any]:
|
|
2215
|
+
async def tags_add_to_task(self, task_id, tag_name, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
2469
2216
|
"""
|
|
2470
2217
|
Adds a tag to a specific task.
|
|
2471
2218
|
|
|
@@ -2490,18 +2237,12 @@ class ClickupApp(APIApplication):
|
|
|
2490
2237
|
if tag_name is None:
|
|
2491
2238
|
raise ValueError("Missing required parameter 'tag_name'")
|
|
2492
2239
|
url = f"{self.base_url}/task/{task_id}/tag/{tag_name}"
|
|
2493
|
-
query_params = {
|
|
2494
|
-
k: v
|
|
2495
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
2496
|
-
if v is not None
|
|
2497
|
-
}
|
|
2240
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
2498
2241
|
response = self._post(url, data={}, params=query_params)
|
|
2499
2242
|
response.raise_for_status()
|
|
2500
2243
|
return response.json()
|
|
2501
2244
|
|
|
2502
|
-
def tags_remove_from_task(
|
|
2503
|
-
self, task_id, tag_name, custom_task_ids=None, team_id=None
|
|
2504
|
-
) -> dict[str, Any]:
|
|
2245
|
+
async def tags_remove_from_task(self, task_id, tag_name, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
2505
2246
|
"""
|
|
2506
2247
|
Removes a specific tag from a task by ID, with optional filtering by custom task IDs and team ID.
|
|
2507
2248
|
|
|
@@ -2525,16 +2266,12 @@ class ClickupApp(APIApplication):
|
|
|
2525
2266
|
if tag_name is None:
|
|
2526
2267
|
raise ValueError("Missing required parameter 'tag_name'")
|
|
2527
2268
|
url = f"{self.base_url}/task/{task_id}/tag/{tag_name}"
|
|
2528
|
-
query_params = {
|
|
2529
|
-
k: v
|
|
2530
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
2531
|
-
if v is not None
|
|
2532
|
-
}
|
|
2269
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
2533
2270
|
response = self._delete(url, params=query_params)
|
|
2534
2271
|
response.raise_for_status()
|
|
2535
2272
|
return response.json()
|
|
2536
2273
|
|
|
2537
|
-
def tasks_get_list_tasks(
|
|
2274
|
+
async def tasks_get_list_tasks(
|
|
2538
2275
|
self,
|
|
2539
2276
|
list_id,
|
|
2540
2277
|
archived=None,
|
|
@@ -2627,7 +2364,7 @@ class ClickupApp(APIApplication):
|
|
|
2627
2364
|
response.raise_for_status()
|
|
2628
2365
|
return response.json()
|
|
2629
2366
|
|
|
2630
|
-
def tasks_create_new_task(
|
|
2367
|
+
async def tasks_create_new_task(
|
|
2631
2368
|
self,
|
|
2632
2369
|
list_id,
|
|
2633
2370
|
name,
|
|
@@ -2710,22 +2447,13 @@ class ClickupApp(APIApplication):
|
|
|
2710
2447
|
}
|
|
2711
2448
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2712
2449
|
url = f"{self.base_url}/list/{list_id}/task"
|
|
2713
|
-
query_params = {
|
|
2714
|
-
k: v
|
|
2715
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
2716
|
-
if v is not None
|
|
2717
|
-
}
|
|
2450
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
2718
2451
|
response = self._post(url, data=request_body, params=query_params)
|
|
2719
2452
|
response.raise_for_status()
|
|
2720
2453
|
return response.json()
|
|
2721
2454
|
|
|
2722
|
-
def tasks_get_task_details(
|
|
2723
|
-
self,
|
|
2724
|
-
task_id,
|
|
2725
|
-
custom_task_ids=None,
|
|
2726
|
-
team_id=None,
|
|
2727
|
-
include_subtasks=None,
|
|
2728
|
-
include_markdown_description=None,
|
|
2455
|
+
async def tasks_get_task_details(
|
|
2456
|
+
self, task_id, custom_task_ids=None, team_id=None, include_subtasks=None, include_markdown_description=None
|
|
2729
2457
|
) -> dict[str, Any]:
|
|
2730
2458
|
"""
|
|
2731
2459
|
Retrieves detailed information about a specific task, with options to include subtasks, use custom task IDs, filter by team, and specify description formatting.
|
|
@@ -2764,7 +2492,7 @@ class ClickupApp(APIApplication):
|
|
|
2764
2492
|
response.raise_for_status()
|
|
2765
2493
|
return response.json()
|
|
2766
2494
|
|
|
2767
|
-
def tasks_update_task_fields(
|
|
2495
|
+
async def tasks_update_task_fields(
|
|
2768
2496
|
self,
|
|
2769
2497
|
task_id,
|
|
2770
2498
|
custom_task_ids=None,
|
|
@@ -2833,18 +2561,12 @@ class ClickupApp(APIApplication):
|
|
|
2833
2561
|
}
|
|
2834
2562
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
2835
2563
|
url = f"{self.base_url}/task/{task_id}"
|
|
2836
|
-
query_params = {
|
|
2837
|
-
k: v
|
|
2838
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
2839
|
-
if v is not None
|
|
2840
|
-
}
|
|
2564
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
2841
2565
|
response = self._put(url, data=request_body, params=query_params)
|
|
2842
2566
|
response.raise_for_status()
|
|
2843
2567
|
return response.json()
|
|
2844
2568
|
|
|
2845
|
-
def tasks_remove_task_by_id(
|
|
2846
|
-
self, task_id, custom_task_ids=None, team_id=None
|
|
2847
|
-
) -> dict[str, Any]:
|
|
2569
|
+
async def tasks_remove_task_by_id(self, task_id, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
2848
2570
|
"""
|
|
2849
2571
|
Removes a specific task by its unique task ID, optionally filtering by custom task IDs and team ID.
|
|
2850
2572
|
|
|
@@ -2866,16 +2588,12 @@ class ClickupApp(APIApplication):
|
|
|
2866
2588
|
if task_id is None:
|
|
2867
2589
|
raise ValueError("Missing required parameter 'task_id'")
|
|
2868
2590
|
url = f"{self.base_url}/task/{task_id}"
|
|
2869
|
-
query_params = {
|
|
2870
|
-
k: v
|
|
2871
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
2872
|
-
if v is not None
|
|
2873
|
-
}
|
|
2591
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
2874
2592
|
response = self._delete(url, params=query_params)
|
|
2875
2593
|
response.raise_for_status()
|
|
2876
2594
|
return response.json()
|
|
2877
2595
|
|
|
2878
|
-
def tasks_filter_team_tasks(
|
|
2596
|
+
async def tasks_filter_team_tasks(
|
|
2879
2597
|
self,
|
|
2880
2598
|
team_Id,
|
|
2881
2599
|
page=None,
|
|
@@ -2983,9 +2701,7 @@ class ClickupApp(APIApplication):
|
|
|
2983
2701
|
response.raise_for_status()
|
|
2984
2702
|
return response.json()
|
|
2985
2703
|
|
|
2986
|
-
def tasks_get_time_in_status(
|
|
2987
|
-
self, task_id, custom_task_ids=None, team_id=None
|
|
2988
|
-
) -> dict[str, Any]:
|
|
2704
|
+
async def tasks_get_time_in_status(self, task_id, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
2989
2705
|
"""
|
|
2990
2706
|
Retrieves the amount of time a specified task has spent in each status, with optional filters for custom task IDs and team ID.
|
|
2991
2707
|
|
|
@@ -3007,18 +2723,12 @@ class ClickupApp(APIApplication):
|
|
|
3007
2723
|
if task_id is None:
|
|
3008
2724
|
raise ValueError("Missing required parameter 'task_id'")
|
|
3009
2725
|
url = f"{self.base_url}/task/{task_id}/time_in_status"
|
|
3010
|
-
query_params = {
|
|
3011
|
-
k: v
|
|
3012
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3013
|
-
if v is not None
|
|
3014
|
-
}
|
|
2726
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3015
2727
|
response = self._get(url, params=query_params)
|
|
3016
2728
|
response.raise_for_status()
|
|
3017
2729
|
return response.json()
|
|
3018
2730
|
|
|
3019
|
-
def tasks_get_time_in_status_bulk(
|
|
3020
|
-
self, task_ids, custom_task_ids=None, team_id=None
|
|
3021
|
-
) -> dict[str, Any]:
|
|
2731
|
+
async def tasks_get_time_in_status_bulk(self, task_ids, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
3022
2732
|
"""
|
|
3023
2733
|
Retrieves the time each specified task has spent in various statuses, in bulk, based on provided task identifiers.
|
|
3024
2734
|
|
|
@@ -3041,19 +2751,13 @@ class ClickupApp(APIApplication):
|
|
|
3041
2751
|
raise ValueError("Missing required parameter 'task_ids'")
|
|
3042
2752
|
url = f"{self.base_url}/task/bulk_time_in_status/task_ids"
|
|
3043
2753
|
query_params = {
|
|
3044
|
-
k: v
|
|
3045
|
-
for k, v in [
|
|
3046
|
-
("task_ids", task_ids),
|
|
3047
|
-
("custom_task_ids", custom_task_ids),
|
|
3048
|
-
("team_id", team_id),
|
|
3049
|
-
]
|
|
3050
|
-
if v is not None
|
|
2754
|
+
k: v for k, v in [("task_ids", task_ids), ("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None
|
|
3051
2755
|
}
|
|
3052
2756
|
response = self._get(url, params=query_params)
|
|
3053
2757
|
response.raise_for_status()
|
|
3054
2758
|
return response.json()
|
|
3055
2759
|
|
|
3056
|
-
def task_templates_get_templates(self, team_id, page) -> dict[str, Any]:
|
|
2760
|
+
async def task_templates_get_templates(self, team_id, page) -> dict[str, Any]:
|
|
3057
2761
|
"""
|
|
3058
2762
|
Retrieves a paginated list of task templates for a given team.
|
|
3059
2763
|
|
|
@@ -3081,9 +2785,7 @@ class ClickupApp(APIApplication):
|
|
|
3081
2785
|
response.raise_for_status()
|
|
3082
2786
|
return response.json()
|
|
3083
2787
|
|
|
3084
|
-
def task_templates_create_from_template(
|
|
3085
|
-
self, list_id, template_id, name
|
|
3086
|
-
) -> dict[str, Any]:
|
|
2788
|
+
async def task_templates_create_from_template(self, list_id, template_id, name) -> dict[str, Any]:
|
|
3087
2789
|
"""
|
|
3088
2790
|
Creates a new task template instance in a specific list by cloning from an existing task template.
|
|
3089
2791
|
|
|
@@ -3108,9 +2810,7 @@ class ClickupApp(APIApplication):
|
|
|
3108
2810
|
raise ValueError("Missing required parameter 'template_id'")
|
|
3109
2811
|
if name is None:
|
|
3110
2812
|
raise ValueError("Missing required parameter 'name'")
|
|
3111
|
-
request_body = {
|
|
3112
|
-
"name": name,
|
|
3113
|
-
}
|
|
2813
|
+
request_body = {"name": name}
|
|
3114
2814
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3115
2815
|
url = f"{self.base_url}/list/{list_id}/taskTemplate/{template_id}"
|
|
3116
2816
|
query_params = {}
|
|
@@ -3118,7 +2818,7 @@ class ClickupApp(APIApplication):
|
|
|
3118
2818
|
response.raise_for_status()
|
|
3119
2819
|
return response.json()
|
|
3120
2820
|
|
|
3121
|
-
def teams_workspaces_get_workspace_seats(self, team_id) -> dict[str, Any]:
|
|
2821
|
+
async def teams_workspaces_get_workspace_seats(self, team_id) -> dict[str, Any]:
|
|
3122
2822
|
"""
|
|
3123
2823
|
Retrieves detailed seat allocation information for a specific workspace team.
|
|
3124
2824
|
|
|
@@ -3143,7 +2843,7 @@ class ClickupApp(APIApplication):
|
|
|
3143
2843
|
response.raise_for_status()
|
|
3144
2844
|
return response.json()
|
|
3145
2845
|
|
|
3146
|
-
def teams_workspaces_get_workspace_plan(self, team_id) -> dict[str, Any]:
|
|
2846
|
+
async def teams_workspaces_get_workspace_plan(self, team_id) -> dict[str, Any]:
|
|
3147
2847
|
"""
|
|
3148
2848
|
Retrieves the plan details for a workspace associated with the specified team.
|
|
3149
2849
|
|
|
@@ -3168,7 +2868,7 @@ class ClickupApp(APIApplication):
|
|
|
3168
2868
|
response.raise_for_status()
|
|
3169
2869
|
return response.json()
|
|
3170
2870
|
|
|
3171
|
-
def teams_user_groups_create_team(self, team_id, name, members) -> dict[str, Any]:
|
|
2871
|
+
async def teams_user_groups_create_team(self, team_id, name, members) -> dict[str, Any]:
|
|
3172
2872
|
"""
|
|
3173
2873
|
Creates a new team user group with the specified name and members under the given team.
|
|
3174
2874
|
|
|
@@ -3193,10 +2893,7 @@ class ClickupApp(APIApplication):
|
|
|
3193
2893
|
raise ValueError("Missing required parameter 'name'")
|
|
3194
2894
|
if members is None:
|
|
3195
2895
|
raise ValueError("Missing required parameter 'members'")
|
|
3196
|
-
request_body = {
|
|
3197
|
-
"name": name,
|
|
3198
|
-
"members": members,
|
|
3199
|
-
}
|
|
2896
|
+
request_body = {"name": name, "members": members}
|
|
3200
2897
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3201
2898
|
url = f"{self.base_url}/team/{team_id}/group"
|
|
3202
2899
|
query_params = {}
|
|
@@ -3204,7 +2901,7 @@ class ClickupApp(APIApplication):
|
|
|
3204
2901
|
response.raise_for_status()
|
|
3205
2902
|
return response.json()
|
|
3206
2903
|
|
|
3207
|
-
def custom_task_types_get_available_task_types(self, team_id) -> dict[str, Any]:
|
|
2904
|
+
async def custom_task_types_get_available_task_types(self, team_id) -> dict[str, Any]:
|
|
3208
2905
|
"""
|
|
3209
2906
|
Retrieves the available custom task types for a specified team.
|
|
3210
2907
|
|
|
@@ -3229,9 +2926,7 @@ class ClickupApp(APIApplication):
|
|
|
3229
2926
|
response.raise_for_status()
|
|
3230
2927
|
return response.json()
|
|
3231
2928
|
|
|
3232
|
-
def teams_user_groups_update_user_group(
|
|
3233
|
-
self, group_id, name=None, handle=None, members=None
|
|
3234
|
-
) -> dict[str, Any]:
|
|
2929
|
+
async def teams_user_groups_update_user_group(self, group_id, name=None, handle=None, members=None) -> dict[str, Any]:
|
|
3235
2930
|
"""
|
|
3236
2931
|
Updates the attributes of a user group in the Teams system.
|
|
3237
2932
|
|
|
@@ -3253,11 +2948,7 @@ class ClickupApp(APIApplication):
|
|
|
3253
2948
|
"""
|
|
3254
2949
|
if group_id is None:
|
|
3255
2950
|
raise ValueError("Missing required parameter 'group_id'")
|
|
3256
|
-
request_body = {
|
|
3257
|
-
"name": name,
|
|
3258
|
-
"handle": handle,
|
|
3259
|
-
"members": members,
|
|
3260
|
-
}
|
|
2951
|
+
request_body = {"name": name, "handle": handle, "members": members}
|
|
3261
2952
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3262
2953
|
url = f"{self.base_url}/group/{group_id}"
|
|
3263
2954
|
query_params = {}
|
|
@@ -3265,7 +2956,7 @@ class ClickupApp(APIApplication):
|
|
|
3265
2956
|
response.raise_for_status()
|
|
3266
2957
|
return response.json()
|
|
3267
2958
|
|
|
3268
|
-
def teams_user_groups_remove_group(self, group_id) -> dict[str, Any]:
|
|
2959
|
+
async def teams_user_groups_remove_group(self, group_id) -> dict[str, Any]:
|
|
3269
2960
|
"""
|
|
3270
2961
|
Removes a user group from the Teams service by group ID.
|
|
3271
2962
|
|
|
@@ -3290,9 +2981,7 @@ class ClickupApp(APIApplication):
|
|
|
3290
2981
|
response.raise_for_status()
|
|
3291
2982
|
return response.json()
|
|
3292
2983
|
|
|
3293
|
-
def teams_user_groups_get_user_groups(
|
|
3294
|
-
self, team_id=None, group_ids=None
|
|
3295
|
-
) -> dict[str, Any]:
|
|
2984
|
+
async def teams_user_groups_get_user_groups(self, team_id=None, group_ids=None) -> dict[str, Any]:
|
|
3296
2985
|
"""
|
|
3297
2986
|
Retrieves user group information for a specified team and/or group IDs from the remote service.
|
|
3298
2987
|
|
|
@@ -3310,18 +2999,12 @@ class ClickupApp(APIApplication):
|
|
|
3310
2999
|
get, user-groups, team-management, api
|
|
3311
3000
|
"""
|
|
3312
3001
|
url = f"{self.base_url}/group"
|
|
3313
|
-
query_params = {
|
|
3314
|
-
k: v
|
|
3315
|
-
for k, v in [("team_id", team_id), ("group_ids", group_ids)]
|
|
3316
|
-
if v is not None
|
|
3317
|
-
}
|
|
3002
|
+
query_params = {k: v for k, v in [("team_id", team_id), ("group_ids", group_ids)] if v is not None}
|
|
3318
3003
|
response = self._get(url, params=query_params)
|
|
3319
3004
|
response.raise_for_status()
|
|
3320
3005
|
return response.json()
|
|
3321
3006
|
|
|
3322
|
-
def time_tracking_legacy_get_tracked_time(
|
|
3323
|
-
self, task_id, custom_task_ids=None, team_id=None
|
|
3324
|
-
) -> dict[str, Any]:
|
|
3007
|
+
async def time_tracking_legacy_get_tracked_time(self, task_id, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
3325
3008
|
"""
|
|
3326
3009
|
Retrieves time tracking data for a specific task.
|
|
3327
3010
|
|
|
@@ -3343,16 +3026,12 @@ class ClickupApp(APIApplication):
|
|
|
3343
3026
|
if task_id is None:
|
|
3344
3027
|
raise ValueError("Missing required parameter 'task_id'")
|
|
3345
3028
|
url = f"{self.base_url}/task/{task_id}/time"
|
|
3346
|
-
query_params = {
|
|
3347
|
-
k: v
|
|
3348
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3349
|
-
if v is not None
|
|
3350
|
-
}
|
|
3029
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3351
3030
|
response = self._get(url, params=query_params)
|
|
3352
3031
|
response.raise_for_status()
|
|
3353
3032
|
return response.json()
|
|
3354
3033
|
|
|
3355
|
-
def time_tracking_legacy_record_time_for_task(
|
|
3034
|
+
async def time_tracking_legacy_record_time_for_task(
|
|
3356
3035
|
self, task_id, start, end, time, custom_task_ids=None, team_id=None
|
|
3357
3036
|
) -> dict[str, Any]:
|
|
3358
3037
|
"""
|
|
@@ -3383,23 +3062,15 @@ class ClickupApp(APIApplication):
|
|
|
3383
3062
|
raise ValueError("Missing required parameter 'end'")
|
|
3384
3063
|
if time is None:
|
|
3385
3064
|
raise ValueError("Missing required parameter 'time'")
|
|
3386
|
-
request_body = {
|
|
3387
|
-
"start": start,
|
|
3388
|
-
"end": end,
|
|
3389
|
-
"time": time,
|
|
3390
|
-
}
|
|
3065
|
+
request_body = {"start": start, "end": end, "time": time}
|
|
3391
3066
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3392
3067
|
url = f"{self.base_url}/task/{task_id}/time"
|
|
3393
|
-
query_params = {
|
|
3394
|
-
k: v
|
|
3395
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3396
|
-
if v is not None
|
|
3397
|
-
}
|
|
3068
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3398
3069
|
response = self._post(url, data=request_body, params=query_params)
|
|
3399
3070
|
response.raise_for_status()
|
|
3400
3071
|
return response.json()
|
|
3401
3072
|
|
|
3402
|
-
def time_tracking_legacy_edit_time_tracked(
|
|
3073
|
+
async def time_tracking_legacy_edit_time_tracked(
|
|
3403
3074
|
self, task_id, interval_id, start, end, time, custom_task_ids=None, team_id=None
|
|
3404
3075
|
) -> dict[str, Any]:
|
|
3405
3076
|
"""
|
|
@@ -3434,25 +3105,15 @@ class ClickupApp(APIApplication):
|
|
|
3434
3105
|
raise ValueError("Missing required parameter 'end'")
|
|
3435
3106
|
if time is None:
|
|
3436
3107
|
raise ValueError("Missing required parameter 'time'")
|
|
3437
|
-
request_body = {
|
|
3438
|
-
"start": start,
|
|
3439
|
-
"end": end,
|
|
3440
|
-
"time": time,
|
|
3441
|
-
}
|
|
3108
|
+
request_body = {"start": start, "end": end, "time": time}
|
|
3442
3109
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3443
3110
|
url = f"{self.base_url}/task/{task_id}/time/{interval_id}"
|
|
3444
|
-
query_params = {
|
|
3445
|
-
k: v
|
|
3446
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3447
|
-
if v is not None
|
|
3448
|
-
}
|
|
3111
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3449
3112
|
response = self._put(url, data=request_body, params=query_params)
|
|
3450
3113
|
response.raise_for_status()
|
|
3451
3114
|
return response.json()
|
|
3452
3115
|
|
|
3453
|
-
def time_tracking_legacy_remove_tracked_time(
|
|
3454
|
-
self, task_id, interval_id, custom_task_ids=None, team_id=None
|
|
3455
|
-
) -> dict[str, Any]:
|
|
3116
|
+
async def time_tracking_legacy_remove_tracked_time(self, task_id, interval_id, custom_task_ids=None, team_id=None) -> dict[str, Any]:
|
|
3456
3117
|
"""
|
|
3457
3118
|
Removes tracked time from a time-tracking interval associated with a specific task.
|
|
3458
3119
|
|
|
@@ -3476,16 +3137,12 @@ class ClickupApp(APIApplication):
|
|
|
3476
3137
|
if interval_id is None:
|
|
3477
3138
|
raise ValueError("Missing required parameter 'interval_id'")
|
|
3478
3139
|
url = f"{self.base_url}/task/{task_id}/time/{interval_id}"
|
|
3479
|
-
query_params = {
|
|
3480
|
-
k: v
|
|
3481
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3482
|
-
if v is not None
|
|
3483
|
-
}
|
|
3140
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3484
3141
|
response = self._delete(url, params=query_params)
|
|
3485
3142
|
response.raise_for_status()
|
|
3486
3143
|
return response.json()
|
|
3487
3144
|
|
|
3488
|
-
def time_tracking_get_time_entries_within_date_range(
|
|
3145
|
+
async def time_tracking_get_time_entries_within_date_range(
|
|
3489
3146
|
self,
|
|
3490
3147
|
team_Id,
|
|
3491
3148
|
start_date=None,
|
|
@@ -3551,7 +3208,7 @@ class ClickupApp(APIApplication):
|
|
|
3551
3208
|
response.raise_for_status()
|
|
3552
3209
|
return response.json()
|
|
3553
3210
|
|
|
3554
|
-
def time_tracking_create_time_entry(
|
|
3211
|
+
async def time_tracking_create_time_entry(
|
|
3555
3212
|
self,
|
|
3556
3213
|
team_Id,
|
|
3557
3214
|
start,
|
|
@@ -3612,16 +3269,12 @@ class ClickupApp(APIApplication):
|
|
|
3612
3269
|
}
|
|
3613
3270
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3614
3271
|
url = f"{self.base_url}/team/{team_Id}/time_entries"
|
|
3615
|
-
query_params = {
|
|
3616
|
-
k: v
|
|
3617
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3618
|
-
if v is not None
|
|
3619
|
-
}
|
|
3272
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3620
3273
|
response = self._post(url, data=request_body, params=query_params)
|
|
3621
3274
|
response.raise_for_status()
|
|
3622
3275
|
return response.json()
|
|
3623
3276
|
|
|
3624
|
-
def time_tracking_get_single_time_entry(
|
|
3277
|
+
async def time_tracking_get_single_time_entry(
|
|
3625
3278
|
self, team_id, timer_id, include_task_=None, include_location_names=None
|
|
3626
3279
|
) -> dict[str, Any]:
|
|
3627
3280
|
"""
|
|
@@ -3648,18 +3301,13 @@ class ClickupApp(APIApplication):
|
|
|
3648
3301
|
raise ValueError("Missing required parameter 'timer_id'")
|
|
3649
3302
|
url = f"{self.base_url}/team/{team_id}/time_entries/{timer_id}"
|
|
3650
3303
|
query_params = {
|
|
3651
|
-
k: v
|
|
3652
|
-
for k, v in [
|
|
3653
|
-
("include_task_", include_task_),
|
|
3654
|
-
("include_location_names", include_location_names),
|
|
3655
|
-
]
|
|
3656
|
-
if v is not None
|
|
3304
|
+
k: v for k, v in [("include_task_", include_task_), ("include_location_names", include_location_names)] if v is not None
|
|
3657
3305
|
}
|
|
3658
3306
|
response = self._get(url, params=query_params)
|
|
3659
3307
|
response.raise_for_status()
|
|
3660
3308
|
return response.json()
|
|
3661
3309
|
|
|
3662
|
-
def time_tracking_remove_entry(self, team_id, timer_id) -> dict[str, Any]:
|
|
3310
|
+
async def time_tracking_remove_entry(self, team_id, timer_id) -> dict[str, Any]:
|
|
3663
3311
|
"""
|
|
3664
3312
|
Removes a specific time tracking entry for a team by deleting the corresponding timer record.
|
|
3665
3313
|
|
|
@@ -3687,7 +3335,7 @@ class ClickupApp(APIApplication):
|
|
|
3687
3335
|
response.raise_for_status()
|
|
3688
3336
|
return response.json()
|
|
3689
3337
|
|
|
3690
|
-
def time_tracking_update_time_entry_details(
|
|
3338
|
+
async def time_tracking_update_time_entry_details(
|
|
3691
3339
|
self,
|
|
3692
3340
|
team_id,
|
|
3693
3341
|
timer_id,
|
|
@@ -3744,16 +3392,12 @@ class ClickupApp(APIApplication):
|
|
|
3744
3392
|
}
|
|
3745
3393
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3746
3394
|
url = f"{self.base_url}/team/{team_id}/time_entries/{timer_id}"
|
|
3747
|
-
query_params = {
|
|
3748
|
-
k: v
|
|
3749
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
3750
|
-
if v is not None
|
|
3751
|
-
}
|
|
3395
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
3752
3396
|
response = self._put(url, data=request_body, params=query_params)
|
|
3753
3397
|
response.raise_for_status()
|
|
3754
3398
|
return response.json()
|
|
3755
3399
|
|
|
3756
|
-
def time_tracking_get_time_entry_history(self, team_id, timer_id) -> dict[str, Any]:
|
|
3400
|
+
async def time_tracking_get_time_entry_history(self, team_id, timer_id) -> dict[str, Any]:
|
|
3757
3401
|
"""
|
|
3758
3402
|
Retrieves the history of a specific time entry for a given team from the time tracking service.
|
|
3759
3403
|
|
|
@@ -3781,9 +3425,7 @@ class ClickupApp(APIApplication):
|
|
|
3781
3425
|
response.raise_for_status()
|
|
3782
3426
|
return response.json()
|
|
3783
3427
|
|
|
3784
|
-
def time_tracking_get_current_time_entry(
|
|
3785
|
-
self, team_id, assignee=None
|
|
3786
|
-
) -> dict[str, Any]:
|
|
3428
|
+
async def time_tracking_get_current_time_entry(self, team_id, assignee=None) -> dict[str, Any]:
|
|
3787
3429
|
"""
|
|
3788
3430
|
Retrieves the current time entry for a specified team, optionally filtered by assignee.
|
|
3789
3431
|
|
|
@@ -3809,9 +3451,7 @@ class ClickupApp(APIApplication):
|
|
|
3809
3451
|
response.raise_for_status()
|
|
3810
3452
|
return response.json()
|
|
3811
3453
|
|
|
3812
|
-
def time_tracking_remove_tags_from_time_entries(
|
|
3813
|
-
self, team_id, tags, time_entry_ids
|
|
3814
|
-
) -> dict[str, Any]:
|
|
3454
|
+
async def time_tracking_remove_tags_from_time_entries(self, team_id, tags, time_entry_ids) -> dict[str, Any]:
|
|
3815
3455
|
"""
|
|
3816
3456
|
Removes specified tags from multiple time entries for a given team.
|
|
3817
3457
|
|
|
@@ -3836,10 +3476,7 @@ class ClickupApp(APIApplication):
|
|
|
3836
3476
|
raise ValueError("Missing required parameter 'tags'")
|
|
3837
3477
|
if time_entry_ids is None:
|
|
3838
3478
|
raise ValueError("Missing required parameter 'time_entry_ids'")
|
|
3839
|
-
request_body = {
|
|
3840
|
-
"tags": tags,
|
|
3841
|
-
"time_entry_ids": time_entry_ids,
|
|
3842
|
-
}
|
|
3479
|
+
request_body = {"tags": tags, "time_entry_ids": time_entry_ids}
|
|
3843
3480
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3844
3481
|
url = f"{self.base_url}/team/{team_id}/time_entries/tags"
|
|
3845
3482
|
query_params = {}
|
|
@@ -3847,7 +3484,7 @@ class ClickupApp(APIApplication):
|
|
|
3847
3484
|
response.raise_for_status()
|
|
3848
3485
|
return response.json()
|
|
3849
3486
|
|
|
3850
|
-
def time_tracking_get_all_tags_from_time_entries(self, team_id) -> dict[str, Any]:
|
|
3487
|
+
async def time_tracking_get_all_tags_from_time_entries(self, team_id) -> dict[str, Any]:
|
|
3851
3488
|
"""
|
|
3852
3489
|
Retrieves all tags associated with time entries for a specified team.
|
|
3853
3490
|
|
|
@@ -3872,9 +3509,7 @@ class ClickupApp(APIApplication):
|
|
|
3872
3509
|
response.raise_for_status()
|
|
3873
3510
|
return response.json()
|
|
3874
3511
|
|
|
3875
|
-
def time_tracking_add_tags_from_time_entries(
|
|
3876
|
-
self, team_id, tags, time_entry_ids
|
|
3877
|
-
) -> dict[str, Any]:
|
|
3512
|
+
async def time_tracking_add_tags_from_time_entries(self, team_id, tags, time_entry_ids) -> dict[str, Any]:
|
|
3878
3513
|
"""
|
|
3879
3514
|
Adds tags to specified time entries for a team.
|
|
3880
3515
|
|
|
@@ -3899,10 +3534,7 @@ class ClickupApp(APIApplication):
|
|
|
3899
3534
|
raise ValueError("Missing required parameter 'tags'")
|
|
3900
3535
|
if time_entry_ids is None:
|
|
3901
3536
|
raise ValueError("Missing required parameter 'time_entry_ids'")
|
|
3902
|
-
request_body = {
|
|
3903
|
-
"tags": tags,
|
|
3904
|
-
"time_entry_ids": time_entry_ids,
|
|
3905
|
-
}
|
|
3537
|
+
request_body = {"tags": tags, "time_entry_ids": time_entry_ids}
|
|
3906
3538
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3907
3539
|
url = f"{self.base_url}/team/{team_id}/time_entries/tags"
|
|
3908
3540
|
query_params = {}
|
|
@@ -3910,9 +3542,7 @@ class ClickupApp(APIApplication):
|
|
|
3910
3542
|
response.raise_for_status()
|
|
3911
3543
|
return response.json()
|
|
3912
3544
|
|
|
3913
|
-
def time_tracking_change_tag_names(
|
|
3914
|
-
self, team_id, name, new_name, tag_bg, tag_fg
|
|
3915
|
-
) -> dict[str, Any]:
|
|
3545
|
+
async def time_tracking_change_tag_names(self, team_id, name, new_name, tag_bg, tag_fg) -> dict[str, Any]:
|
|
3916
3546
|
"""
|
|
3917
3547
|
Updates the name and visual properties of a time tracking tag for a specified team.
|
|
3918
3548
|
|
|
@@ -3943,12 +3573,7 @@ class ClickupApp(APIApplication):
|
|
|
3943
3573
|
raise ValueError("Missing required parameter 'tag_bg'")
|
|
3944
3574
|
if tag_fg is None:
|
|
3945
3575
|
raise ValueError("Missing required parameter 'tag_fg'")
|
|
3946
|
-
request_body = {
|
|
3947
|
-
"name": name,
|
|
3948
|
-
"new_name": new_name,
|
|
3949
|
-
"tag_bg": tag_bg,
|
|
3950
|
-
"tag_fg": tag_fg,
|
|
3951
|
-
}
|
|
3576
|
+
request_body = {"name": name, "new_name": new_name, "tag_bg": tag_bg, "tag_fg": tag_fg}
|
|
3952
3577
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
3953
3578
|
url = f"{self.base_url}/team/{team_id}/time_entries/tags"
|
|
3954
3579
|
query_params = {}
|
|
@@ -3956,15 +3581,8 @@ class ClickupApp(APIApplication):
|
|
|
3956
3581
|
response.raise_for_status()
|
|
3957
3582
|
return response.json()
|
|
3958
3583
|
|
|
3959
|
-
def time_tracking_start_timer(
|
|
3960
|
-
self,
|
|
3961
|
-
team_Id,
|
|
3962
|
-
custom_task_ids=None,
|
|
3963
|
-
team_id=None,
|
|
3964
|
-
tags=None,
|
|
3965
|
-
description=None,
|
|
3966
|
-
tid=None,
|
|
3967
|
-
billable=None,
|
|
3584
|
+
async def time_tracking_start_timer(
|
|
3585
|
+
self, team_Id, custom_task_ids=None, team_id=None, tags=None, description=None, tid=None, billable=None
|
|
3968
3586
|
) -> dict[str, Any]:
|
|
3969
3587
|
"""
|
|
3970
3588
|
Starts a new time tracking timer for a specified team and task with optional metadata such as tags, description, and billable status.
|
|
@@ -3990,24 +3608,15 @@ class ClickupApp(APIApplication):
|
|
|
3990
3608
|
"""
|
|
3991
3609
|
if team_Id is None:
|
|
3992
3610
|
raise ValueError("Missing required parameter 'team_Id'")
|
|
3993
|
-
request_body = {
|
|
3994
|
-
"tags": tags,
|
|
3995
|
-
"description": description,
|
|
3996
|
-
"tid": tid,
|
|
3997
|
-
"billable": billable,
|
|
3998
|
-
}
|
|
3611
|
+
request_body = {"tags": tags, "description": description, "tid": tid, "billable": billable}
|
|
3999
3612
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
4000
3613
|
url = f"{self.base_url}/team/{team_Id}/time_entries/start"
|
|
4001
|
-
query_params = {
|
|
4002
|
-
k: v
|
|
4003
|
-
for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)]
|
|
4004
|
-
if v is not None
|
|
4005
|
-
}
|
|
3614
|
+
query_params = {k: v for k, v in [("custom_task_ids", custom_task_ids), ("team_id", team_id)] if v is not None}
|
|
4006
3615
|
response = self._post(url, data=request_body, params=query_params)
|
|
4007
3616
|
response.raise_for_status()
|
|
4008
3617
|
return response.json()
|
|
4009
3618
|
|
|
4010
|
-
def time_tracking_stop_time_entry(self, team_id) -> dict[str, Any]:
|
|
3619
|
+
async def time_tracking_stop_time_entry(self, team_id) -> dict[str, Any]:
|
|
4011
3620
|
"""
|
|
4012
3621
|
Stops the currently active time entry for the specified team.
|
|
4013
3622
|
|
|
@@ -4032,9 +3641,7 @@ class ClickupApp(APIApplication):
|
|
|
4032
3641
|
response.raise_for_status()
|
|
4033
3642
|
return response.json()
|
|
4034
3643
|
|
|
4035
|
-
def users_invite_user_to_workspace(
|
|
4036
|
-
self, team_id, email, admin, custom_role_id=None
|
|
4037
|
-
) -> dict[str, Any]:
|
|
3644
|
+
async def users_invite_user_to_workspace(self, team_id, email, admin, custom_role_id=None) -> dict[str, Any]:
|
|
4038
3645
|
"""
|
|
4039
3646
|
Invites a user to a workspace by sending an invitation to their email address.
|
|
4040
3647
|
|
|
@@ -4060,11 +3667,7 @@ class ClickupApp(APIApplication):
|
|
|
4060
3667
|
raise ValueError("Missing required parameter 'email'")
|
|
4061
3668
|
if admin is None:
|
|
4062
3669
|
raise ValueError("Missing required parameter 'admin'")
|
|
4063
|
-
request_body = {
|
|
4064
|
-
"email": email,
|
|
4065
|
-
"admin": admin,
|
|
4066
|
-
"custom_role_id": custom_role_id,
|
|
4067
|
-
}
|
|
3670
|
+
request_body = {"email": email, "admin": admin, "custom_role_id": custom_role_id}
|
|
4068
3671
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
4069
3672
|
url = f"{self.base_url}/team/{team_id}/user"
|
|
4070
3673
|
query_params = {}
|
|
@@ -4072,7 +3675,7 @@ class ClickupApp(APIApplication):
|
|
|
4072
3675
|
response.raise_for_status()
|
|
4073
3676
|
return response.json()
|
|
4074
3677
|
|
|
4075
|
-
def users_get_user_details(self, team_id, user_id) -> dict[str, Any]:
|
|
3678
|
+
async def users_get_user_details(self, team_id, user_id) -> dict[str, Any]:
|
|
4076
3679
|
"""
|
|
4077
3680
|
Retrieves detailed information about a specific user within a given team.
|
|
4078
3681
|
|
|
@@ -4100,9 +3703,7 @@ class ClickupApp(APIApplication):
|
|
|
4100
3703
|
response.raise_for_status()
|
|
4101
3704
|
return response.json()
|
|
4102
3705
|
|
|
4103
|
-
def users_update_user_details(
|
|
4104
|
-
self, team_id, user_id, username, admin, custom_role_id
|
|
4105
|
-
) -> dict[str, Any]:
|
|
3706
|
+
async def users_update_user_details(self, team_id, user_id, username, admin, custom_role_id) -> dict[str, Any]:
|
|
4106
3707
|
"""
|
|
4107
3708
|
Updates the details of a user in a specified team.
|
|
4108
3709
|
|
|
@@ -4133,11 +3734,7 @@ class ClickupApp(APIApplication):
|
|
|
4133
3734
|
raise ValueError("Missing required parameter 'admin'")
|
|
4134
3735
|
if custom_role_id is None:
|
|
4135
3736
|
raise ValueError("Missing required parameter 'custom_role_id'")
|
|
4136
|
-
request_body = {
|
|
4137
|
-
"username": username,
|
|
4138
|
-
"admin": admin,
|
|
4139
|
-
"custom_role_id": custom_role_id,
|
|
4140
|
-
}
|
|
3737
|
+
request_body = {"username": username, "admin": admin, "custom_role_id": custom_role_id}
|
|
4141
3738
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
4142
3739
|
url = f"{self.base_url}/team/{team_id}/user/{user_id}"
|
|
4143
3740
|
query_params = {}
|
|
@@ -4145,7 +3742,7 @@ class ClickupApp(APIApplication):
|
|
|
4145
3742
|
response.raise_for_status()
|
|
4146
3743
|
return response.json()
|
|
4147
3744
|
|
|
4148
|
-
def users_deactivate_from_workspace(self, team_id, user_id) -> dict[str, Any]:
|
|
3745
|
+
async def users_deactivate_from_workspace(self, team_id, user_id) -> dict[str, Any]:
|
|
4149
3746
|
"""
|
|
4150
3747
|
Deactivates a user from the specified workspace (team) by sending a DELETE request to the API.
|
|
4151
3748
|
|
|
@@ -4173,7 +3770,7 @@ class ClickupApp(APIApplication):
|
|
|
4173
3770
|
response.raise_for_status()
|
|
4174
3771
|
return response.json()
|
|
4175
3772
|
|
|
4176
|
-
def views_get_everything_level(self, team_id) -> dict[str, Any]:
|
|
3773
|
+
async def views_get_everything_level(self, team_id) -> dict[str, Any]:
|
|
4177
3774
|
"""
|
|
4178
3775
|
Retrieves all view-level data for a specified team.
|
|
4179
3776
|
|
|
@@ -4198,18 +3795,8 @@ class ClickupApp(APIApplication):
|
|
|
4198
3795
|
response.raise_for_status()
|
|
4199
3796
|
return response.json()
|
|
4200
3797
|
|
|
4201
|
-
def views_create_workspace_view_everything_level(
|
|
4202
|
-
self,
|
|
4203
|
-
team_id,
|
|
4204
|
-
name,
|
|
4205
|
-
type,
|
|
4206
|
-
grouping,
|
|
4207
|
-
divide,
|
|
4208
|
-
sorting,
|
|
4209
|
-
filters,
|
|
4210
|
-
columns,
|
|
4211
|
-
team_sidebar,
|
|
4212
|
-
settings,
|
|
3798
|
+
async def views_create_workspace_view_everything_level(
|
|
3799
|
+
self, team_id, name, type, grouping, divide, sorting, filters, columns, team_sidebar, settings
|
|
4213
3800
|
) -> dict[str, Any]:
|
|
4214
3801
|
"""
|
|
4215
3802
|
Creates a new 'everything-level' view within a specified workspace team with custom configuration options.
|
|
@@ -4274,7 +3861,7 @@ class ClickupApp(APIApplication):
|
|
|
4274
3861
|
response.raise_for_status()
|
|
4275
3862
|
return response.json()
|
|
4276
3863
|
|
|
4277
|
-
def views_space_views_get(self, space_id) -> dict[str, Any]:
|
|
3864
|
+
async def views_space_views_get(self, space_id) -> dict[str, Any]:
|
|
4278
3865
|
"""
|
|
4279
3866
|
Retrieves the view details for a specified space by its ID.
|
|
4280
3867
|
|
|
@@ -4299,18 +3886,8 @@ class ClickupApp(APIApplication):
|
|
|
4299
3886
|
response.raise_for_status()
|
|
4300
3887
|
return response.json()
|
|
4301
3888
|
|
|
4302
|
-
def views_add_view_to_space(
|
|
4303
|
-
self,
|
|
4304
|
-
space_id,
|
|
4305
|
-
name,
|
|
4306
|
-
type,
|
|
4307
|
-
grouping,
|
|
4308
|
-
divide,
|
|
4309
|
-
sorting,
|
|
4310
|
-
filters,
|
|
4311
|
-
columns,
|
|
4312
|
-
team_sidebar,
|
|
4313
|
-
settings,
|
|
3889
|
+
async def views_add_view_to_space(
|
|
3890
|
+
self, space_id, name, type, grouping, divide, sorting, filters, columns, team_sidebar, settings
|
|
4314
3891
|
) -> dict[str, Any]:
|
|
4315
3892
|
"""
|
|
4316
3893
|
Creates a new view in the specified space with the given configuration parameters.
|
|
@@ -4375,7 +3952,7 @@ class ClickupApp(APIApplication):
|
|
|
4375
3952
|
response.raise_for_status()
|
|
4376
3953
|
return response.json()
|
|
4377
3954
|
|
|
4378
|
-
def views_folder_views_get(self, folder_id) -> dict[str, Any]:
|
|
3955
|
+
async def views_folder_views_get(self, folder_id) -> dict[str, Any]:
|
|
4379
3956
|
"""
|
|
4380
3957
|
Retrieves the views associated with a specified folder by its folder ID.
|
|
4381
3958
|
|
|
@@ -4400,18 +3977,8 @@ class ClickupApp(APIApplication):
|
|
|
4400
3977
|
response.raise_for_status()
|
|
4401
3978
|
return response.json()
|
|
4402
3979
|
|
|
4403
|
-
def views_add_view_to_folder(
|
|
4404
|
-
self,
|
|
4405
|
-
folder_id,
|
|
4406
|
-
name,
|
|
4407
|
-
type,
|
|
4408
|
-
grouping,
|
|
4409
|
-
divide,
|
|
4410
|
-
sorting,
|
|
4411
|
-
filters,
|
|
4412
|
-
columns,
|
|
4413
|
-
team_sidebar,
|
|
4414
|
-
settings,
|
|
3980
|
+
async def views_add_view_to_folder(
|
|
3981
|
+
self, folder_id, name, type, grouping, divide, sorting, filters, columns, team_sidebar, settings
|
|
4415
3982
|
) -> dict[str, Any]:
|
|
4416
3983
|
"""
|
|
4417
3984
|
Adds a new view to a specified folder with the provided configuration details.
|
|
@@ -4476,7 +4043,7 @@ class ClickupApp(APIApplication):
|
|
|
4476
4043
|
response.raise_for_status()
|
|
4477
4044
|
return response.json()
|
|
4478
4045
|
|
|
4479
|
-
def views_get_list_views(self, list_id) -> dict[str, Any]:
|
|
4046
|
+
async def views_get_list_views(self, list_id) -> dict[str, Any]:
|
|
4480
4047
|
"""
|
|
4481
4048
|
Retrieves all views associated with the specified list.
|
|
4482
4049
|
|
|
@@ -4501,18 +4068,8 @@ class ClickupApp(APIApplication):
|
|
|
4501
4068
|
response.raise_for_status()
|
|
4502
4069
|
return response.json()
|
|
4503
4070
|
|
|
4504
|
-
def views_add_view_to_list(
|
|
4505
|
-
self,
|
|
4506
|
-
list_id,
|
|
4507
|
-
name,
|
|
4508
|
-
type,
|
|
4509
|
-
grouping,
|
|
4510
|
-
divide,
|
|
4511
|
-
sorting,
|
|
4512
|
-
filters,
|
|
4513
|
-
columns,
|
|
4514
|
-
team_sidebar,
|
|
4515
|
-
settings,
|
|
4071
|
+
async def views_add_view_to_list(
|
|
4072
|
+
self, list_id, name, type, grouping, divide, sorting, filters, columns, team_sidebar, settings
|
|
4516
4073
|
) -> dict[str, Any]:
|
|
4517
4074
|
"""
|
|
4518
4075
|
Creates a new view for a specified list with the provided configuration and returns the resulting view data.
|
|
@@ -4577,7 +4134,7 @@ class ClickupApp(APIApplication):
|
|
|
4577
4134
|
response.raise_for_status()
|
|
4578
4135
|
return response.json()
|
|
4579
4136
|
|
|
4580
|
-
def views_get_view_info(self, view_id) -> dict[str, Any]:
|
|
4137
|
+
async def views_get_view_info(self, view_id) -> dict[str, Any]:
|
|
4581
4138
|
"""
|
|
4582
4139
|
Retrieves detailed information about a specific view by its identifier.
|
|
4583
4140
|
|
|
@@ -4602,19 +4159,8 @@ class ClickupApp(APIApplication):
|
|
|
4602
4159
|
response.raise_for_status()
|
|
4603
4160
|
return response.json()
|
|
4604
4161
|
|
|
4605
|
-
def views_update_view_details(
|
|
4606
|
-
self,
|
|
4607
|
-
view_id,
|
|
4608
|
-
name,
|
|
4609
|
-
type,
|
|
4610
|
-
parent,
|
|
4611
|
-
grouping,
|
|
4612
|
-
divide,
|
|
4613
|
-
sorting,
|
|
4614
|
-
filters,
|
|
4615
|
-
columns,
|
|
4616
|
-
team_sidebar,
|
|
4617
|
-
settings,
|
|
4162
|
+
async def views_update_view_details(
|
|
4163
|
+
self, view_id, name, type, parent, grouping, divide, sorting, filters, columns, team_sidebar, settings
|
|
4618
4164
|
) -> dict[str, Any]:
|
|
4619
4165
|
"""
|
|
4620
4166
|
Updates the details of an existing view with the specified parameters.
|
|
@@ -4683,7 +4229,7 @@ class ClickupApp(APIApplication):
|
|
|
4683
4229
|
response.raise_for_status()
|
|
4684
4230
|
return response.json()
|
|
4685
4231
|
|
|
4686
|
-
def views_delete_view_by_id(self, view_id) -> dict[str, Any]:
|
|
4232
|
+
async def views_delete_view_by_id(self, view_id) -> dict[str, Any]:
|
|
4687
4233
|
"""
|
|
4688
4234
|
Deletes a view by its ID.
|
|
4689
4235
|
|
|
@@ -4708,7 +4254,7 @@ class ClickupApp(APIApplication):
|
|
|
4708
4254
|
response.raise_for_status()
|
|
4709
4255
|
return response.json()
|
|
4710
4256
|
|
|
4711
|
-
def views_get_tasks_in_view(self, view_id, page) -> dict[str, Any]:
|
|
4257
|
+
async def views_get_tasks_in_view(self, view_id, page) -> dict[str, Any]:
|
|
4712
4258
|
"""
|
|
4713
4259
|
Retrieves a paginated list of tasks associated with a specific view.
|
|
4714
4260
|
|
|
@@ -4736,7 +4282,7 @@ class ClickupApp(APIApplication):
|
|
|
4736
4282
|
response.raise_for_status()
|
|
4737
4283
|
return response.json()
|
|
4738
4284
|
|
|
4739
|
-
def webhooks_workspace_get(self, team_id) -> dict[str, Any]:
|
|
4285
|
+
async def webhooks_workspace_get(self, team_id) -> dict[str, Any]:
|
|
4740
4286
|
"""
|
|
4741
4287
|
Retrieves webhook configurations for a specified workspace team.
|
|
4742
4288
|
|
|
@@ -4761,15 +4307,8 @@ class ClickupApp(APIApplication):
|
|
|
4761
4307
|
response.raise_for_status()
|
|
4762
4308
|
return response.json()
|
|
4763
4309
|
|
|
4764
|
-
def webhooks_create_webhook(
|
|
4765
|
-
self,
|
|
4766
|
-
team_id,
|
|
4767
|
-
endpoint,
|
|
4768
|
-
events,
|
|
4769
|
-
space_id=None,
|
|
4770
|
-
folder_id=None,
|
|
4771
|
-
list_id=None,
|
|
4772
|
-
task_id=None,
|
|
4310
|
+
async def webhooks_create_webhook(
|
|
4311
|
+
self, team_id, endpoint, events, space_id=None, folder_id=None, list_id=None, task_id=None
|
|
4773
4312
|
) -> dict[str, Any]:
|
|
4774
4313
|
"""
|
|
4775
4314
|
Creates a webhook for a team by sending a POST request to the specified endpoint.
|
|
@@ -4813,9 +4352,7 @@ class ClickupApp(APIApplication):
|
|
|
4813
4352
|
response.raise_for_status()
|
|
4814
4353
|
return response.json()
|
|
4815
4354
|
|
|
4816
|
-
def webhooks_update_events_to_monitor(
|
|
4817
|
-
self, webhook_id, endpoint, events, status
|
|
4818
|
-
) -> dict[str, Any]:
|
|
4355
|
+
async def webhooks_update_events_to_monitor(self, webhook_id, endpoint, events, status) -> dict[str, Any]:
|
|
4819
4356
|
"""
|
|
4820
4357
|
Updates the monitored events, endpoint, and status for a specified webhook.
|
|
4821
4358
|
|
|
@@ -4843,11 +4380,7 @@ class ClickupApp(APIApplication):
|
|
|
4843
4380
|
raise ValueError("Missing required parameter 'events'")
|
|
4844
4381
|
if status is None:
|
|
4845
4382
|
raise ValueError("Missing required parameter 'status'")
|
|
4846
|
-
request_body = {
|
|
4847
|
-
"endpoint": endpoint,
|
|
4848
|
-
"events": events,
|
|
4849
|
-
"status": status,
|
|
4850
|
-
}
|
|
4383
|
+
request_body = {"endpoint": endpoint, "events": events, "status": status}
|
|
4851
4384
|
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
4852
4385
|
url = f"{self.base_url}/webhook/{webhook_id}"
|
|
4853
4386
|
query_params = {}
|
|
@@ -4855,7 +4388,7 @@ class ClickupApp(APIApplication):
|
|
|
4855
4388
|
response.raise_for_status()
|
|
4856
4389
|
return response.json()
|
|
4857
4390
|
|
|
4858
|
-
def webhooks_remove_webhook_by_id(self, webhook_id) -> dict[str, Any]:
|
|
4391
|
+
async def webhooks_remove_webhook_by_id(self, webhook_id) -> dict[str, Any]:
|
|
4859
4392
|
"""
|
|
4860
4393
|
Removes a webhook by ID.
|
|
4861
4394
|
|