universal-mcp-applications 0.1.12__py3-none-any.whl → 0.1.14__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (54) hide show
  1. universal_mcp/applications/aws_s3/app.py +71 -71
  2. universal_mcp/applications/calendly/app.py +199 -199
  3. universal_mcp/applications/canva/app.py +189 -189
  4. universal_mcp/applications/domain_checker/app.py +31 -24
  5. universal_mcp/applications/e2b/app.py +6 -7
  6. universal_mcp/applications/elevenlabs/app.py +24 -20
  7. universal_mcp/applications/exa/app.py +25 -20
  8. universal_mcp/applications/falai/app.py +44 -41
  9. universal_mcp/applications/file_system/app.py +20 -12
  10. universal_mcp/applications/firecrawl/app.py +46 -47
  11. universal_mcp/applications/fireflies/app.py +79 -79
  12. universal_mcp/applications/fpl/app.py +83 -74
  13. universal_mcp/applications/github/README.md +0 -1028
  14. universal_mcp/applications/github/app.py +55 -50227
  15. universal_mcp/applications/google_calendar/app.py +63 -65
  16. universal_mcp/applications/google_docs/app.py +78 -78
  17. universal_mcp/applications/google_drive/app.py +361 -440
  18. universal_mcp/applications/google_gemini/app.py +34 -17
  19. universal_mcp/applications/google_mail/app.py +164 -118
  20. universal_mcp/applications/google_searchconsole/app.py +41 -47
  21. universal_mcp/applications/google_sheet/app.py +157 -164
  22. universal_mcp/applications/http_tools/app.py +16 -16
  23. universal_mcp/applications/linkedin/app.py +26 -31
  24. universal_mcp/applications/ms_teams/app.py +190 -190
  25. universal_mcp/applications/openai/app.py +55 -56
  26. universal_mcp/applications/outlook/app.py +57 -57
  27. universal_mcp/applications/perplexity/app.py +17 -17
  28. universal_mcp/applications/reddit/app.py +225 -4053
  29. universal_mcp/applications/replicate/app.py +40 -42
  30. universal_mcp/applications/resend/app.py +157 -154
  31. universal_mcp/applications/scraper/app.py +24 -24
  32. universal_mcp/applications/serpapi/app.py +18 -20
  33. universal_mcp/applications/sharepoint/app.py +46 -36
  34. universal_mcp/applications/slack/app.py +66 -66
  35. universal_mcp/applications/tavily/app.py +7 -7
  36. universal_mcp/applications/twitter/api_segments/compliance_api.py +17 -20
  37. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +35 -40
  38. universal_mcp/applications/twitter/api_segments/dm_events_api.py +18 -21
  39. universal_mcp/applications/twitter/api_segments/likes_api.py +19 -22
  40. universal_mcp/applications/twitter/api_segments/lists_api.py +59 -68
  41. universal_mcp/applications/twitter/api_segments/spaces_api.py +36 -42
  42. universal_mcp/applications/twitter/api_segments/trends_api.py +7 -8
  43. universal_mcp/applications/twitter/api_segments/tweets_api.py +159 -185
  44. universal_mcp/applications/twitter/api_segments/usage_api.py +5 -6
  45. universal_mcp/applications/twitter/api_segments/users_api.py +230 -264
  46. universal_mcp/applications/unipile/app.py +99 -105
  47. universal_mcp/applications/whatsapp/app.py +86 -82
  48. universal_mcp/applications/whatsapp_business/app.py +147 -147
  49. universal_mcp/applications/youtube/app.py +290 -290
  50. universal_mcp/applications/zenquotes/app.py +6 -6
  51. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/METADATA +2 -2
  52. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/RECORD +54 -54
  53. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/WHEEL +0 -0
  54. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/licenses/LICENSE +0 -0
@@ -24,23 +24,23 @@ class GoogleMailApp(APIApplication):
24
24
  thread_id: str | None = None,
25
25
  ) -> dict[str, Any]:
