Source code for twilio.rest.notify.v1.service.notification

# coding=utf-8
r"""
This code was generated by
\ / _    _  _|   _  _
 | (_)\/(_)(_|\/| |(/_  v1.0.0
      /       /
"""

from twilio.base import deserialize
from twilio.base import serialize
from twilio.base import values
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.page import Page


[docs]class NotificationList(ListResource): """ PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution. """ def __init__(self, version, service_sid): """ Initialize the NotificationList :param Version version: Version that contains the resource :param service_sid: The SID of the Service that the resource is associated with :returns: twilio.rest.notify.v1.service.notification.NotificationList :rtype: twilio.rest.notify.v1.service.notification.NotificationList """ super(NotificationList, self).__init__(version) # Path Solution self._solution = {'service_sid': service_sid, } self._uri = '/Services/{service_sid}/Notifications'.format(**self._solution)
[docs] def create(self, body=values.unset, priority=values.unset, ttl=values.unset, title=values.unset, sound=values.unset, action=values.unset, data=values.unset, apn=values.unset, gcm=values.unset, sms=values.unset, facebook_messenger=values.unset, fcm=values.unset, segment=values.unset, alexa=values.unset, to_binding=values.unset, delivery_callback_url=values.unset, identity=values.unset, tag=values.unset): """ Create the NotificationInstance :param unicode body: The notification body text :param NotificationInstance.Priority priority: The priority of the notification :param unicode ttl: How long, in seconds, the notification is valid :param unicode title: The notification title :param unicode sound: The name of the sound to be played for the notification :param unicode action: The actions to display for the notification :param dict data: The custom key-value pairs of the notification's payload :param dict apn: The APNS-specific payload that overrides corresponding attributes in a generic payload for APNS Bindings :param dict gcm: The GCM-specific payload that overrides corresponding attributes in generic payload for GCM Bindings :param dict sms: The SMS-specific payload that overrides corresponding attributes in generic payload for SMS Bindings :param dict facebook_messenger: Deprecated :param dict fcm: The FCM-specific payload that overrides corresponding attributes in generic payload for FCM Bindings :param list[unicode] segment: A Segment to notify :param dict alexa: Deprecated :param list[unicode] to_binding: The destination address specified as a JSON string :param unicode delivery_callback_url: URL to send webhooks :param list[unicode] identity: The `identity` value that identifies the new resource's User :param list[unicode] tag: A tag that selects the Bindings to notify :returns: The created NotificationInstance :rtype: twilio.rest.notify.v1.service.notification.NotificationInstance """ data = values.of({ 'Identity': serialize.map(identity, lambda e: e), 'Tag': serialize.map(tag, lambda e: e), 'Body': body, 'Priority': priority, 'Ttl': ttl, 'Title': title, 'Sound': sound, 'Action': action, 'Data': serialize.object(data), 'Apn': serialize.object(apn), 'Gcm': serialize.object(gcm), 'Sms': serialize.object(sms), 'FacebookMessenger': serialize.object(facebook_messenger), 'Fcm': serialize.object(fcm), 'Segment': serialize.map(segment, lambda e: e), 'Alexa': serialize.object(alexa), 'ToBinding': serialize.map(to_binding, lambda e: e), 'DeliveryCallbackUrl': delivery_callback_url, }) payload = self._version.create(method='POST', uri=self._uri, data=data, ) return NotificationInstance(self._version, payload, service_sid=self._solution['service_sid'], )
def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Notify.V1.NotificationList>'
[docs]class NotificationPage(Page): """ PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution. """ def __init__(self, version, response, solution): """ Initialize the NotificationPage :param Version version: Version that contains the resource :param Response response: Response from the API :param service_sid: The SID of the Service that the resource is associated with :returns: twilio.rest.notify.v1.service.notification.NotificationPage :rtype: twilio.rest.notify.v1.service.notification.NotificationPage """ super(NotificationPage, self).__init__(version, response) # Path Solution self._solution = solution
[docs] def get_instance(self, payload): """ Build an instance of NotificationInstance :param dict payload: Payload response from the API :returns: twilio.rest.notify.v1.service.notification.NotificationInstance :rtype: twilio.rest.notify.v1.service.notification.NotificationInstance """ return NotificationInstance(self._version, payload, service_sid=self._solution['service_sid'], )
def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Notify.V1.NotificationPage>'
[docs]class NotificationInstance(InstanceResource): """ PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution. """
[docs] class Priority(object): HIGH = "high" LOW = "low"
def __init__(self, version, payload, service_sid): """ Initialize the NotificationInstance :returns: twilio.rest.notify.v1.service.notification.NotificationInstance :rtype: twilio.rest.notify.v1.service.notification.NotificationInstance """ super(NotificationInstance, self).__init__(version) # Marshaled Properties self._properties = { 'sid': payload.get('sid'), 'account_sid': payload.get('account_sid'), 'service_sid': payload.get('service_sid'), 'date_created': deserialize.iso8601_datetime(payload.get('date_created')), 'identities': payload.get('identities'), 'tags': payload.get('tags'), 'segments': payload.get('segments'), 'priority': payload.get('priority'), 'ttl': deserialize.integer(payload.get('ttl')), 'title': payload.get('title'), 'body': payload.get('body'), 'sound': payload.get('sound'), 'action': payload.get('action'), 'data': payload.get('data'), 'apn': payload.get('apn'), 'gcm': payload.get('gcm'), 'fcm': payload.get('fcm'), 'sms': payload.get('sms'), 'facebook_messenger': payload.get('facebook_messenger'), 'alexa': payload.get('alexa'), } # Context self._context = None self._solution = {'service_sid': service_sid, } @property def sid(self): """ :returns: The unique string that identifies the resource :rtype: unicode """ return self._properties['sid'] @property def account_sid(self): """ :returns: The SID of the Account that created the resource :rtype: unicode """ return self._properties['account_sid'] @property def service_sid(self): """ :returns: The SID of the Service that the resource is associated with :rtype: unicode """ return self._properties['service_sid'] @property def date_created(self): """ :returns: The RFC 2822 date and time in GMT when the resource was created :rtype: datetime """ return self._properties['date_created'] @property def identities(self): """ :returns: The list of identity values of the Users to notify :rtype: list[unicode] """ return self._properties['identities'] @property def tags(self): """ :returns: The tags that select the Bindings to notify :rtype: list[unicode] """ return self._properties['tags'] @property def segments(self): """ :returns: The list of Segments to notify :rtype: list[unicode] """ return self._properties['segments'] @property def priority(self): """ :returns: The priority of the notification :rtype: NotificationInstance.Priority """ return self._properties['priority'] @property def ttl(self): """ :returns: How long, in seconds, the notification is valid :rtype: unicode """ return self._properties['ttl'] @property def title(self): """ :returns: The notification title :rtype: unicode """ return self._properties['title'] @property def body(self): """ :returns: The notification body text :rtype: unicode """ return self._properties['body'] @property def sound(self): """ :returns: The name of the sound to be played for the notification :rtype: unicode """ return self._properties['sound'] @property def action(self): """ :returns: The actions to display for the notification :rtype: unicode """ return self._properties['action'] @property def data(self): """ :returns: The custom key-value pairs of the notification's payload :rtype: dict """ return self._properties['data'] @property def apn(self): """ :returns: The APNS-specific payload that overrides corresponding attributes in a generic payload for APNS Bindings :rtype: dict """ return self._properties['apn'] @property def gcm(self): """ :returns: The GCM-specific payload that overrides corresponding attributes in generic payload for GCM Bindings :rtype: dict """ return self._properties['gcm'] @property def fcm(self): """ :returns: The FCM-specific payload that overrides corresponding attributes in generic payload for FCM Bindings :rtype: dict """ return self._properties['fcm'] @property def sms(self): """ :returns: The SMS-specific payload that overrides corresponding attributes in generic payload for SMS Bindings :rtype: dict """ return self._properties['sms'] @property def facebook_messenger(self): """ :returns: Deprecated :rtype: dict """ return self._properties['facebook_messenger'] @property def alexa(self): """ :returns: Deprecated :rtype: dict """ return self._properties['alexa'] def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Notify.V1.NotificationInstance>'