Class: Twilio::REST::Api::V2010::AccountContext::UsageList::RecordList

Inherits:
ListResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/api/v2010/account/usage/record.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb,
lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb

Defined Under Namespace

Classes: AllTimeInstance, AllTimeList, AllTimeListResponse, AllTimePage, AllTimePageMetadata, DailyInstance, DailyList, DailyListResponse, DailyPage, DailyPageMetadata, LastMonthInstance, LastMonthList, LastMonthListResponse, LastMonthPage, LastMonthPageMetadata, MonthlyInstance, MonthlyList, MonthlyListResponse, MonthlyPage, MonthlyPageMetadata, ThisMonthInstance, ThisMonthList, ThisMonthListResponse, ThisMonthPage, ThisMonthPageMetadata, TodayInstance, TodayList, TodayListResponse, TodayPage, TodayPageMetadata, YearlyInstance, YearlyList, YearlyListResponse, YearlyPage, YearlyPageMetadata, YesterdayInstance, YesterdayList, YesterdayListResponse, YesterdayPage, YesterdayPageMetadata

Instance Method Summary collapse

Constructor Details

#initialize(version, account_sid: nil) ⇒ RecordList

Initialize the RecordList

Parameters:

  • version (Version) —

    Version that contains the resource



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 29

def initialize(version, account_sid: nil)
    super(version)
    
    # Path Solution
    @solution = { account_sid:  }
    @uri = "/Accounts/#{@solution[:account_sid]}/Usage/Records.json"
    # Components
    @last_month = nil
    @today = nil
    @yearly = nil
    @this_month = nil
    @daily = nil
    @all_time = nil
    @yesterday = nil
    @monthly = nil
end

Instance Method Details

#all_time ⇒ AllTimeList, AllTimeContext

Access the all_time

Returns:



235
236
237
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 235

def all_time
    @all_time ||= AllTimeList.new(@version, account_sid: @solution[:account_sid] )
end

#daily ⇒ DailyList, DailyContext

Access the daily

Returns:



228
229
230
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 228

def daily
    @daily ||= DailyList.new(@version, account_sid: @solution[:account_sid] )
end

#each ⇒ Object

When passed a block, yields RecordInstance records from the API. This operation lazily loads records as efficiently as possible until the limit is reached.



138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 138

def each
    limits = @version.read_limits

    page = self.page(page_size: limits[:page_size], )

    return [].each if page.nil?

    result = @version.stream(page,
        limit: limits[:limit],
        page_limit: limits[:page_limit])
    return [].each if result.nil?
    result.each {|x| yield x}
end

#get_page(target_url) ⇒ Page

Retrieve a single page of RecordInstance records from the API. Request is executed immediately.

Parameters:

  • target_url (String) —

    API-generated URL for the requested results page

Returns:

  • (Page) —

    Page of RecordInstance



187
188
189
190
191
192
193
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 187

def get_page(target_url)
    response = @version.domain.request(
        'GET',
        target_url
    )
RecordPage.new(@version, response, @solution)
end

#last_month ⇒ LastMonthList, LastMonthContext

Access the last_month

Returns:



200
201
202
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 200

def last_month
    @last_month ||= LastMonthList.new(@version, account_sid: @solution[:account_sid] )
end

#list(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil) ⇒ Array

Lists RecordInstance records from the API as a list. Unlike stream(), this operation is eager and will load limit records into memory before returning.

Parameters:

  • category (String) (defaults to: :unset) —

    The usage category of the UsageRecord resources to read. Only UsageRecord resources in the specified category are retrieved.

  • start_date (Date) (defaults to: :unset) —

    Only include usage that has occurred on or after this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: -30days, which will set the start date to be 30 days before the current date.

  • end_date (Date) (defaults to: :unset) —

    Only include usage that occurred on or before this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: +30days, which will set the end date to 30 days from the current date.

  • include_subaccounts (Boolean) (defaults to: :unset) —

    Whether to include usage from the master account and all its subaccounts. Can be: true (the default) to include usage from the master account and all subaccounts or false to retrieve usage from only the specified account.

  • limit (Integer) (defaults to: nil) —

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil) —

    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:

  • (Array) —

    Array of up to limit results



61
62
63
64
65
66
67
68
69
70
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 61

def list(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil)
    self.stream(
        category: category,
        start_date: start_date,
        end_date: end_date,
        include_subaccounts: include_subaccounts,
        limit: limit,
        page_size: page_size
    ).entries
end

#list_with_metadata(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil) ⇒ Array

Returns Array of up to limit results.

Parameters:

  • limit (Integer) (defaults to: nil) —

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil) —

    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:

  • (Array) —

    Array of up to limit results



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 117