26
26
  """
27
- Sends an email using the Gmail API and returns a confirmation or error message.
28
-
27
+ Composes and immediately sends an email message via the Gmail API. It can function as a reply within an existing conversation if a `thread_id` is provided. This action is distinct from `send_draft`, which sends a previously saved draft message.
28
+
29
29
  Args:
30
30
  to: The email address of the recipient
31
31
  subject: The subject line of the email
32
32
  body: The content of the email message
33
33
  body_type: The MIME subtype for the body ("plain" or "html"). Defaults to "plain".
34
34
  thread_id: Optional thread ID to make this a reply to an existing conversation
35
-
35
+
36
36
  Returns:
37
37
  A string containing either a success confirmation message or an error description
38
-
38
+
39
39
  Raises:
40
40
  NotAuthorizedError: When Gmail API authentication is not valid or has expired
41
41
  KeyError: When required configuration keys are missing
42
42
  Exception: For any other unexpected errors during the email sending process
43
-
43
+
44
44
  Tags:
45
45
  send, email, api, communication, important, thread, reply, openWorldHint
46
46
  """
@@ -79,23 +79,23 @@ class GoogleMailApp(APIApplication):
79
79
  thread_id: str | None = None,
80
80
  ) -> dict[str, Any]:
81
81
  """
82
- Creates a draft email message in Gmail using the Gmail API and returns a confirmation status.
83
-
82
+ Saves a new draft email in Gmail with a specified recipient, subject, and body. An optional thread ID can be provided to create the draft as a reply within an existing conversation, distinguishing it from `send_email` which sends immediately.
83
+
84
84
  Args:
85
85
  to: The email address of the recipient
86
86
  subject: The subject line of the draft email
87
87
  body: The main content/message of the draft email
88
88
  body_type: The MIME subtype for the body ("plain" or "html"). Defaults to "plain".
89
89
  thread_id: Optional thread ID to make this draft a reply to an existing conversation
90
-
90
+
91
91
  Returns:
92
92
  A string containing either a success message with the draft ID or an error message describing the failure
93
-
93
+
94
94
  Raises:
95
95
  NotAuthorizedError: When the user's Gmail API authorization is invalid or expired
96
96
  KeyError: When required configuration keys are missing
97
97
  Exception: For general API errors, network issues, or other unexpected problems
98
-
98
+
99
99
  Tags:
100
100
  create, email, draft, gmail, api, important, thread, reply, html
101
101
  """
@@ -118,19 +118,19 @@ class GoogleMailApp(APIApplication):
118
118
 
119
119
  def send_draft(self, draft_id: str) -> dict[str, Any]:
120
120
  """
121
- Sends an existing draft email using the Gmail API and returns a confirmation message.
122
-
121
+ Sends a pre-existing Gmail draft identified by its unique ID. It posts to the `/drafts/send` endpoint, converting a saved draft into a sent message. This function acts on drafts created via `create_draft` and differs from `send_email`, which sends a new email in one step.
122
+
123
123
  Args:
124
124
  draft_id: The unique identifier of the Gmail draft to be sent
125
-
125
+
126
126
  Returns:
127
127
  A string containing either a success message with the sent message ID or an error message detailing the failure reason
128
-
128
+
129
129
  Raises:
130
130
  NotAuthorizedError: When the user's Gmail API authorization is invalid or expired
131
131
  KeyError: When required configuration keys are missing from the API response
132
132
  Exception: For other unexpected errors during the API request or response handling
133
-
133
+
134
134
  Tags:
135
135
  send, email, api, communication, important, draft
136
136
  """
@@ -147,20 +147,20 @@ class GoogleMailApp(APIApplication):
147
147
 
148
148
  def get_draft(self, draft_id: str, format: str = "full") -> dict[str, Any]:
149
149
  """
150
- Retrieves and formats a specific draft email from Gmail by its ID
151
-
150
+ Retrieves a specific Gmail draft by its unique ID. This function allows specifying the output format (e.g., full, raw) to control the response detail. Unlike `list_drafts`, it fetches a single, known draft rather than a collection of multiple drafts.
151
+
152
152
  Args:
153
153
  draft_id: String identifier of the draft email to retrieve
154
154
  format: Output format of the draft (options: minimal, full, raw, metadata). Defaults to 'full'
155
-
155
+
156
156
  Returns:
157
157
  A formatted string containing the draft email details (ID, recipient, subject) or an error message if retrieval fails
158
-
158
+
159
159
  Raises:
160
160
  NotAuthorizedError: When the user's Gmail authorization is invalid or expired
161
161
  KeyError: When required configuration keys or response data fields are missing
162
162
  Exception: For any other unexpected errors during draft retrieval
163
-
163
+
164
164
  Tags:
165
165
  retrieve, email, gmail, draft, api, format, important
166
166
  """
