Source code for twilio.rest.insights.v1.call_summaries

# 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_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.page import Page


[docs]class CallSummariesList(ListResource): def __init__(self, version): """ Initialize the CallSummariesList :param Version version: Version that contains the resource :returns: twilio.rest.insights.v1.call_summaries.CallSummariesList :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesList """ super(CallSummariesList, self).__init__(version) # Path Solution self._solution = {} self._uri = '/Voice/Summaries'.format(**self._solution)
[docs] def stream(self, from_=values.unset, to=values.unset, from_carrier=values.unset, to_carrier=values.unset, from_country_code=values.unset, to_country_code=values.unset, branded=values.unset, verified_caller=values.unset, has_tag=values.unset, start_time=values.unset, end_time=values.unset, call_type=values.unset, call_state=values.unset, direction=values.unset, processing_state=values.unset, sort_by=values.unset, subaccount=values.unset, abnormal_session=values.unset, limit=None, page_size=None): """ Streams CallSummariesInstance records from the API as a generator stream. This operation lazily loads records as efficiently as possible until the limit is reached. The results are returned as a generator, so this operation is memory efficient. :param unicode from_: The from :param unicode to: The to :param unicode from_carrier: The from_carrier :param unicode to_carrier: The to_carrier :param unicode from_country_code: The from_country_code :param unicode to_country_code: The to_country_code :param bool branded: The branded :param bool verified_caller: The verified_caller :param bool has_tag: The has_tag :param unicode start_time: The start_time :param unicode end_time: The end_time :param unicode call_type: The call_type :param unicode call_state: The call_state :param unicode direction: The direction :param CallSummariesInstance.ProcessingStateRequest processing_state: The processing_state :param CallSummariesInstance.SortBy sort_by: The sort_by :param unicode subaccount: The subaccount :param bool abnormal_session: The abnormal_session :param int limit: Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit :param int page_size: Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000) :returns: Generator that will yield up to limit results :rtype: list[twilio.rest.insights.v1.call_summaries.CallSummariesInstance] """ limits = self._version.read_limits(limit, page_size) page = self.page( from_=from_, to=to, from_carrier=from_carrier, to_carrier=to_carrier, from_country_code=from_country_code, to_country_code=to_country_code, branded=branded, verified_caller=verified_caller, has_tag=has_tag, start_time=start_time, end_time=end_time, call_type=call_type, call_state=call_state, direction=direction, processing_state=processing_state, sort_by=sort_by, subaccount=subaccount, abnormal_session=abnormal_session, page_size=limits['page_size'], ) return self._version.stream(page, limits['limit'])
[docs] def list(self, from_=values.unset, to=values.unset, from_carrier=values.unset, to_carrier=values.unset, from_country_code=values.unset, to_country_code=values.unset, branded=values.unset, verified_caller=values.unset, has_tag=values.unset, start_time=values.unset, end_time=values.unset, call_type=values.unset, call_state=values.unset, direction=values.unset, processing_state=values.unset, sort_by=values.unset, subaccount=values.unset, abnormal_session=values.unset, limit=None, page_size=None): """ Lists CallSummariesInstance records from the API as a list. Unlike stream(), this operation is eager and will load `limit` records into memory before returning. :param unicode from_: The from :param unicode to: The to :param unicode from_carrier: The from_carrier :param unicode to_carrier: The to_carrier :param unicode from_country_code: The from_country_code :param unicode to_country_code: The to_country_code :param bool branded: The branded :param bool verified_caller: The verified_caller :param bool has_tag: The has_tag :param unicode start_time: The start_time :param unicode end_time: The end_time :param unicode call_type: The call_type :param unicode call_state: The call_state :param unicode direction: The direction :param CallSummariesInstance.ProcessingStateRequest processing_state: The processing_state :param CallSummariesInstance.SortBy sort_by: The sort_by :param unicode subaccount: The subaccount :param bool abnormal_session: The abnormal_session :param int limit: Upper limit for the number of records to return. list() guarantees never to return more than limit. Default is no limit :param int page_size: Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, list() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000) :returns: Generator that will yield up to limit results :rtype: list[twilio.rest.insights.v1.call_summaries.CallSummariesInstance] """ return list(self.stream( from_=from_, to=to, from_carrier=from_carrier, to_carrier=to_carrier, from_country_code=from_country_code, to_country_code=to_country_code, branded=branded, verified_caller=verified_caller, has_tag=has_tag, start_time=start_time, end_time=end_time, call_type=call_type, call_state=call_state, direction=direction, processing_state=processing_state, sort_by=sort_by, subaccount=subaccount, abnormal_session=abnormal_session, limit=limit, page_size=page_size, ))
[docs] def page(self, from_=values.unset, to=values.unset, from_carrier=values.unset, to_carrier=values.unset, from_country_code=values.unset, to_country_code=values.unset, branded=values.unset, verified_caller=values.unset, has_tag=values.unset, start_time=values.unset, end_time=values.unset, call_type=values.unset, call_state=values.unset, direction=values.unset, processing_state=values.unset, sort_by=values.unset, subaccount=values.unset, abnormal_session=values.unset, page_token=values.unset, page_number=values.unset, page_size=values.unset): """ Retrieve a single page of CallSummariesInstance records from the API. Request is executed immediately :param unicode from_: The from :param unicode to: The to :param unicode from_carrier: The from_carrier :param unicode to_carrier: The to_carrier :param unicode from_country_code: The from_country_code :param unicode to_country_code: The to_country_code :param bool branded: The branded :param bool verified_caller: The verified_caller :param bool has_tag: The has_tag :param unicode start_time: The start_time :param unicode end_time: The end_time :param unicode call_type: The call_type :param unicode call_state: The call_state :param unicode direction: The direction :param CallSummariesInstance.ProcessingStateRequest processing_state: The processing_state :param CallSummariesInstance.SortBy sort_by: The sort_by :param unicode subaccount: The subaccount :param bool abnormal_session: The abnormal_session :param str page_token: PageToken provided by the API :param int page_number: Page Number, this value is simply for client state :param int page_size: Number of records to return, defaults to 50 :returns: Page of CallSummariesInstance :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesPage """ data = values.of({ 'From': from_, 'To': to, 'FromCarrier': from_carrier, 'ToCarrier': to_carrier, 'FromCountryCode': from_country_code, 'ToCountryCode': to_country_code, 'Branded': branded, 'VerifiedCaller': verified_caller, 'HasTag': has_tag, 'StartTime': start_time, 'EndTime': end_time, 'CallType': call_type, 'CallState': call_state, 'Direction': direction, 'ProcessingState': processing_state, 'SortBy': sort_by, 'Subaccount': subaccount, 'AbnormalSession': abnormal_session, 'PageToken': page_token, 'Page': page_number, 'PageSize': page_size, }) response = self._version.page(method='GET', uri=self._uri, params=data, ) return CallSummariesPage(self._version, response, self._solution)
[docs] def get_page(self, target_url): """ Retrieve a specific page of CallSummariesInstance records from the API. Request is executed immediately :param str target_url: API-generated URL for the requested results page :returns: Page of CallSummariesInstance :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesPage """ response = self._version.domain.twilio.request( 'GET', target_url, ) return CallSummariesPage(self._version, response, self._solution)
def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Insights.V1.CallSummariesList>'
[docs]class CallSummariesPage(Page): def __init__(self, version, response, solution): """ Initialize the CallSummariesPage :param Version version: Version that contains the resource :param Response response: Response from the API :returns: twilio.rest.insights.v1.call_summaries.CallSummariesPage :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesPage """ super(CallSummariesPage, self).__init__(version, response) # Path Solution self._solution = solution
[docs] def get_instance(self, payload): """ Build an instance of CallSummariesInstance :param dict payload: Payload response from the API :returns: twilio.rest.insights.v1.call_summaries.CallSummariesInstance :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesInstance """ return CallSummariesInstance(self._version, payload, )
def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Insights.V1.CallSummariesPage>'
[docs]class CallSummariesInstance(InstanceResource):
[docs] class CallType(object): CARRIER = "carrier" SIP = "sip" TRUNKING = "trunking" CLIENT = "client"
[docs] class CallState(object): RINGING = "ringing" COMPLETED = "completed" BUSY = "busy" FAIL = "fail" NOANSWER = "noanswer" CANCELED = "canceled" ANSWERED = "answered" UNDIALED = "undialed"
[docs] class ProcessingState(object): COMPLETE = "complete" PARTIAL = "partial"
[docs] class CallDirection(object): OUTBOUND_API = "outbound_api" OUTBOUND_DIAL = "outbound_dial" INBOUND = "inbound" TRUNKING_ORIGINATING = "trunking_originating" TRUNKING_TERMINATING = "trunking_terminating"
[docs] class SortBy(object): START_TIME = "start_time" END_TIME = "end_time"
[docs] class ProcessingStateRequest(object): COMPLETED = "completed" STARTED = "started" PARTIAL = "partial" ALL = "all"
def __init__(self, version, payload): """ Initialize the CallSummariesInstance :returns: twilio.rest.insights.v1.call_summaries.CallSummariesInstance :rtype: twilio.rest.insights.v1.call_summaries.CallSummariesInstance """ super(CallSummariesInstance, self).__init__(version) # Marshaled Properties self._properties = { 'account_sid': payload.get('account_sid'), 'call_sid': payload.get('call_sid'), 'call_type': payload.get('call_type'), 'call_state': payload.get('call_state'), 'processing_state': payload.get('processing_state'), 'created_time': deserialize.iso8601_datetime(payload.get('created_time')), 'start_time': deserialize.iso8601_datetime(payload.get('start_time')), 'end_time': deserialize.iso8601_datetime(payload.get('end_time')), 'duration': deserialize.integer(payload.get('duration')), 'connect_duration': deserialize.integer(payload.get('connect_duration')), 'from_': payload.get('from'), 'to': payload.get('to'), 'carrier_edge': payload.get('carrier_edge'), 'client_edge': payload.get('client_edge'), 'sdk_edge': payload.get('sdk_edge'), 'sip_edge': payload.get('sip_edge'), 'tags': payload.get('tags'), 'url': payload.get('url'), 'attributes': payload.get('attributes'), 'properties': payload.get('properties'), 'trust': payload.get('trust'), } # Context self._context = None self._solution = {} @property def account_sid(self): """ :returns: The account_sid :rtype: unicode """ return self._properties['account_sid'] @property def call_sid(self): """ :returns: The call_sid :rtype: unicode """ return self._properties['call_sid'] @property def call_type(self): """ :returns: The call_type :rtype: CallSummariesInstance.CallType """ return self._properties['call_type'] @property def call_state(self): """ :returns: The call_state :rtype: CallSummariesInstance.CallState """ return self._properties['call_state'] @property def processing_state(self): """ :returns: The processing_state :rtype: CallSummariesInstance.ProcessingState """ return self._properties['processing_state'] @property def created_time(self): """ :returns: The created_time :rtype: datetime """ return self._properties['created_time'] @property def start_time(self): """ :returns: The start_time :rtype: datetime """ return self._properties['start_time'] @property def end_time(self): """ :returns: The end_time :rtype: datetime """ return self._properties['end_time'] @property def duration(self): """ :returns: The duration :rtype: unicode """ return self._properties['duration'] @property def connect_duration(self): """ :returns: The connect_duration :rtype: unicode """ return self._properties['connect_duration'] @property def from_(self): """ :returns: The from :rtype: dict """ return self._properties['from_'] @property def to(self): """ :returns: The to :rtype: dict """ return self._properties['to'] @property def carrier_edge(self): """ :returns: The carrier_edge :rtype: dict """ return self._properties['carrier_edge'] @property def client_edge(self): """ :returns: The client_edge :rtype: dict """ return self._properties['client_edge'] @property def sdk_edge(self): """ :returns: The sdk_edge :rtype: dict """ return self._properties['sdk_edge'] @property def sip_edge(self): """ :returns: The sip_edge :rtype: dict """ return self._properties['sip_edge'] @property def tags(self): """ :returns: The tags :rtype: list[unicode] """ return self._properties['tags'] @property def url(self): """ :returns: The url :rtype: unicode """ return self._properties['url'] @property def attributes(self): """ :returns: The attributes :rtype: dict """ return self._properties['attributes'] @property def properties(self): """ :returns: The properties :rtype: dict """ return self._properties['properties'] @property def trust(self): """ :returns: The trust :rtype: dict """ return self._properties['trust'] def __repr__(self): """ Provide a friendly representation :returns: Machine friendly representation :rtype: str """ return '<Twilio.Insights.V1.CallSummariesInstance>'