Class: Twilio::REST::Taskrouter::V1::WorkspaceContext::TaskQueueList

Inherits:
ListResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb,
lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb

Defined Under Namespace

Classes: TaskQueuesStatisticsInstance, TaskQueuesStatisticsList, TaskQueuesStatisticsPage

Instance Method Summary collapse

Constructor Details

#initialize(version, workspace_sid: nil) ⇒ TaskQueueList

Initialize the TaskQueueList

Parameters:

  • version (Version)

    Version that contains the resource

  • workspace_sid (String) (defaults to: nil)

    The ID of the Workspace that owns this TaskQueue



20
21
22
23
24
25
26
27
28
29
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 20

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

  # Path Solution
  @solution = {workspace_sid: workspace_sid}
  @uri = "/Workspaces/#{@solution[:workspace_sid]}/TaskQueues"

  # Components
  @statistics = nil
end

Instance Method Details

#create(friendly_name: nil, target_workers: :unset, max_reserved_workers: :unset, task_order: :unset, reservation_activity_sid: :unset, assignment_activity_sid: :unset) ⇒ TaskQueueInstance

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

Parameters:

  • friendly_name (String) (defaults to: nil)

    Human readable description of this TaskQueue (for example “Support – Tier 1”, “Sales” or “Escalation”)

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

    A string describing the Worker selection criteria for any Tasks that enter this TaskQueue. For example ‘’“language” == “spanish”‘` If no TargetWorkers parameter is provided, Tasks will wait in this TaskQueue until they are either deleted or moved to another TaskQueue. Additional examples on how to describing Worker selection criteria below. Defaults to 1==1.

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

    The maximum amount of workers to create reservations for the assignment of a task while in this queue. Defaults to 1, with a Maximum of 50.

  • task_order (task_queue.TaskOrder) (defaults to: :unset)

    TaskOrder will determine which order the Tasks will be assigned to Workers. Set this parameter to LIFO to assign most recently created Task first or FIFO to assign the oldest Task. Default is FIFO. [Click here](www.twilio.com/docs/api/taskrouter/last-first-out-lifo) to learn more.

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

    ActivitySID to assign workers once a task is reserved for them

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

    ActivitySID to assign workers once a task is assigned for them

Returns:



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 168

def create(friendly_name: nil, target_workers: :unset, max_reserved_workers: :unset, task_order: :unset, reservation_activity_sid: :unset, assignment_activity_sid: :unset)
  data = Twilio::Values.of({
      'FriendlyName' => friendly_name,
      'TargetWorkers' => target_workers,
      'MaxReservedWorkers' => max_reserved_workers,
      'TaskOrder' => task_order,
      'ReservationActivitySid' => reservation_activity_sid,
      'AssignmentActivitySid' => assignment_activity_sid,
  })

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

  TaskQueueInstance.new(@version, payload, workspace_sid: @solution[:workspace_sid], )
end

#eachObject

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



92
93
94
95
96
97
98
99
100
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 92

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 TaskQueueInstance records from the API. Request is executed immediately.

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of TaskQueueInstance



137
138
139
140
141
142
143
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 137

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

#list(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, limit: nil, page_size: nil) ⇒ Array

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

Parameters:

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

    Filter by a human readable description of a TaskQueue (for example “Customer Support” or “2014 Election Campaign”)

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

    Provide a Worker attributes expression, and this will return the list of TaskQueues that would distribute tasks to a worker with these attributes.

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

    The worker_sid

  • 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



48
49
50
51
52
53
54
55
56
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 48

def list(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, limit: nil, page_size: nil)
  self.stream(
      friendly_name: friendly_name,
      evaluate_worker_attributes: evaluate_worker_attributes,
      worker_sid: worker_sid,
      limit: limit,
      page_size: page_size
  ).entries
end

#page(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

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

Parameters:

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

    Filter by a human readable description of a TaskQueue (for example “Customer Support” or “2014 Election Campaign”)

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

    Provide a Worker attributes expression, and this will return the list of TaskQueues that would distribute tasks to a worker with these attributes.

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

    The worker_sid

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



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 115

def page(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
  params = Twilio::Values.of({
      'FriendlyName' => friendly_name,
      'EvaluateWorkerAttributes' => evaluate_worker_attributes,
      'WorkerSid' => worker_sid,
      'PageToken' => page_token,
      'Page' => page_number,
      'PageSize' => page_size,
  })
  response = @version.page(
      'GET',
      @uri,
      params
  )
  TaskQueuePage.new(@version, response, @solution)
end

#statisticsTaskQueuesStatisticsList, TaskQueuesStatisticsContext

Access the statistics

Returns:



191
192
193
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 191

def statistics
  @statistics ||= TaskQueuesStatisticsList.new(@version, workspace_sid: @solution[:workspace_sid], )
end

#stream(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, limit: nil, page_size: nil) ⇒ Enumerable

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

Parameters:

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

    Filter by a human readable description of a TaskQueue (for example “Customer Support” or “2014 Election Campaign”)

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

    Provide a Worker attributes expression, and this will return the list of TaskQueues that would distribute tasks to a worker with these attributes.

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

    The worker_sid

  • 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



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 75

def stream(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, limit: nil, page_size: nil)
  limits = @version.read_limits(limit, page_size)

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

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

#to_sObject

Provide a user friendly representation



197
198
199
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb', line 197

def to_s
  '#<Twilio.Taskrouter.V1.TaskQueueList>'
end