@@ -183,21 +183,21 @@ class GoogleMailApp(APIApplication):
183
183
  include_spam_trash: bool = False,
184
184
  ) -> dict[str, Any]:
185
185
  """
186
- Retrieves and formats a list of email drafts from the user's Gmail mailbox with optional filtering and pagination.
187
-
186
+ Retrieves a list of email drafts from a Gmail account, supporting filtering via search query and limiting results. Can optionally include drafts from spam and trash, returning the raw API response with draft objects and metadata, distinguishing it from `get_draft` which fetches a single, specific draft.
187
+
188
188
  Args:
189
189
  max_results: Maximum number of drafts to return (max 500, default 20)
190
190
  q: Search query string to filter drafts using Gmail search syntax (default None)
191
191
  include_spam_trash: Boolean flag to include drafts from spam and trash folders (default False)
192
-
192
+
193
193
  Returns:
194
194
  A formatted string containing the list of draft IDs and count information, or an error message if the request fails
195
-
195
+
196
196
  Raises:
197
197
  NotAuthorizedError: When the Gmail API authentication is missing or invalid
198
198
  KeyError: When required configuration keys are missing
199
199
  Exception: For general errors during API communication or data processing
200
-
200
+
201
201
  Tags:
202
202
  list, email, drafts, gmail, api, search, query, pagination, important
203
203
  """
@@ -219,18 +219,18 @@ class GoogleMailApp(APIApplication):
219
219
 
220
220
  return self._handle_response(response)
221
221
 
222
- def get_message(self, message_id: str) -> dict[str, Any]:
222
+ def get_message_details(self, message_id: str) -> dict[str, Any]:
223
223
  """
224
- Retrieves and formats a specific email message from Gmail API by its ID, including sender, recipient, date, subject, and full message body content.
225
-
224
+ Retrieves a specific email from Gmail by its ID. It parses the API response to extract and format key details—including sender, recipient, subject, and full body content—into a structured dictionary. This provides detailed data for other functions like `list_messages`.
225
+
226
226
  Args:
227
227
  message_id: The unique identifier of the Gmail message to retrieve
228
-
228
+
229
229
  Returns:
230
230
  A dictionary containing the cleaned message details (serializable as JSON)
231
-
231
+
232
232
  Tags:
233
- retrieve, email, format, api, gmail, message, important, body, content
233
+ retrieve, email, format, api, gmail, message, important, body, content, attachments
234
234
  """
235
235
  url = f"{self.base_api_url}/messages/{message_id}"
236
236
  response = self._get(url)
@@ -251,6 +251,9 @@ class GoogleMailApp(APIApplication):
251
251
  else:
252
252
  body_content = "No content available"
253
253
 
254
+ # Extract attachments
255
+ attachments = self._extract_attachments(raw_data.get("payload", {}))
256
+
254
257
  return {
255
258
  "message_id": message_id,
256
259
  "from_addr": headers.get("From", "Unknown sender"),
@@ -259,8 +262,11 @@ class GoogleMailApp(APIApplication):
259
262
  "subject": headers.get("Subject", "No subject"),
260
263
  "body_content": body_content,
261
264
  "thread_id": raw_data.get("threadId"),
265
+ "attachments": attachments,
262
266
  }
263
267
 
268
+
269
+
264
270
  def _extract_email_body(self, payload):
