# Path: messagebird/base_list.py
# class BaseList(Base):
# 
#     def __init__(self, item_type):
#         """When setting items, they are instantiated as objects of type item_type."""
#         self.limit = None
#         self.offset = None
#         self.count = None
#         self.totalCount = None
#         self._links = None
#         self._items = None
# 
#         self.itemType = item_type
# 
#     @property
#     def links(self):
#         return self._links
# 
#     @links.setter
#     def links(self, value):
#         self._links = Links().load(value)
# 
#     @property
#     def items(self):
#         return self._items
# 
#     @items.setter
#     def items(self, value):
#         """Create typed objects from the dicts."""
#         items = []
#         if value is not None:
#             for item in value:
#                 items.append(self.itemType().load(item))
# 
#         self._items = items
# 
#     def __str__(self):
#         items_count = 0 if self.items is None else len(self.items)
#         return "%s with %d items.\n" % (str(self.__class__), items_count)
# 
# Path: messagebird/call_data.py
# class CallData(Base):
# 
#     def __init__(self):
#         self.id = None
#         self.status = None
#         self.source = None
#         self.destination = None
#         self._createdAt = None
#         self._updatedAt = None
#         self._endedAt = None
#         self._webhook = None
# 
#     @property
#     def updatedAt(self):
#         return self._updatedAt
# 
#     @updatedAt.setter
#     def updatedAt(self, value):
#         self._updatedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def createdAt(self):
#         return self._createdAt
# 
#     @createdAt.setter
#     def createdAt(self, value):
#         self._createdAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def endedAt(self):
#         return self._endedAt
# 
#     @endedAt.setter
#     def endedAt(self, value):
#         self._endedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def webhook(self):
#         return self._webhook
# 
#     @webhook.setter
#     def webhook(self, value):
#         self._webhook = Webhook.load(value)
# 
#     def __str__(self):
#         return "\n".join([
#             'id                 : %s' % self.id,
#             'status             : %s' % self.status,
#             'source             : %s' % self.source,
#             'destination        : %s' % self.destination,
#             'webhook            : %s' % self.webhook,
#             'updatedAt          : %s' % self.updatedAt,
#             'createdAt          : %s' % self.createdAt,
#             'endedAt            : %s' % self.endedAt,
#         ])


from messagebird.base_list import BaseList
from messagebird.call_data import CallData


class CallList(BaseList):
    def __init__(self):
        # We're expecting items of type CallData
        super(CallList, self).__init__(CallData)
        self.perPage = None
        self.currentPage = None
        self.pageCount = None
        self._pagination = None

    @property
    def data(self):
        return self.items

    @property
    def pagination(self):

# Path: messagebird/base_list.py
# class BaseList(Base):
# 
#     def __init__(self, item_type):
#         """When setting items, they are instantiated as objects of type item_type."""
#         self.limit = None
#         self.offset = None
#         self.count = None
#         self.totalCount = None
#         self._links = None
#         self._items = None
# 
#         self.itemType = item_type
# 
#     @property
#     def links(self):
#         return self._links
# 
#     @links.setter
#     def links(self, value):
#         self._links = Links().load(value)
# 
#     @property
#     def items(self):
#         return self._items
# 
#     @items.setter
#     def items(self, value):
#         """Create typed objects from the dicts."""
#         items = []
#         if value is not None:
#             for item in value:
#                 items.append(self.itemType().load(item))
# 
#         self._items = items
# 
#     def __str__(self):
#         items_count = 0 if self.items is None else len(self.items)
#         return "%s with %d items.\n" % (str(self.__class__), items_count)
# 
# Path: messagebird/call_data.py
# class CallData(Base):
# 
#     def __init__(self):
#         self.id = None
#         self.status = None
#         self.source = None
#         self.destination = None
#         self._createdAt = None
#         self._updatedAt = None
#         self._endedAt = None
#         self._webhook = None
# 
#     @property
#     def updatedAt(self):
#         return self._updatedAt
# 
#     @updatedAt.setter
#     def updatedAt(self, value):
#         self._updatedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def createdAt(self):
#         return self._createdAt
# 
#     @createdAt.setter
#     def createdAt(self, value):
#         self._createdAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def endedAt(self):
#         return self._endedAt
# 
#     @endedAt.setter
#     def endedAt(self, value):
#         self._endedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
# 
#     @property
#     def webhook(self):
#         return self._webhook
# 
#     @webhook.setter
#     def webhook(self, value):
#         self._webhook = Webhook.load(value)
# 
#     def __str__(self):
#         return "\n".join([
#             'id                 : %s' % self.id,
#             'status             : %s' % self.status,
#             'source             : %s' % self.source,
#             'destination        : %s' % self.destination,
#             'webhook            : %s' % self.webhook,
#             'updatedAt          : %s' % self.updatedAt,
#             'createdAt          : %s' % self.createdAt,
#             'endedAt            : %s' % self.endedAt,
#         ])


# Path: messagebird/call_list.py
from messagebird.base_list import BaseList
from messagebird.call_data import CallData



class CallList(BaseList):
    def __init__(self):
        # We're expecting items of type CallData
        super(CallList, self).__init__(CallData)
        self.perPage = None
        self.currentPage = None
        self.pageCount = None
        self._pagination = None

    @property
    def data(self):
        return self.items

    @property
    def pagination(self):

        return {