Source code for twilio.rest.events.v1.schema
# coding=utf-8
r"""
This code was generated by
\ / _ _ _| _ _
| (_)\/(_)(_|\/| |(/_ v1.0.0
/ /
"""
from twilio.base import deserialize
from twilio.base import values
from twilio.base.instance_context import InstanceContext
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.page import Page
from twilio.rest.events.v1.schema.version import SchemaVersionList
[docs]class SchemaList(ListResource):
""" PLEASE NOTE that this class contains beta products that are subject to
change. Use them with caution. """
def __init__(self, version):
"""
Initialize the SchemaList
:param Version version: Version that contains the resource
:returns: twilio.rest.events.v1.schema.SchemaList
:rtype: twilio.rest.events.v1.schema.SchemaList
"""
super(SchemaList, self).__init__(version)
# Path Solution
self._solution = {}
[docs] def get(self, id):
"""
Constructs a SchemaContext
:param id: The unique identifier of the schema.
:returns: twilio.rest.events.v1.schema.SchemaContext
:rtype: twilio.rest.events.v1.schema.SchemaContext
"""
return SchemaContext(self._version, id=id, )
def __call__(self, id):
"""
Constructs a SchemaContext
:param id: The unique identifier of the schema.
:returns: twilio.rest.events.v1.schema.SchemaContext
:rtype: twilio.rest.events.v1.schema.SchemaContext
"""
return SchemaContext(self._version, id=id, )
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
return '<Twilio.Events.V1.SchemaList>'
[docs]class SchemaPage(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 SchemaPage
:param Version version: Version that contains the resource
:param Response response: Response from the API
:returns: twilio.rest.events.v1.schema.SchemaPage
:rtype: twilio.rest.events.v1.schema.SchemaPage
"""
super(SchemaPage, self).__init__(version, response)
# Path Solution
self._solution = solution
[docs] def get_instance(self, payload):
"""
Build an instance of SchemaInstance
:param dict payload: Payload response from the API
:returns: twilio.rest.events.v1.schema.SchemaInstance
:rtype: twilio.rest.events.v1.schema.SchemaInstance
"""
return SchemaInstance(self._version, payload, )
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
return '<Twilio.Events.V1.SchemaPage>'
[docs]class SchemaContext(InstanceContext):
""" PLEASE NOTE that this class contains beta products that are subject to
change. Use them with caution. """
def __init__(self, version, id):
"""
Initialize the SchemaContext
:param Version version: Version that contains the resource
:param id: The unique identifier of the schema.
:returns: twilio.rest.events.v1.schema.SchemaContext
:rtype: twilio.rest.events.v1.schema.SchemaContext
"""
super(SchemaContext, self).__init__(version)
# Path Solution
self._solution = {'id': id, }
self._uri = '/Schemas/{id}'.format(**self._solution)
# Dependents
self._versions = None
[docs] def fetch(self):
"""
Fetch the SchemaInstance
:returns: The fetched SchemaInstance
:rtype: twilio.rest.events.v1.schema.SchemaInstance
"""
payload = self._version.fetch(method='GET', uri=self._uri, )
return SchemaInstance(self._version, payload, id=self._solution['id'], )
@property
def versions(self):
"""
Access the versions
:returns: twilio.rest.events.v1.schema.version.SchemaVersionList
:rtype: twilio.rest.events.v1.schema.version.SchemaVersionList
"""
if self._versions is None:
self._versions = SchemaVersionList(self._version, id=self._solution['id'], )
return self._versions
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
context = ' '.join('{}={}'.format(k, v) for k, v in self._solution.items())
return '<Twilio.Events.V1.SchemaContext {}>'.format(context)
[docs]class SchemaInstance(InstanceResource):
""" PLEASE NOTE that this class contains beta products that are subject to
change. Use them with caution. """
def __init__(self, version, payload, id=None):
"""
Initialize the SchemaInstance
:returns: twilio.rest.events.v1.schema.SchemaInstance
:rtype: twilio.rest.events.v1.schema.SchemaInstance
"""
super(SchemaInstance, self).__init__(version)
# Marshaled Properties
self._properties = {
'id': payload.get('id'),
'url': payload.get('url'),
'links': payload.get('links'),
'latest_version_date_created': deserialize.iso8601_datetime(payload.get('latest_version_date_created')),
'latest_version': deserialize.integer(payload.get('latest_version')),
}
# Context
self._context = None
self._solution = {'id': id or self._properties['id'], }
@property
def _proxy(self):
"""
Generate an instance context for the instance, the context is capable of
performing various actions. All instance actions are proxied to the context
:returns: SchemaContext for this SchemaInstance
:rtype: twilio.rest.events.v1.schema.SchemaContext
"""
if self._context is None:
self._context = SchemaContext(self._version, id=self._solution['id'], )
return self._context
@property
def id(self):
"""
:returns: Schema Identifier.
:rtype: unicode
"""
return self._properties['id']
@property
def url(self):
"""
:returns: The URL of this resource.
:rtype: unicode
"""
return self._properties['url']
@property
def links(self):
"""
:returns: Nested resource URLs.
:rtype: unicode
"""
return self._properties['links']
@property
def latest_version_date_created(self):
"""
:returns: The date that the latest schema version was created.
:rtype: datetime
"""
return self._properties['latest_version_date_created']
@property
def latest_version(self):
"""
:returns: Latest schema version.
:rtype: unicode
"""
return self._properties['latest_version']
[docs] def fetch(self):
"""
Fetch the SchemaInstance
:returns: The fetched SchemaInstance
:rtype: twilio.rest.events.v1.schema.SchemaInstance
"""
return self._proxy.fetch()
@property
def versions(self):
"""
Access the versions
:returns: twilio.rest.events.v1.schema.version.SchemaVersionList
:rtype: twilio.rest.events.v1.schema.version.SchemaVersionList
"""
return self._proxy.versions
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
context = ' '.join('{}={}'.format(k, v) for k, v in self._solution.items())
return '<Twilio.Events.V1.SchemaInstance {}>'.format(context)