265
271
  """
266
272
  Extracts the email body content from the Gmail API payload.
@@ -315,6 +321,46 @@ class GoogleMailApp(APIApplication):
315
321
  logger.error(f"Error extracting email body: {str(e)}")
316
322
  return ""
317
323
 
324
+ def _extract_attachments(self, payload):
325
+ """
326
+ Extracts attachment information from the Gmail API payload.
327
+
328
+ Args:
329
+ payload: The payload section from Gmail API response
330
+
331
+ Returns:
332
+ list: List of attachment dictionaries with attachment_id, filename, mime_type, and size
333
+ """
334
+ attachments = []
335
+
336
+ try:
337
+ if payload.get("filename") and payload.get("body", {}).get("attachmentId"):
338
+ attachments.append({
339
+ "attachment_id": payload["body"]["attachmentId"],
340
+ "filename": payload["filename"],
341
+ "mime_type": payload.get("mimeType", ""),
342
+ "size": payload.get("body", {}).get("size", 0)
343
+ })
344
+
345
+ parts = payload.get("parts", [])
346
+ for part in parts:
347
+ if part.get("filename") and part.get("body", {}).get("attachmentId"):
348
+ attachments.append({
349
+ "attachment_id": part["body"]["attachmentId"],
350
+ "filename": part["filename"],
351
+ "mime_type": part.get("mimeType", ""),
352
+ "size": part.get("body", {}).get("size", 0)
353
+ })
354
+
355
+ elif part.get("parts"):
356
+ nested_attachments = self._extract_attachments(part)
357
+ attachments.extend(nested_attachments)
358
+
359
+ except Exception as e:
360
+ logger.error(f"Error extracting attachments: {str(e)}")
361
+
362
+ return attachments
363
+
318
364
  def _decode_base64(self, data):
319
365
  """
320
366
  Decodes base64 URL-safe encoded data from Gmail API.
@@ -341,8 +387,8 @@ class GoogleMailApp(APIApplication):
341
387
  page_token: str | None = None,
342
388
  ) -> dict[str, Any]:
343
389
  """
344
- Retrieves and formats a list of messages from the user's Gmail mailbox with optional filtering and pagination support.
345
-
390
+ Fetches a paginated list of detailed email messages from Gmail using optional search queries. It concurrently retrieves the full content (sender, subject, body) for each message, returning the results and a token to access the next page. This differs from `get_message` which fetches only one.
391
+
346
392
  Args:
347
393
  max_results: Maximum number of messages to return (max 500, default 20)
348
394
  q: Search query string to filter messages using Gmail search syntax.
@@ -363,15 +409,15 @@ class GoogleMailApp(APIApplication):
363
409
  - 'has:attachment' for emails with attachments
364
410
  - 'is:unread' for unread emails
365
411
  include_spam_trash: Boolean flag to include messages from spam and trash folders (default False)
366
-
412
+
367
413
  Returns:
368
414
  A dictionary containing the list of messages and next page token for pagination
369
-
415
+
370
416
  Raises:
371
417
  NotAuthorizedError: When the Gmail API authentication is invalid or missing
372
418
  KeyError: When required configuration keys are missing
373
419
  Exception: For general API errors, network issues, or other unexpected problems
374
-
420
+
375
421
  Tags:
376
422
  list, messages, gmail, search, query, pagination, important
377
423
  """
@@ -423,21 +469,21 @@ class GoogleMailApp(APIApplication):
423
469
  "next_page_token": data.get("nextPageToken"),
424
470
  }
425
471
 
426
- def get_thread(self, thread_id: str) -> dict[str, Any]:
472
+ def get_email_thread(self, thread_id: str) -> dict[str, Any]:
427
473
  """
428
- Retrieves a specific thread and all its messages from Gmail API.
429
-
474
+ Retrieves a complete email conversation from the Gmail API by its thread ID. It returns a dictionary containing all messages and metadata for the entire thread, providing the full context of the conversation.
475
+
430
476
  Args:
431
477
  thread_id: The unique identifier of the Gmail thread to retrieve
432
-
478
+
433
479
  Returns:
434
480
  A dictionary containing the thread details and all messages in the thread
435
-
481
+
436
482
  Raises:
437
483
  NotAuthorizedError: When Gmail API authentication is invalid or missing
438
484
  KeyError: When required configuration keys are missing
439
485
  Exception: For general errors during API communication or data processing
440
-
486
+
441
487
  Tags:
442
488
  retrieve, email, thread, gmail, api, conversation, important, readOnlyHint, openWorldHint
443
489
  """
