Class: Twilio::REST::Taskrouter::V1::WorkspaceContext::TaskList

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

Instance Method Summary collapse

Constructor Details

#initialize(version, workspace_sid: nil) ⇒ TaskList

Initialize the TaskList

Parameters:

  • version (Version)

    Version that contains the resource



28
29
30
31
32
33
34
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 28

def initialize(version, workspace_sid: nil)
    super(version)
    # Path Solution
    @solution = { workspace_sid: workspace_sid }
    @uri = "/Workspaces/#{@solution[:workspace_sid]}/Tasks"
    
end

Instance Method Details

#create(timeout: :unset, priority: :unset, task_channel: :unset, workflow_sid: :unset, attributes: :unset, virtual_start_time: :unset, routing_target: :unset, ignore_capacity: :unset, task_queue_sid: :unset) ⇒ TaskInstance

Create the TaskInstance

Parameters:

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

    The amount of time in seconds the new task can live before being assigned. Can be up to a maximum of 2 weeks (1,209,600 seconds). The default value is 24 hours (86,400 seconds). On timeout, the ‘task.canceled` event will fire with description `Task TTL Exceeded`.

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

    The priority to assign the new task and override the default. When supplied, the new Task will have this priority unless it matches a Workflow Target with a Priority set. When not supplied, the new Task will have the priority of the matching Workflow Target. Value can be 0 to 2^31^ (2,147,483,647).

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

    When MultiTasking is enabled, specify the TaskChannel by passing either its ‘unique_name` or `sid`. Default value is `default`.

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

    The SID of the Workflow that you would like to handle routing for the new Task. If there is only one Workflow defined for the Workspace that you are posting the new task to, this parameter is optional.

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

    A URL-encoded JSON string with the attributes of the new task. This value is passed to the Workflow’s ‘assignment_callback_url` when the Task is assigned to a Worker. For example: `{ \"task_type\": \"call\", \"twilio_call_sid\": \"CAxxx\", \"customer_ticket_number\": \"12345\" }`.

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

    The virtual start time to assign the new task and override the default. When supplied, the new task will have this virtual start time. When not supplied, the new task will have the virtual start time equal to ‘date_created`. Value can’t be in the future or before the year of 1900.

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

    A SID of a Worker, Queue, or Workflow to route a Task to

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

    A boolean that indicates if the Task should respect a Worker’s capacity and availability during assignment. This field can only be used when the ‘RoutingTarget` field is set to a Worker SID. By setting `IgnoreCapacity` to a value of `true`, `1`, or `yes`, the Task will be routed to the Worker without respecting their capacity and availability. Any other value will enforce the Worker’s capacity and availability. The default value of ‘IgnoreCapacity` is `true` when the `RoutingTarget` is set to a Worker SID.

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

    The SID of the TaskQueue in which the Task belongs

Returns:



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 47

def create(
    timeout: :unset, 
    priority: :unset, 
    task_channel: :unset, 
    workflow_sid: :unset, 
    attributes: :unset, 
    virtual_start_time: :unset, 
    routing_target: :unset, 
    ignore_capacity: :unset, 
    task_queue_sid: :unset
)

    data = Twilio::Values.of({
        'Timeout' => timeout,
        'Priority' => priority,
        'TaskChannel' => task_channel,
        'WorkflowSid' => workflow_sid,
        'Attributes' => attributes,
        'VirtualStartTime' => Twilio.serialize_iso8601_datetime(virtual_start_time),
        'RoutingTarget' => routing_target,
        'IgnoreCapacity' => ignore_capacity,
        'TaskQueueSid' => task_queue_sid,
    })

    headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
    
    
    
    
    
    payload = @version.create('POST', @uri, data: data, headers: headers)
    TaskInstance.new(
        @version,
        payload,
        workspace_sid: @solution[:workspace_sid],
    )
end

#eachObject

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



168
169
170
171
172
173
174
175
176
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 168

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

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of TaskInstance



226
227
228
229
230
231
232
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 226

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

#list(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :unset, limit: nil, page_size: nil) ⇒ Array

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

Parameters:

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

    The priority value of the Tasks to read. Returns the list of all Tasks in the Workspace with the specified priority.

  • assignment_status (Array[String]) (defaults to: :unset)

    The ‘assignment_status` of the Tasks you want to read. Can be: `pending`, `reserved`, `assigned`, `canceled`, `wrapping`, or `completed`. Returns all Tasks in the Workspace with the specified `assignment_status`.

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

    The SID of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this SID.

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

    The friendly name of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this friendly name.

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

    The SID of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this SID.

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

    The ‘friendly_name` of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this friendly name.

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

    The attributes of the Tasks to read. Returns the Tasks that match the attributes specified in this parameter.

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

    A SID of a Worker, Queue, or Workflow to route a Task to

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

    How to order the returned Task resources. By default, Tasks are sorted by ascending DateCreated. This value is specified as: ‘Attribute:Order`, where `Attribute` can be either `DateCreated`, `Priority`, or `VirtualStartTime` and `Order` can be either `asc` or `desc`. For example, `Priority:desc` returns Tasks ordered in descending order of their Priority. Pairings of sort orders can be specified in a comma-separated list such as `Priority:desc,DateCreated:asc`, which returns the Tasks in descending Priority order and ascending DateCreated Order. The only ordering pairing not allowed is DateCreated and VirtualStartTime.

  • has_addons (Boolean) (defaults to: :unset)

    Whether to read Tasks with Add-ons. If ‘true`, returns only Tasks with Add-ons. If `false`, returns only Tasks without Add-ons.

  • 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



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 107

def list(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :unset, limit: nil, page_size: nil)
    self.stream(
        priority: priority,
        assignment_status: assignment_status,
        workflow_sid: workflow_sid,
        workflow_name: workflow_name,
        task_queue_sid: task_queue_sid,
        task_queue_name: task_queue_name,
        evaluate_task_attributes: evaluate_task_attributes,
        routing_target: routing_target,
        ordering: ordering,
        has_addons: has_addons,
        limit: limit,
        page_size: page_size
    ).entries
end

#page(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

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

Parameters:

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

    The priority value of the Tasks to read. Returns the list of all Tasks in the Workspace with the specified priority.

  • assignment_status (Array[String]) (defaults to: :unset)

    The ‘assignment_status` of the Tasks you want to read. Can be: `pending`, `reserved`, `assigned`, `canceled`, `wrapping`, or `completed`. Returns all Tasks in the Workspace with the specified `assignment_status`.

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

    The SID of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this SID.

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

    The friendly name of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this friendly name.

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

    The SID of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this SID.

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

    The ‘friendly_name` of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this friendly name.

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

    The attributes of the Tasks to read. Returns the Tasks that match the attributes specified in this parameter.

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

    A SID of a Worker, Queue, or Workflow to route a Task to

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

    How to order the returned Task resources. By default, Tasks are sorted by ascending DateCreated. This value is specified as: ‘Attribute:Order`, where `Attribute` can be either `DateCreated`, `Priority`, or `VirtualStartTime` and `Order` can be either `asc` or `desc`. For example, `Priority:desc` returns Tasks ordered in descending order of their Priority. Pairings of sort orders can be specified in a comma-separated list such as `Priority:desc,DateCreated:asc`, which returns the Tasks in descending Priority order and ascending DateCreated Order. The only ordering pairing not allowed is DateCreated and VirtualStartTime.

  • has_addons (Boolean) (defaults to: :unset)

    Whether to read Tasks with Add-ons. If ‘true`, returns only Tasks with Add-ons. If `false`, returns only Tasks without Add-ons.

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



195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 195

def page(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
    params = Twilio::Values.of({
        'Priority' => priority,
        
        'AssignmentStatus' =>  Twilio.serialize_list(assignment_status) { |e| e },
        'WorkflowSid' => workflow_sid,
        'WorkflowName' => workflow_name,
        'TaskQueueSid' => task_queue_sid,
        'TaskQueueName' => task_queue_name,
        'EvaluateTaskAttributes' => evaluate_task_attributes,
        'RoutingTarget' => routing_target,
        'Ordering' => ordering,
        'HasAddons' => has_addons,
        'PageToken' => page_token,
        'Page' => page_number,
        'PageSize' => page_size,
    })
    headers = Twilio::Values.of({})
    
    

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

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

#stream(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :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:

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

    The priority value of the Tasks to read. Returns the list of all Tasks in the Workspace with the specified priority.

  • assignment_status (Array[String]) (defaults to: :unset)

    The ‘assignment_status` of the Tasks you want to read. Can be: `pending`, `reserved`, `assigned`, `canceled`, `wrapping`, or `completed`. Returns all Tasks in the Workspace with the specified `assignment_status`.

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

    The SID of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this SID.

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

    The friendly name of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this friendly name.

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

    The SID of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this SID.

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

    The ‘friendly_name` of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this friendly name.

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

    The attributes of the Tasks to read. Returns the Tasks that match the attributes specified in this parameter.

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

    A SID of a Worker, Queue, or Workflow to route a Task to

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

    How to order the returned Task resources. By default, Tasks are sorted by ascending DateCreated. This value is specified as: ‘Attribute:Order`, where `Attribute` can be either `DateCreated`, `Priority`, or `VirtualStartTime` and `Order` can be either `asc` or `desc`. For example, `Priority:desc` returns Tasks ordered in descending order of their Priority. Pairings of sort orders can be specified in a comma-separated list such as `Priority:desc,DateCreated:asc`, which returns the Tasks in descending Priority order and ascending DateCreated Order. The only ordering pairing not allowed is DateCreated and VirtualStartTime.

  • has_addons (Boolean) (defaults to: :unset)

    Whether to read Tasks with Add-ons. If ‘true`, returns only Tasks with Add-ons. If `false`, returns only Tasks without Add-ons.

  • 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



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 145

def stream(priority: :unset, assignment_status: :unset, workflow_sid: :unset, workflow_name: :unset, task_queue_sid: :unset, task_queue_name: :unset, evaluate_task_attributes: :unset, routing_target: :unset, ordering: :unset, has_addons: :unset, limit: nil, page_size: nil)
    limits = @version.read_limits(limit, page_size)

    page = self.page(
        priority: priority,
        assignment_status: assignment_status,
        workflow_sid: workflow_sid,
        workflow_name: workflow_name,
        task_queue_sid: task_queue_sid,
        task_queue_name: task_queue_name,
        evaluate_task_attributes: evaluate_task_attributes,
        routing_target: routing_target,
        ordering: ordering,
        has_addons: has_addons,
        page_size: limits[:page_size], )

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

#to_sObject

Provide a user friendly representation



237
238
239
# File 'lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb', line 237

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