aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py')
-rw-r--r--.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py b/.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py
new file mode 100644
index 00000000..62db8372
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/sendgrid/helpers/mail/asm.py
@@ -0,0 +1,80 @@
+from .group_id import GroupId
+from .groups_to_display import GroupsToDisplay
+
+
+class Asm(object):
+ """An object specifying unsubscribe behavior."""
+
+ def __init__(self, group_id, groups_to_display=None):
+ """Create an ASM with the given group_id and groups_to_display.
+
+ :param group_id: ID of an unsubscribe group
+ :type group_id: GroupId, int, required
+ :param groups_to_display: Unsubscribe groups to display
+ :type groups_to_display: GroupsToDisplay, list(int), optional
+ """
+ self._group_id = None
+ self._groups_to_display = None
+
+ if group_id is not None:
+ self.group_id = group_id
+
+ if groups_to_display is not None:
+ self.groups_to_display = groups_to_display
+
+ @property
+ def group_id(self):
+ """The unsubscribe group to associate with this email.
+
+ :rtype: GroupId
+ """
+ return self._group_id
+
+ @group_id.setter
+ def group_id(self, value):
+ """The unsubscribe group to associate with this email.
+
+ :param value: ID of an unsubscribe group
+ :type value: GroupId, int, required
+ """
+ if isinstance(value, GroupId):
+ self._group_id = value
+ else:
+ self._group_id = GroupId(value)
+
+ @property
+ def groups_to_display(self):
+ """The unsubscribe groups that you would like to be displayed on the
+ unsubscribe preferences page. Max of 25 groups.
+
+ :rtype: GroupsToDisplay
+ """
+ return self._groups_to_display
+
+ @groups_to_display.setter
+ def groups_to_display(self, value):
+ """An array containing the unsubscribe groups that you would like to
+ be displayed on the unsubscribe preferences page. Max of 25 groups.
+
+ :param groups_to_display: Unsubscribe groups to display
+ :type groups_to_display: GroupsToDisplay, list(int), optional
+ """
+ if isinstance(value, GroupsToDisplay):
+ self._groups_to_display = value
+ else:
+ self._groups_to_display = GroupsToDisplay(value)
+
+ def get(self):
+ """
+ Get a JSON-ready representation of this ASM object.
+
+ :returns: This ASM object, ready for use in a request body.
+ :rtype: dict
+ """
+ asm = {}
+ if self.group_id is not None:
+ asm["group_id"] = self.group_id.get()
+
+ if self.groups_to_display is not None:
+ asm["groups_to_display"] = self.groups_to_display.get()
+ return asm