@@ -448,18 +494,18 @@ class GoogleMailApp(APIApplication):
448
494
 
449
495
  def list_labels(self) -> dict[str, Any]:
450
496
  """
451
- Retrieves and formats a list of all labels (both system and user-created) from the user's Gmail account, organizing them by type and sorting them alphabetically.
452
-
497
+ Fetches a complete list of all available labels from the user's Gmail account via the API. This includes both system-defined (e.g., INBOX) and user-created labels, returning details such as their names, IDs, and types after standard response handling.
498
+
453
499
  Args:
454
500
  None: This method takes no arguments
455
-
501
+
456
502
  Returns:
457
503
  A formatted string containing a list of Gmail labels categorized by type (system and user), with their IDs, or an error message if the operation fails.
458
-
504
+
459
505
  Raises:
460
506
  NotAuthorizedError: Raised when the user's Gmail authorization is invalid or missing
461
507
  Exception: Raised when any other unexpected error occurs during the API request or data processing
462
-
508
+
463
509
  Tags:
464
510
  list, gmail, labels, fetch, organize, important, management
465
511
  """
@@ -474,18 +520,18 @@ class GoogleMailApp(APIApplication):
474
520
 
475
521
  def create_label(self, name: str) -> dict[str, Any]:
476
522
  """
477
- Creates a new Gmail label with specified visibility settings and returns creation status details.
478
-
523
+ Creates a new Gmail label with a specified name. The function hardcodes the label's visibility settings to ensure it appears in both the label and message lists. It returns the API response, which includes the new label's details upon success or an error message on failure.
524
+
479
525
  Args:
480
526
  name: The display name of the label to create
481
-
527
+
482
528
  Returns:
483
529
  A formatted string containing the creation status, including the new label's name and ID if successful, or an error message if the creation fails
484
-
530
+
485
531
  Raises:
486
532
  NotAuthorizedError: Raised when the request lacks proper Gmail API authorization
487
533
  Exception: Raised for any other unexpected errors during label creation
488
-
534
+
489
535
  Tags:
490
536
  create, label, gmail, management, important
491
537
  """
@@ -507,18 +553,18 @@ class GoogleMailApp(APIApplication):
507
553
 
508
554
  def get_profile(self) -> dict[str, Any]:
509
555
  """
510
- Retrieves and formats the user's Gmail profile information including email address, message count, thread count, and history ID.
511
-
556
+ Retrieves the authenticated user's Gmail profile from the API. The profile includes the user's email address, total message and thread counts, and the mailbox's history ID, offering a high-level summary of the account's state.
557
+
512
558
  Args:
513
559
  None: This method takes no arguments besides self
514
-
560
+
515
561
  Returns:
516
562
  A formatted string containing the user's Gmail profile information or an error message if the request fails
517
-
563
+
518
564
  Raises:
519
565
  NotAuthorizedError: Raised when the user's credentials are invalid or authorization is required
520
566
  Exception: Raised for any other unexpected errors during the API request or data processing
521
-
567
+
522
568
  Tags:
523
569
  fetch, profile, gmail, user-info, api-request, important
524
570
  """
@@ -530,7 +576,7 @@ class GoogleMailApp(APIApplication):
530
576
  response = self._get(url)
531
577
  return self._handle_response(response)
532
578
 
