Source code for twilio.jwt.access_token.grants
from twilio.jwt.access_token import AccessTokenGrant
import warnings
import functools
[docs]def deprecated(func):
'''This is a decorator which can be used to mark functions
as deprecated. It will result in a warning being emitted
when the function is used.'''
@functools.wraps(func)
def new_func(*args, **kwargs):
warnings.simplefilter('always', DeprecationWarning)
warnings.warn("Call to deprecated function {}.".format(func.__name__), category=DeprecationWarning, stacklevel=2)
warnings.simplefilter('default', DeprecationWarning)
return func(*args, **kwargs)
return new_func
[docs]class ChatGrant(AccessTokenGrant):
"""Grant to access Twilio Chat"""
def __init__(self, service_sid=None, endpoint_id=None,
deployment_role_sid=None, push_credential_sid=None):
self.service_sid = service_sid
self.endpoint_id = endpoint_id
self.deployment_role_sid = deployment_role_sid
self.push_credential_sid = push_credential_sid
@property
def key(self):
return "chat"
[docs] def to_payload(self):
grant = {}
if self.service_sid:
grant['service_sid'] = self.service_sid
if self.endpoint_id:
grant['endpoint_id'] = self.endpoint_id
if self.deployment_role_sid:
grant['deployment_role_sid'] = self.deployment_role_sid
if self.push_credential_sid:
grant['push_credential_sid'] = self.push_credential_sid
return grant
[docs]class IpMessagingGrant(AccessTokenGrant):
"""Grant to access Twilio IP Messaging"""
@deprecated
def __init__(self, service_sid=None, endpoint_id=None,
deployment_role_sid=None, push_credential_sid=None):
self.service_sid = service_sid
self.endpoint_id = endpoint_id
self.deployment_role_sid = deployment_role_sid
self.push_credential_sid = push_credential_sid
@property
def key(self):
return "ip_messaging"
[docs] def to_payload(self):
grant = {}
if self.service_sid:
grant['service_sid'] = self.service_sid
if self.endpoint_id:
grant['endpoint_id'] = self.endpoint_id
if self.deployment_role_sid:
grant['deployment_role_sid'] = self.deployment_role_sid
if self.push_credential_sid:
grant['push_credential_sid'] = self.push_credential_sid
return grant
[docs]class SyncGrant(AccessTokenGrant):
"""Grant to access Twilio Sync"""
def __init__(self, service_sid=None, endpoint_id=None):
self.service_sid = service_sid
self.endpoint_id = endpoint_id
@property
def key(self):
return "data_sync"
[docs] def to_payload(self):
grant = {}
if self.service_sid:
grant['service_sid'] = self.service_sid
if self.endpoint_id:
grant['endpoint_id'] = self.endpoint_id
return grant
[docs]class VoiceGrant(AccessTokenGrant):
"""Grant to access Twilio Programmable Voice"""
def __init__(self,
incoming_allow=None,
outgoing_application_sid=None,
outgoing_application_params=None,
push_credential_sid=None,
endpoint_id=None):
self.incoming_allow = incoming_allow
""" :type : bool """
self.outgoing_application_sid = outgoing_application_sid
""" :type : str """
self.outgoing_application_params = outgoing_application_params
""" :type : dict """
self.push_credential_sid = push_credential_sid
""" :type : str """
self.endpoint_id = endpoint_id
""" :type : str """
@property
def key(self):
return "voice"
[docs] def to_payload(self):
grant = {}
if self.incoming_allow is True:
grant['incoming'] = {}
grant['incoming']['allow'] = True
if self.outgoing_application_sid:
grant['outgoing'] = {}
grant['outgoing']['application_sid'] = self.outgoing_application_sid
if self.outgoing_application_params:
grant['outgoing']['params'] = self.outgoing_application_params
if self.push_credential_sid:
grant['push_credential_sid'] = self.push_credential_sid
if self.endpoint_id:
grant['endpoint_id'] = self.endpoint_id
return grant
[docs]class ConversationsGrant(AccessTokenGrant):
"""Grant to access Twilio Conversations"""
@deprecated
def __init__(self, configuration_profile_sid=None):
self.configuration_profile_sid = configuration_profile_sid
@property
def key(self):
return "rtc"
[docs] def to_payload(self):
grant = {}
if self.configuration_profile_sid:
grant['configuration_profile_sid'] = self.configuration_profile_sid
return grant
[docs]class VideoGrant(AccessTokenGrant):
"""Grant to access Twilio Video"""
def __init__(self, room=None):
self.room = room
@property
def key(self):
return "video"
[docs] def to_payload(self):
grant = {}
if self.room:
grant['room'] = self.room
return grant
[docs]class TaskRouterGrant(AccessTokenGrant):
"""Grant to access Twilio TaskRouter"""
def __init__(self, workspace_sid=None, worker_sid=None, role=None):
self.workspace_sid = workspace_sid
self.worker_sid = worker_sid
self.role = role
@property
def key(self):
return "task_router"
[docs] def to_payload(self):
grant = {}
if self.workspace_sid:
grant['workspace_sid'] = self.workspace_sid
if self.worker_sid:
grant['worker_sid'] = self.worker_sid
if self.role:
grant['role'] = self.role
return grant
[docs]class PlaybackGrant(AccessTokenGrant):
"""Grant to access Twilio Live stream"""
def __init__(self, grant=None):
"""Initialize a PlaybackGrant with a grant retrieved from the Twilio API."""
self.grant = grant
@property
def key(self):
"""Return the grant's key."""
return "player"
[docs] def to_payload(self):
"""Return the grant."""
return self.grant