arcade-mcp/toolkits/microsoft/arcade_microsoft/outlook_mail/enums.py
2025-05-16 13:08:29 -08:00

65 lines
2.3 KiB
Python

from enum import Enum
class WellKnownFolderNames(str, Enum):
"""Well-known folder names that are created for users by default.
Instead of using the ID of these folders, you can use the well-known folder names.
For a list of all well-known folder names, see: https://learn.microsoft.com/en-us/graph/api/resources/mailfolder?view=graph-rest-1.0
"""
DELETED_ITEMS = "deleteditems"
DRAFTS = "drafts"
INBOX = "inbox"
JUNK_EMAIL = "junkemail"
SENT_ITEMS = "sentitems"
STARRED = "starred"
TODO = "tasks"
class ReplyType(str, Enum):
"""The type of reply to send to an email."""
REPLY = "reply"
REPLY_ALL = "reply_all"
class EmailFilterProperty(str, Enum):
"""The property to filter the emails by."""
# Basic properties
SUBJECT = "subject"
CONVERSATION_ID = "conversationId"
RECEIVED_DATE_TIME = "receivedDateTime"
SENDER = "sender/emailAddress/address"
class FilterOperator(str, Enum):
"""The operator to use for the filter.
For a full list of possible operators, see: https://learn.microsoft.com/en-us/graph/filter-query-parameter?tabs=http#operators-and-functions-supported-in-filter-expressions
"""
# Equality operators
EQUAL = "eq" # example: $filter=conversationId eq 'hello'
NOT_EQUAL = "ne" # example: $filter=subject ne 'hello'
# Relational operators
GREATER_THAN = "gt" # example: $filter=receivedDateTime gt 2024-01-01
GREATER_THAN_OR_EQUAL_TO = "ge" # example: $filter=receivedDateTime ge 2024-01-01
LESS_THAN = "lt" # example: $filter=receivedDateTime lt 2024-01-01
LESS_THAN_OR_EQUAL_TO = "le" # example: $filter=receivedDateTime le 2024-01-01
# Functions
STARTS_WITH = "startsWith" # example: $filter=startsWith(subject, 'hello')
ENDS_WITH = "endsWith" # example: $filter=endsWith(subject, 'hello')
CONTAINS = "contains" # example: $filter=contains(subject, 'hello')
def is_operator(self) -> bool:
"""Check if the operator is a comparison operator."""
operators = [self.EQUAL, self.NOT_EQUAL]
return self in operators
def is_function(self) -> bool:
"""Check if the operator is a function."""
functions = [self.STARTS_WITH, self.ENDS_WITH, self.CONTAINS]
return self in functions