533
- def update_drafts(
579
+ def update_draft(
534
580
  self,
535
581
  userId,
536
582
  id,
@@ -548,8 +594,8 @@ class GoogleMailApp(APIApplication):
548
594
  message=None,
549
595
  ) -> dict[str, Any]:
550
596
  """
551
- Updates an existing Gmail draft with new message content and metadata.
552
-
597
+ Updates a specific Gmail draft by its ID, replacing its existing content and metadata. The new message body and headers are provided in a message object, allowing for complete modification of the draft before it is sent.
598
+
553
599
  Args:
554
600
  userId (string): userId
555
601
  id (string): id
@@ -612,10 +658,10 @@ class GoogleMailApp(APIApplication):
612
658
  }
613
659
  }
614
660
  ```
615
-
661
+
616
662
  Returns:
617
663
  dict[str, Any]: Successful response
618
-
664
+
619
665
  Tags:
620
666
  Drafts
621
667
  """
@@ -650,7 +696,7 @@ class GoogleMailApp(APIApplication):
650
696
  response.raise_for_status()
651
697
  return response.json()
652
698
 
653
- def trash_messsages(
699
+ def trash_message(
654
700
  self,
655
701
  userId,
656
702
  id,
@@ -667,8 +713,8 @@ class GoogleMailApp(APIApplication):
667
713
  xgafv=None,
668
714
  ) -> dict[str, Any]:
669
715
  """
670
- Moves a message to the trash folder (acts like delete functionality).
671
-
716
+ Moves a specific Gmail message to the trash folder using its unique ID. This action serves as a soft delete and is the direct counterpart to `untrash_messages`, which restores a trashed message. It requires both a user ID and message ID to execute.
717
+
672
718
  Args:
673
719
  userId (string): userId
674
720
  id (string): id
@@ -683,10 +729,10 @@ class GoogleMailApp(APIApplication):
683
729
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
684
730
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
685
731
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
686
-
732
+
687
733
  Returns:
688
734
  dict[str, Any]: Successful response
689
-
735
+
690
736
  Tags:
691
737
  Messages, important
692
738
  """
@@ -716,7 +762,7 @@ class GoogleMailApp(APIApplication):
716
762
  response.raise_for_status()
717
763
  return response.json()
718
764
 
719
- def untrash_messages(
765
+ def untrash_message(
720
766
  self,
721
767
  userId,
722
768
  id,
@@ -733,8 +779,8 @@ class GoogleMailApp(APIApplication):
733
779
  xgafv=None,
734
780
  ) -> dict[str, Any]:
735
781
  """
736
- Moves a message out of the trash, effectively undoing a trash action and restoring the message to the user's mailbox.
737
-
782
+ Restores a specific Gmail message from the trash to the user's mailbox, identified by its unique ID. It serves as the direct counterpart to `trash_messsages`, undoing the deletion action and making the message visible again in the user's account via an API call.
783
+
738
784
  Args:
739
785
  userId (string): userId
740
786
  id (string): id
@@ -749,10 +795,10 @@ class GoogleMailApp(APIApplication):
749
795
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
750
796
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
751
797
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
752
-
798
+
753
799
  Returns:
754
800
  dict[str, Any]: Successful response
755
-
801
+
756
802
  Tags:
757
803
  Messages
758
804
  """
@@ -782,7 +828,7 @@ class GoogleMailApp(APIApplication):
782
828
  response.raise_for_status()
783
829
  return response.json()
784
830
 
785
- def get_attachments(
831
+ def get_attachment(
786
832
  self,
787
833
  userId,
788
834
  messageId,
@@ -800,8 +846,8 @@ class GoogleMailApp(APIApplication):
800
846
  xgafv=None,
801
847
  ) -> dict[str, Any]:
802
848
  """
803
- Retrieves the actual file content of a specific attachment from a Gmail message
804
-
849
+ Retrieves a specific email attachment's content by its unique ID from a specified message. It requires the user, message, and attachment IDs to make a targeted API request, returning the attachment's size and base64-encoded data.
850
+
805
851
  Args:
806
852
  userId (string): userId
807
853
  messageId (string): messageId
@@ -817,10 +863,10 @@ class GoogleMailApp(APIApplication):
817
863
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
818
864
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
819
865
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
820
-
866
+
821
867
  Returns:
822
868
  dict[str, Any]: Successful response
823
-
869
+
824
870
  Tags:
825
871
  Messages
826
872
  """
@@ -852,7 +898,7 @@ class GoogleMailApp(APIApplication):
852
898
  response.raise_for_status()
853
899
  return response.json()
854
900
 
855
- def update_labels(
901
+ def update_label(
856
902
  self,
857
903
  userId,
858
904
  id,
@@ -878,8 +924,8 @@ class GoogleMailApp(APIApplication):
878
924
  type=None,
879
925
  ) -> dict[str, Any]:
880
926
  """
881
- Update an existing Gmail label's properties such as name, color, or visibility.
882
-
927
+ Updates an existing Gmail label's properties, such as its name, color, or visibility, using its unique ID. It sends a PUT request to the Gmail API and returns the full, updated label resource as a dictionary upon successful modification.
928
+
883
929
  Args:
884
930
  userId (string): userId
885
931
  id (string): id
@@ -921,10 +967,10 @@ class GoogleMailApp(APIApplication):
921
967
  "type": "system"
922
968
  }
923
969
  ```
924
-
970
+
925
971
  Returns:
926
972
  dict[str, Any]: Successful response
927
-
973
+
928
974
  Tags:
929
975
  Labels
930
976
  """
@@ -967,7 +1013,7 @@ class GoogleMailApp(APIApplication):
967
1013
  response.raise_for_status()
968
1014
  return response.json()
969
1015
 
970
- def delete_labels(
1016
+ def delete_label(
971
1017
  self,
972
1018
  userId,
973
1019
  id,
@@ -984,8 +1030,8 @@ class GoogleMailApp(APIApplication):
984
1030
  xgafv=None,
985
1031
  ) -> Any:
986
1032
  """
987
- Delete a Gmail label by its ID.
988
-
1033
+ Permanently removes a specific Gmail label from a user's account, identified by its unique ID. This function performs an irreversible deletion via an API call, requiring both the `userId` and the label `id`. It is the destructive counterpart to `create_label` and `update_labels`.
1034
+
989
1035
  Args:
990
1036
  userId (string): userId
991
1037
  id (string): id
@@ -1000,10 +1046,10 @@ class GoogleMailApp(APIApplication):
1000
1046
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
1001
1047
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
1002
1048
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
1003
-
1049
+
1004
1050
  Returns:
1005
1051
  Any: No Content
1006
-
1052
+
1007
1053
  Tags:
1008
1054
  Labels
1009
1055
  """
@@ -1033,7 +1079,7 @@ class GoogleMailApp(APIApplication):
1033
1079
  response.raise_for_status()
1034
1080
  return response.json()
1035
1081
 
1036
- def get_filters(
1082
+ def get_filter(
1037
1083
  self,
1038
1084
  userId,
1039
1085
  id,
@@ -1050,8 +1096,8 @@ class GoogleMailApp(APIApplication):
1050
1096
  xgafv=None,
1051
1097
  ) -> dict[str, Any]:
1052
1098
  """
1053
- Fetch Gmail filter configuration and rules by filter ID
1054
-
1099
+ Fetches the configuration for a single Gmail filter using its unique ID. It returns the specific criteria (e.g., from, subject) and the automated actions (e.g., add label, archive) defined for that filter.
1100
+
1055
1101
  Args:
1056
1102
  userId (string): userId
1057
1103
  id (string): id
@@ -1066,10 +1112,10 @@ class GoogleMailApp(APIApplication):
1066
1112
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
1067
1113
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
1068
1114
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
1069
-
1115
+
1070
1116
  Returns:
1071
1117
  dict[str, Any]: Successful response
1072
-
1118
+
1073
1119
  Tags:
1074
1120
  settings, Filters
1075
1121
  """
@@ -1099,7 +1145,7 @@ class GoogleMailApp(APIApplication):
1099
1145
  response.raise_for_status()
1100
1146
  return response.json()
1101
1147
 
1102
- def delete_filters(
1148
+ def delete_filter(
1103
1149
  self,
1104
1150
  userId,
1105
1151
  id,
@@ -1116,8 +1162,8 @@ class GoogleMailApp(APIApplication):
1116
1162
  xgafv=None,
1117
1163
  ) -> Any:
1118
1164
  """
1119
- Remove Gmail filter and its associated automation rules
1120
-
1165
+ Deletes a specific Gmail filter using its unique ID for a specified user account. This action permanently removes the filter and its associated automation rules, such as applying labels or forwarding messages, from the user's Gmail settings.
1166
+
1121
1167
  Args:
1122
1168
  userId (string): userId
1123
1169
  id (string): id
@@ -1132,10 +1178,10 @@ class GoogleMailApp(APIApplication):
1132
1178
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
1133
1179
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
1134
1180
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
1135
-
1181
+
1136
1182
  Returns:
1137
1183
  Any: No Content
1138
-
1184
+
1139
1185
  Tags:
1140
1186
  settings, Filters
1141
1187
  """
@@ -1165,7 +1211,7 @@ class GoogleMailApp(APIApplication):
1165
1211
  response.raise_for_status()
1166
1212
  return response.json()
1167
1213
 
1168
- def list_filters(
1214
+ def get_all_filters(
1169
1215
  self,
1170
1216
  userId,
1171
1217
  access_token=None,
@@ -1181,8 +1227,8 @@ class GoogleMailApp(APIApplication):
1181
1227
  xgafv=None,
1182
1228
  ) -> dict[str, Any]:
1183
1229
  """
1184
- Retrieve all Gmail filters and their automation settings
1185
-
1230
+ Retrieves all configured email filters for a specified Gmail user ID. It fetches a list of a user's filters, including their matching criteria and automated actions, providing a comprehensive overview of their email organization rules via the Gmail API.
1231
+
1186
1232
  Args:
1187
1233
  userId (string): userId
1188
1234
  access_token (string): OAuth access token. Example: '{{access_token}}'.
@@ -1196,10 +1242,10 @@ class GoogleMailApp(APIApplication):
1196
1242
  upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
1197
1243
  uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
1198
1244
  xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
1199
-
1245
+
1200
1246
  Returns:
1201
1247
  dict[str, Any]: Successful response
1202
-
1248
+
1203
1249
  Tags:
1204
1250
  settings, Filters
1205
1251
  """
@@ -1227,7 +1273,7 @@ class GoogleMailApp(APIApplication):
1227
1273
  response.raise_for_status()
1228
1274
  return response.json()
1229
1275
 
1230
- def create_filters(
1276
+ def create_filter(
1231
1277
  self,
1232
1278
  userId,
1233
1279
  access_token=None,
@@ -1246,8 +1292,8 @@ class GoogleMailApp(APIApplication):
1246
1292
  id=None,
1247
1293
  ) -> dict[str, Any]:
1248
1294
  """
1249
- Set up new Gmail filter with criteria and automated actions
1250
-
1295
+ Sets up a new automated email filter in Gmail. It requires defining matching criteria (like sender or subject) and an action (like adding a label) to apply to emails that meet those criteria for a specified user account.
1296
+
1251
1297
  Args:
1252
1298
  userId (string): userId
1253
1299
  access_token (string): OAuth access token. Example: '{{access_token}}'.
@@ -1292,10 +1338,10 @@ class GoogleMailApp(APIApplication):
1292
1338
  "id": "in aute anim"
1293
1339
  }
1294
1340
  ```
1295
-
1341
+
1296
1342
  Returns:
1297
1343
  dict[str, Any]: Successful response
1298
-
1344
+
1299
1345
  Tags:
1300
1346
  settings, Filters
1301
1347
  """
@@ -1336,20 +1382,20 @@ class GoogleMailApp(APIApplication):
1336
1382
  self.send_draft,
1337
1383
  self.get_draft,
1338
1384
  self.list_drafts,
1339
- self.get_message,
1385
+ self.get_message_details,
1340
1386
  self.list_messages,
1341
1387
  self.list_labels,
1342
1388
  self.create_label,
1343
1389
  self.get_profile,
1344
1390
  # Auto Generated from openapi spec
1345
- self.update_drafts,
1346
- self.trash_messsages,
1347
- self.untrash_messages,
1348
- self.get_attachments,
1349
- self.update_labels,
1350
- self.delete_labels,
1351
- self.get_filters,
1352
- self.delete_filters,
1353
- self.list_filters,
1354
- self.create_filters,
1391
+ self.update_draft,
1392
+ self.trash_message,
1393
+ self.untrash_message,
1394
+ self.get_attachment,
1395
+ self.update_label,
1396
+ self.delete_label,
1397
+ self.get_filter,
1398
+ self.delete_filter,
1399
+ self.get_all_filters,
1400
+ self.create_filter,
1355
1401
  ]