Class: Twilio::REST::Proxy::V1::ServiceContext::SessionList

Inherits:
ListResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/proxy/v1/service/session.rb

Overview

PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.

Instance Method Summary collapse

Constructor Details

#initialize(version, service_sid: nil) ⇒ SessionList

Initialize the SessionList

Parameters:

  • version (Version)

    Version that contains the resource

  • service_sid (String) (defaults to: nil)

    The unique SID identifier of the Service.



22
23
24
25
26
27
28
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 22

def initialize(version, service_sid: nil)
  super(version)

  # Path Solution
  @solution = {service_sid: service_sid}
  @uri = "/Services/#{@solution[:service_sid]}/Sessions"
end

Instance Method Details

#create(unique_name: :unset, date_expiry: :unset, ttl: :unset, mode: :unset, status: :unset, participants: :unset) ⇒ SessionInstance

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

Parameters:

  • unique_name (String) (defaults to: :unset)

    Your identifier for this Session such as a Job ID or conversation ID.

  • date_expiry (Time) (defaults to: :unset)

    An absolute time at which this Session should close. If this is populated, it takes precedence over TTL values.

  • ttl (String) (defaults to: :unset)

    The Time To Live for this Session. The amount of time, specified in seconds, that this Session should live for before closing. Keys off the last interaction or session creation time.

  • mode (session.Mode) (defaults to: :unset)

    The type of communications mediums allowed on a Session. Defaults to voice-and-message, other options are voice-only OR message-only.

  • status (session.Status) (defaults to: :unset)

    Set this value to ‘closed’ to close the session. A Session can be re-opened by posting to a closed session with the value ‘in-progress.’ This will be ‘open’ by default on create.

  • participants (Hash) (defaults to: :unset)

    The participants

Returns:



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 141

def create(unique_name: :unset, date_expiry: :unset, ttl: :unset, mode: :unset, status: :unset, participants: :unset)
  data = Twilio::Values.of({
      'UniqueName' => unique_name,
      'DateExpiry' => Twilio.serialize_iso8601_datetime(date_expiry),
      'Ttl' => ttl,
      'Mode' => mode,
      'Status' => status,
      'Participants' => Twilio.serialize_list(participants) { |e| Twilio.serialize_object(e) },
  })

  payload = @version.create(
      'POST',
      @uri,
      data: data
  )

  SessionInstance.new(@version, payload, service_sid: @solution[:service_sid], )
end

#eachObject

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



74
75
76
77
78
79
80
81
82
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 74

def each
  limits = @version.read_limits

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

  @version.stream(page,
                  limit: limits[:limit],
                  page_limit: limits[:page_limit]).each {|x| yield x}
end

#get_page(target_url) ⇒ Page

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

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of SessionInstance



115
116
117
118
119
120
121
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 115

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

#list(unique_name: :unset, status: :unset, limit: nil, page_size: nil) ⇒ Array

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

Parameters:

  • unique_name (String) (defaults to: :unset)

    The unique_name

  • status (session.Status) (defaults to: :unset)

    The Status of this Session. One of ‘in-progress`, `closed`, `failed`, `unknown` or `completed`.

  • 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



44
45
46
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 44

def list(unique_name: :unset, status: :unset, limit: nil, page_size: nil)
  self.stream(unique_name: unique_name, status: status, limit: limit, page_size: page_size).entries
end

#page(unique_name: :unset, status: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

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

Parameters:

  • unique_name (String) (defaults to: :unset)

    The unique_name

  • status (session.Status) (defaults to: :unset)

    The Status of this Session. One of ‘in-progress`, `closed`, `failed`, `unknown` or `completed`.

  • 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 SessionInstance



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 94

def page(unique_name: :unset, status: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
  params = Twilio::Values.of({
      'UniqueName' => unique_name,
      'Status' => status,
      'PageToken' => page_token,
      'Page' => page_number,
      'PageSize' => page_size,
  })
  response = @version.page(
      'GET',
      @uri,
      params
  )
  SessionPage.new(@version, response, @solution)
end

#stream(unique_name: :unset, status: :unset, limit: nil, page_size: nil) ⇒ Enumerable

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

Parameters:

  • unique_name (String) (defaults to: :unset)

    The unique_name

  • status (session.Status) (defaults to: :unset)

    The Status of this Session. One of ‘in-progress`, `closed`, `failed`, `unknown` or `completed`.

  • 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



62
63
64
65
66
67
68
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 62

def stream(unique_name: :unset, status: :unset, limit: nil, page_size: nil)
  limits = @version.read_limits(limit, page_size)

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

  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
end

#to_sObject

Provide a user friendly representation



162
163
164
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 162

def to_s
  '#<Twilio.Proxy.V1.SessionList>'
end