def (category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil)
    limits = @version.read_limits(limit, page_size)
    params = Twilio::Values.of({
        'Category' => category,
        'StartDate' =>  Twilio.serialize_iso8601_date(start_date),
        'EndDate' =>  Twilio.serialize_iso8601_date(end_date),
        'IncludeSubaccounts' => include_subaccounts,
        
        'PageSize' => limits[:page_size],
    });
    headers = Twilio::Values.of({})

    response = @version.page('GET', @uri, params: params, headers: headers)

    RecordPageMetadata.new(@version, response, @solution, limits[:limit])
end

#monthly ⇒ MonthlyList, MonthlyContext

Access the monthly

Returns:



249
250
251
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 249

def monthly
    @monthly ||= MonthlyList.new(@version, account_sid: @solution[:account_sid] )
end

#page(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

Retrieve a single page of RecordInstance records from the API. Request is executed immediately.

Parameters:

  • category (String) (defaults to: :unset) —

    The usage category of the UsageRecord resources to read. Only UsageRecord resources in the specified category are retrieved.

  • start_date (Date) (defaults to: :unset) —

    Only include usage that has occurred on or after this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: -30days, which will set the start date to be 30 days before the current date.

  • end_date (Date) (defaults to: :unset) —

    Only include usage that occurred on or before this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: +30days, which will set the end date to 30 days from the current date.

  • include_subaccounts (Boolean) (defaults to: :unset) —

    Whether to include usage from the master account and all its subaccounts. Can be: true (the default) to include usage from the master account and all subaccounts or false to retrieve usage from only the specified account.

  • page_token (String) (defaults to: :unset) —

    PageToken provided by the API

  • page_number (Integer) (defaults to: :unset) —

    Page Number, this value is simply for client state

  • page_size (Integer) (defaults to: :unset) —

    Number of records to return, defaults to 50

Returns:

  • (Page) —

    Page of RecordInstance



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 163

def page(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, page_token: :unset, page_number: :unset,page_size: :unset)
    params = Twilio::Values.of({
        'Category' => category,
        'StartDate' =>  Twilio.serialize_iso8601_date(start_date),
        'EndDate' =>  Twilio.serialize_iso8601_date(end_date),
        'IncludeSubaccounts' => include_subaccounts,
        'PageToken' => page_token,
        'Page' => page_number,
        'PageSize' => page_size,
    })
    headers = Twilio::Values.of({})
    
    

    response = @version.page('GET', @uri, params: params, headers: headers)

    RecordPage.new(@version, response, @solution)
end

#stream(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil) ⇒ Enumerable

Streams Instance records from the API as an Enumerable. This operation lazily loads records as efficiently as possible until the limit is reached.

Parameters:

  • category (String) (defaults to: :unset) —

    The usage category of the UsageRecord resources to read. Only UsageRecord resources in the specified category are retrieved.

  • start_date (Date) (defaults to: :unset) —

    Only include usage that has occurred on or after this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: -30days, which will set the start date to be 30 days before the current date.

  • end_date (Date) (defaults to: :unset) —

    Only include usage that occurred on or before this date. Specify the date in GMT and format as YYYY-MM-DD. You can also specify offsets from the current date, such as: +30days, which will set the end date to 30 days from the current date.

  • include_subaccounts (Boolean) (defaults to: :unset) —

    Whether to include usage from the master account and all its subaccounts. Can be: true (the default) to include usage from the master account and all subaccounts or false to retrieve usage from only the specified account.

  • limit (Integer) (defaults to: nil) —

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil) —

    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:

  • (Enumerable) —

    Enumerable that will yield up to limit results



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 87

def stream(category: :unset, start_date: :unset, end_date: :unset, include_subaccounts: :unset, limit: nil, page_size: nil)
    limits = @version.read_limits(limit, page_size)

    page = self.page(
        category: category,
        start_date: start_date,
        end_date: end_date,
        include_subaccounts: include_subaccounts,
        page_size: limits[:page_size], )

    return [].each if page.nil?

    result = @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
    return [].each if result.nil?
    result
end

#this_month ⇒ ThisMonthList, ThisMonthContext

Access the this_month

Returns:



221
222
223
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 221

def this_month
    @this_month ||= ThisMonthList.new(@version, account_sid: @solution[:account_sid] )
end

#to_s ⇒ Object

Provide a user friendly representation



254
255
256
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 254

def to_s
    '#<Twilio.Api.V2010.RecordList>'
end

#today ⇒ TodayList, TodayContext

Access the today

Returns:



207
208
209
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 207

def today
    @today ||= TodayList.new(@version, account_sid: @solution[:account_sid] )
end

#yearly ⇒ YearlyList, YearlyContext

Access the yearly

Returns:



214
215
216
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 214

def yearly
    @yearly ||= YearlyList.new(@version, account_sid: @solution[:account_sid] )
end

#yesterday ⇒ YesterdayList, YesterdayContext

Access the yesterday

Returns:



242
243
244
# File 'lib/twilio-ruby/rest/api/v2010/account/usage/record.rb', line 242

def yesterday
    @yesterday ||= YesterdayList.new(@version, account_sid: @solution[:account_sid] )
end