# coding=utf-8
r"""
This code was generated by
\ / _ _ _| _ _
| (_)\/(_)(_|\/| |(/_ v1.0.0
/ /
"""
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
[docs]class NumberList(ListResource):
def __init__(self, version):
"""
Initialize the NumberList
:param Version version: Version that contains the resource
:returns: twilio.rest.pricing.v1.voice.number.NumberList
:rtype: twilio.rest.pricing.v1.voice.number.NumberList
"""
super(NumberList, self).__init__(version)
# Path Solution
self._solution = {}
[docs] def get(self, number):
"""
Constructs a NumberContext
:param number: The phone number to fetch
:returns: twilio.rest.pricing.v1.voice.number.NumberContext
:rtype: twilio.rest.pricing.v1.voice.number.NumberContext
"""
return NumberContext(self._version, number=number, )
def __call__(self, number):
"""
Constructs a NumberContext
:param number: The phone number to fetch
:returns: twilio.rest.pricing.v1.voice.number.NumberContext
:rtype: twilio.rest.pricing.v1.voice.number.NumberContext
"""
return NumberContext(self._version, number=number, )
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
return '<Twilio.Pricing.V1.NumberList>'
[docs]class NumberPage(Page):
def __init__(self, version, response, solution):
"""
Initialize the NumberPage
:param Version version: Version that contains the resource
:param Response response: Response from the API
:returns: twilio.rest.pricing.v1.voice.number.NumberPage
:rtype: twilio.rest.pricing.v1.voice.number.NumberPage
"""
super(NumberPage, self).__init__(version, response)
# Path Solution
self._solution = solution
[docs] def get_instance(self, payload):
"""
Build an instance of NumberInstance
:param dict payload: Payload response from the API
:returns: twilio.rest.pricing.v1.voice.number.NumberInstance
:rtype: twilio.rest.pricing.v1.voice.number.NumberInstance
"""
return NumberInstance(self._version, payload, )
def __repr__(self):
"""
Provide a friendly representation
:returns: Machine friendly representation
:rtype: str
"""
return '<Twilio.Pricing.V1.NumberPage>'
[docs]class NumberContext(InstanceContext):
def __init__(self, version, number):
"""
Initialize the NumberContext
:param Version version: Version that contains the resource
:param number: The phone number to fetch
:returns: twilio.rest.pricing.v1.voice.number.NumberContext
:rtype: twilio.rest.pricing.v1.voice.number.NumberContext
"""
super(NumberContext, self).__init__(version)
# Path Solution
self._solution = {'number': number, }
self._uri = '/Voice/Numbers/{number}'.format(**self._solution)
[docs] def fetch(self):
"""
Fetch the NumberInstance
:returns: The fetched NumberInstance
:rtype: twilio.rest.pricing.v1.voice.number.NumberInstance
"""
payload = self._version.fetch(method='GET', uri=self._uri, )
return NumberInstance(self._version, payload, number=self._solution['number'], )
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.Pricing.V1.NumberContext {}>'.format(context)
[docs]class NumberInstance(InstanceResource):
def __init__(self, version, payload, number=None):
"""
Initialize the NumberInstance
:returns: twilio.rest.pricing.v1.voice.number.NumberInstance
:rtype: twilio.rest.pricing.v1.voice.number.NumberInstance
"""
super(NumberInstance, self).__init__(version)
# Marshaled Properties
self._properties = {
'number': payload.get('number'),
'country': payload.get('country'),
'iso_country': payload.get('iso_country'),
'outbound_call_price': payload.get('outbound_call_price'),
'inbound_call_price': payload.get('inbound_call_price'),
'price_unit': payload.get('price_unit'),
'url': payload.get('url'),
}
# Context
self._context = None
self._solution = {'number': number or self._properties['number'], }
@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: NumberContext for this NumberInstance
:rtype: twilio.rest.pricing.v1.voice.number.NumberContext
"""
if self._context is None:
self._context = NumberContext(self._version, number=self._solution['number'], )
return self._context
@property
def number(self):
"""
:returns: The phone number
:rtype: unicode
"""
return self._properties['number']
@property
def country(self):
"""
:returns: The name of the country
:rtype: unicode
"""
return self._properties['country']
@property
def iso_country(self):
"""
:returns: The ISO country code
:rtype: unicode
"""
return self._properties['iso_country']
@property
def outbound_call_price(self):
"""
:returns: The OutboundCallPrice record
:rtype: unicode
"""
return self._properties['outbound_call_price']
@property
def inbound_call_price(self):
"""
:returns: The InboundCallPrice record
:rtype: unicode
"""
return self._properties['inbound_call_price']
@property
def price_unit(self):
"""
:returns: The currency in which prices are measured, in ISO 4127 format (e.g. usd, eur, jpy)
:rtype: unicode
"""
return self._properties['price_unit']
@property
def url(self):
"""
:returns: The absolute URL of the resource
:rtype: unicode
"""
return self._properties['url']
[docs] def fetch(self):
"""
Fetch the NumberInstance
:returns: The fetched NumberInstance
:rtype: twilio.rest.pricing.v1.voice.number.NumberInstance
"""
return self._proxy.fetch()
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.Pricing.V1.NumberInstance {}>'.format(context)