lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb in twilio-ruby-5.77.0 vs lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb in twilio-ruby-6.0.0.pre.rc.1

- old
+ new

@@ -1,579 +1,578 @@ ## -# This code was generated by -# \ / _ _ _| _ _ -# | (_)\/(_)(_|\/| |(/_ v1.0.0 -# / / +# This code was generated by +# ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __ +# | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/ +# | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \ # -# frozen_string_literal: true +# Twilio - Taskrouter +# This is the public Twilio REST API. +# +# NOTE: This class is auto generated by OpenAPI Generator. +# https://openapi-generator.tech +# Do not edit the class manually. +# + module Twilio - module REST - class Taskrouter < Domain - class V1 < Version - class WorkspaceContext < InstanceContext - class TaskQueueList < ListResource - ## - # Initialize the TaskQueueList - # @param [Version] version Version that contains the resource - # @param [String] workspace_sid The SID of the Workspace that contains the - # TaskQueue. - # @return [TaskQueueList] TaskQueueList - def initialize(version, workspace_sid: nil) - super(version) + module REST + class Taskrouter < TaskrouterBase + class V1 < Version + class WorkspaceContext < InstanceContext - # Path Solution - @solution = {workspace_sid: workspace_sid} - @uri = "/Workspaces/#{@solution[:workspace_sid]}/TaskQueues" + class TaskQueueList < ListResource + ## + # Initialize the TaskQueueList + # @param [Version] version Version that contains the resource + # @return [TaskQueueList] TaskQueueList + 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 + ## + # Create the TaskQueueInstance + # @param [String] friendly_name A descriptive string that you create to describe the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. + # @param [String] target_workers A string that describes the Worker selection criteria for any Tasks that enter the TaskQueue. For example, `'\\\"language\\\" == \\\"spanish\\\"'`. The default value is `1==1`. If this value is empty, Tasks will wait in the TaskQueue until they are deleted or moved to another TaskQueue. For more information about Worker selection, see [Describing Worker selection criteria](https://www.twilio.com/docs/taskrouter/api/taskqueues#target-workers). + # @param [String] max_reserved_workers The maximum number of Workers to reserve for the assignment of a Task in the queue. Can be an integer between 1 and 50, inclusive and defaults to 1. + # @param [TaskOrder] task_order + # @param [String] reservation_activity_sid The SID of the Activity to assign Workers when a task is reserved for them. + # @param [String] assignment_activity_sid The SID of the Activity to assign Workers when a task is assigned to them. + # @return [TaskQueueInstance] Created TaskQueueInstance + def create( + friendly_name: nil, + target_workers: :unset, + max_reserved_workers: :unset, + task_order: :unset, + reservation_activity_sid: :unset, + assignment_activity_sid: :unset + ) - # Components - @statistics = nil - end + 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, + }) - ## - # Lists TaskQueueInstance records from the API as a list. - # Unlike stream(), this operation is eager and will load `limit` records into - # memory before returning. - # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to - # read. - # @param [String] evaluate_worker_attributes The attributes of the Workers to - # read. Returns the TaskQueues with Workers that match the attributes specified in - # this parameter. - # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to - # read. - # @param [String] ordering Sorting parameter for TaskQueues - # @param [Integer] limit Upper limit for the number of records to return. stream() - # guarantees to never return more than limit. Default is no limit - # @param [Integer] 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) - # @return [Array] Array of up to limit results - def list(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, limit: nil, page_size: nil) - self.stream( - friendly_name: friendly_name, - evaluate_worker_attributes: evaluate_worker_attributes, - worker_sid: worker_sid, - ordering: ordering, - limit: limit, - page_size: page_size - ).entries - end + payload = @version.create('POST', @uri, data: data) + TaskQueueInstance.new( + @version, + payload, + workspace_sid: @solution[:workspace_sid], + ) + end - ## - # Streams TaskQueueInstance records from the API as an Enumerable. - # This operation lazily loads records as efficiently as possible until the limit - # is reached. - # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to - # read. - # @param [String] evaluate_worker_attributes The attributes of the Workers to - # read. Returns the TaskQueues with Workers that match the attributes specified in - # this parameter. - # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to - # read. - # @param [String] ordering Sorting parameter for TaskQueues - # @param [Integer] limit Upper limit for the number of records to return. stream() - # guarantees to never return more than limit. Default is no limit. - # @param [Integer] 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) - # @return [Enumerable] Enumerable that will yield up to limit results - def stream(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, limit: nil, page_size: nil) - limits = @version.read_limits(limit, page_size) + + ## + # Lists TaskQueueInstance records from the API as a list. + # Unlike stream(), this operation is eager and will load `limit` records into + # memory before returning. + # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to read. + # @param [String] evaluate_worker_attributes The attributes of the Workers to read. Returns the TaskQueues with Workers that match the attributes specified in this parameter. + # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to read. + # @param [String] ordering Sorting parameter for TaskQueues + # @param [Integer] limit Upper limit for the number of records to return. stream() + # guarantees to never return more than limit. Default is no limit + # @param [Integer] 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) + # @return [Array] Array of up to limit results + def list(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, limit: nil, page_size: nil) + self.stream( + friendly_name: friendly_name, + evaluate_worker_attributes: evaluate_worker_attributes, + worker_sid: worker_sid, + ordering: ordering, + limit: limit, + page_size: page_size + ).entries + end - page = self.page( - friendly_name: friendly_name, - evaluate_worker_attributes: evaluate_worker_attributes, - worker_sid: worker_sid, - ordering: ordering, - page_size: limits[:page_size], - ) + ## + # Streams Instance records from the API as an Enumerable. + # This operation lazily loads records as efficiently as possible until the limit + # is reached. + # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to read. + # @param [String] evaluate_worker_attributes The attributes of the Workers to read. Returns the TaskQueues with Workers that match the attributes specified in this parameter. + # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to read. + # @param [String] ordering Sorting parameter for TaskQueues + # @param [Integer] limit Upper limit for the number of records to return. stream() + # guarantees to never return more than limit. Default is no limit + # @param [Integer] 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) + # @return [Enumerable] Enumerable that will yield up to limit results + def stream(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, limit: nil, page_size: nil) + limits = @version.read_limits(limit, page_size) - @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]) - end + page = self.page( + friendly_name: friendly_name, + evaluate_worker_attributes: evaluate_worker_attributes, + worker_sid: worker_sid, + ordering: ordering, + page_size: limits[:page_size], ) - ## - # When passed a block, yields TaskQueueInstance records from the API. - # This operation lazily loads records as efficiently as possible until the limit - # is reached. - def each - limits = @version.read_limits + @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]) + end - page = self.page(page_size: limits[:page_size], ) + ## + # When passed a block, yields TaskQueueInstance records from the API. + # This operation lazily loads records as efficiently as possible until the limit + # is reached. + def each + limits = @version.read_limits - @version.stream(page, - limit: limits[:limit], - page_limit: limits[:page_limit]).each {|x| yield x} - end + page = self.page(page_size: limits[:page_size], ) - ## - # Retrieve a single page of TaskQueueInstance records from the API. - # Request is executed immediately. - # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to - # read. - # @param [String] evaluate_worker_attributes The attributes of the Workers to - # read. Returns the TaskQueues with Workers that match the attributes specified in - # this parameter. - # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to - # read. - # @param [String] ordering Sorting parameter for TaskQueues - # @param [String] page_token PageToken provided by the API - # @param [Integer] page_number Page Number, this value is simply for client state - # @param [Integer] page_size Number of records to return, defaults to 50 - # @return [Page] Page of TaskQueueInstance - def page(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, page_token: :unset, page_number: :unset, page_size: :unset) - params = Twilio::Values.of({ - 'FriendlyName' => friendly_name, - 'EvaluateWorkerAttributes' => evaluate_worker_attributes, - 'WorkerSid' => worker_sid, - 'Ordering' => ordering, - 'PageToken' => page_token, - 'Page' => page_number, - 'PageSize' => page_size, - }) + @version.stream(page, + limit: limits[:limit], + page_limit: limits[:page_limit]).each {|x| yield x} + end - response = @version.page('GET', @uri, params: params) + ## + # Retrieve a single page of TaskQueueInstance records from the API. + # Request is executed immediately. + # @param [String] friendly_name The `friendly_name` of the TaskQueue resources to read. + # @param [String] evaluate_worker_attributes The attributes of the Workers to read. Returns the TaskQueues with Workers that match the attributes specified in this parameter. + # @param [String] worker_sid The SID of the Worker with the TaskQueue resources to read. + # @param [String] ordering Sorting parameter for TaskQueues + # @param [String] page_token PageToken provided by the API + # @param [Integer] page_number Page Number, this value is simply for client state + # @param [Integer] page_size Number of records to return, defaults to 50 + # @return [Page] Page of TaskQueueInstance + def page(friendly_name: :unset, evaluate_worker_attributes: :unset, worker_sid: :unset, ordering: :unset, page_token: :unset, page_number: :unset, page_size: :unset) + params = Twilio::Values.of({ + + 'FriendlyName' => friendly_name, + + 'EvaluateWorkerAttributes' => evaluate_worker_attributes, + + 'WorkerSid' => worker_sid, + + 'Ordering' => ordering, + + 'PageToken' => page_token, + 'Page' => page_number, + 'PageSize' => page_size, + }) - TaskQueuePage.new(@version, response, @solution) - end + response = @version.page('GET', @uri, params: params) - ## - # Retrieve a single page of TaskQueueInstance records from the API. - # Request is executed immediately. - # @param [String] target_url API-generated URL for the requested results page - # @return [Page] Page of TaskQueueInstance - def get_page(target_url) - response = @version.domain.request( - 'GET', - target_url - ) - TaskQueuePage.new(@version, response, @solution) - end + TaskQueuePage.new(@version, response, @solution) + end - ## - # Create the TaskQueueInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. - # @param [String] target_workers A string that describes the Worker selection - # criteria for any Tasks that enter the TaskQueue. For example, `'"language" == - # "spanish"'`. The default value is `1==1`. If this value is empty, Tasks will - # wait in the TaskQueue until they are deleted or moved to another TaskQueue. For - # more information about Worker selection, see {Describing Worker selection - # criteria}[https://www.twilio.com/docs/taskrouter/api/taskqueues#target-workers]. - # @param [String] max_reserved_workers The maximum number of Workers to reserve - # for the assignment of a Task in the queue. Can be an integer between 1 and 50, - # inclusive and defaults to 1. - # @param [task_queue.TaskOrder] task_order How 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 first. Default is `FIFO`. {Click - # here}[https://www.twilio.com/docs/taskrouter/queue-ordering-last-first-out-lifo] - # to learn more. - # @param [String] reservation_activity_sid The SID of the Activity to assign - # Workers when a task is reserved for them. - # @param [String] assignment_activity_sid The SID of the Activity to assign - # Workers when a task is assigned to them. - # @return [TaskQueueInstance] Created TaskQueueInstance - 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, - }) + ## + # Retrieve a single page of TaskQueueInstance records from the API. + # Request is executed immediately. + # @param [String] target_url API-generated URL for the requested results page + # @return [Page] Page of TaskQueueInstance + def get_page(target_url) + response = @version.domain.request( + 'GET', + target_url + ) + TaskQueuePage.new(@version, response, @solution) + end + - payload = @version.create('POST', @uri, data: data) + ## + # Access the statistics + # @return [TaskQueuesStatisticsList] + # @return [TaskQueuesStatisticsContext] + def statistics + @statistics ||= TaskQueuesStatisticsList.new(@version, workspace_sid: @solution[:workspace_sid] ) + end - TaskQueueInstance.new(@version, payload, workspace_sid: @solution[:workspace_sid], ) - end + # Provide a user friendly representation + def to_s + '#<Twilio.Taskrouter.V1.TaskQueueList>' + end + end - ## - # Access the statistics - # @return [TaskQueuesStatisticsList] - # @return [TaskQueuesStatisticsContext] - def statistics - @statistics ||= TaskQueuesStatisticsList.new(@version, workspace_sid: @solution[:workspace_sid], ) - end - ## - # Provide a user friendly representation - def to_s - '#<Twilio.Taskrouter.V1.TaskQueueList>' - end - end + class TaskQueueContext < InstanceContext + ## + # Initialize the TaskQueueContext + # @param [Version] version Version that contains the resource + # @param [String] workspace_sid The SID of the Workspace with the TaskQueue to update. + # @param [String] sid The SID of the TaskQueue resource to update. + # @return [TaskQueueContext] TaskQueueContext + def initialize(version, workspace_sid, sid) + super(version) - class TaskQueuePage < Page - ## - # Initialize the TaskQueuePage - # @param [Version] version Version that contains the resource - # @param [Response] response Response from the API - # @param [Hash] solution Path solution for the resource - # @return [TaskQueuePage] TaskQueuePage - def initialize(version, response, solution) - super(version, response) + # Path Solution + @solution = { workspace_sid: workspace_sid, sid: sid, } + @uri = "/Workspaces/#{@solution[:workspace_sid]}/TaskQueues/#{@solution[:sid]}" - # Path Solution - @solution = solution - end + # Dependents + @cumulative_statistics = nil + @statistics = nil + @real_time_statistics = nil + end + ## + # Delete the TaskQueueInstance + # @return [Boolean] True if delete succeeds, false otherwise + def delete - ## - # Build an instance of TaskQueueInstance - # @param [Hash] payload Payload response from the API - # @return [TaskQueueInstance] TaskQueueInstance - def get_instance(payload) - TaskQueueInstance.new(@version, payload, workspace_sid: @solution[:workspace_sid], ) - end + @version.delete('DELETE', @uri) + end - ## - # Provide a user friendly representation - def to_s - '<Twilio.Taskrouter.V1.TaskQueuePage>' - end - end + ## + # Fetch the TaskQueueInstance + # @return [TaskQueueInstance] Fetched TaskQueueInstance + def fetch - class TaskQueueContext < InstanceContext - ## - # Initialize the TaskQueueContext - # @param [Version] version Version that contains the resource - # @param [String] workspace_sid The SID of the Workspace with the TaskQueue to - # fetch. - # @param [String] sid The SID of the TaskQueue resource to fetch. - # @return [TaskQueueContext] TaskQueueContext - def initialize(version, workspace_sid, sid) - super(version) + payload = @version.fetch('GET', @uri) + TaskQueueInstance.new( + @version, + payload, + workspace_sid: @solution[:workspace_sid], + sid: @solution[:sid], + ) + end - # Path Solution - @solution = {workspace_sid: workspace_sid, sid: sid, } - @uri = "/Workspaces/#{@solution[:workspace_sid]}/TaskQueues/#{@solution[:sid]}" + ## + # Update the TaskQueueInstance + # @param [String] friendly_name A descriptive string that you create to describe the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. + # @param [String] target_workers A string describing the Worker selection criteria for any Tasks that enter the TaskQueue. For example '\\\"language\\\" == \\\"spanish\\\"' If no TargetWorkers parameter is provided, Tasks will wait in the queue until they are either deleted or moved to another queue. Additional examples on how to describing Worker selection criteria below. + # @param [String] reservation_activity_sid The SID of the Activity to assign Workers when a task is reserved for them. + # @param [String] assignment_activity_sid The SID of the Activity to assign Workers when a task is assigned for them. + # @param [String] max_reserved_workers The maximum number of Workers to create reservations for the assignment of a task while in the queue. Maximum of 50. + # @param [TaskOrder] task_order + # @return [TaskQueueInstance] Updated TaskQueueInstance + def update( + friendly_name: :unset, + target_workers: :unset, + reservation_activity_sid: :unset, + assignment_activity_sid: :unset, + max_reserved_workers: :unset, + task_order: :unset + ) - # Dependents - @statistics = nil - @real_time_statistics = nil - @cumulative_statistics = nil - end + data = Twilio::Values.of({ + 'FriendlyName' => friendly_name, + 'TargetWorkers' => target_workers, + 'ReservationActivitySid' => reservation_activity_sid, + 'AssignmentActivitySid' => assignment_activity_sid, + 'MaxReservedWorkers' => max_reserved_workers, + 'TaskOrder' => task_order, + }) - ## - # Fetch the TaskQueueInstance - # @return [TaskQueueInstance] Fetched TaskQueueInstance - def fetch - payload = @version.fetch('GET', @uri) + payload = @version.update('POST', @uri, data: data) + TaskQueueInstance.new( + @version, + payload, + workspace_sid: @solution[:workspace_sid], + sid: @solution[:sid], + ) + end - TaskQueueInstance.new( - @version, - payload, - workspace_sid: @solution[:workspace_sid], - sid: @solution[:sid], - ) - end + ## + # Access the cumulative_statistics + # @return [TaskQueueCumulativeStatisticsList] + # @return [TaskQueueCumulativeStatisticsContext] + def cumulative_statistics + TaskQueueCumulativeStatisticsContext.new( + @version, + @solution[:workspace_sid], + @solution[:sid] + ) + end + ## + # Access the statistics + # @return [TaskQueueStatisticsList] + # @return [TaskQueueStatisticsContext] + def statistics + TaskQueueStatisticsContext.new( + @version, + @solution[:workspace_sid], + @solution[:sid] + ) + end + ## + # Access the real_time_statistics + # @return [TaskQueueRealTimeStatisticsList] + # @return [TaskQueueRealTimeStatisticsContext] + def real_time_statistics + TaskQueueRealTimeStatisticsContext.new( + @version, + @solution[:workspace_sid], + @solution[:sid] + ) + end - ## - # Update the TaskQueueInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. - # @param [String] target_workers A string describing the Worker selection criteria - # for any Tasks that enter the TaskQueue. For example '"language" == "spanish"' If - # no TargetWorkers parameter is provided, Tasks will wait in the queue until they - # are either deleted or moved to another queue. Additional examples on how to - # describing Worker selection criteria below. - # @param [String] reservation_activity_sid The SID of the Activity to assign - # Workers when a task is reserved for them. - # @param [String] assignment_activity_sid The SID of the Activity to assign - # Workers when a task is assigned for them. - # @param [String] max_reserved_workers The maximum number of Workers to create - # reservations for the assignment of a task while in the queue. Maximum of 50. - # @param [task_queue.TaskOrder] task_order How Tasks will be assigned to Workers. - # Can be: `FIFO` or `LIFO` and the default is `FIFO`. Use `FIFO` to assign the - # oldest task first and `LIFO` to assign the most recent task first. For more - # information, see {Queue - # Ordering}[https://www.twilio.com/docs/taskrouter/queue-ordering-last-first-out-lifo]. - # @return [TaskQueueInstance] Updated TaskQueueInstance - def update(friendly_name: :unset, target_workers: :unset, reservation_activity_sid: :unset, assignment_activity_sid: :unset, max_reserved_workers: :unset, task_order: :unset) - data = Twilio::Values.of({ - 'FriendlyName' => friendly_name, - 'TargetWorkers' => target_workers, - 'ReservationActivitySid' => reservation_activity_sid, - 'AssignmentActivitySid' => assignment_activity_sid, - 'MaxReservedWorkers' => max_reserved_workers, - 'TaskOrder' => task_order, - }) + ## + # Provide a user friendly representation + def to_s + context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') + "#<Twilio.Taskrouter.V1.TaskQueueContext #{context}>" + end - payload = @version.update('POST', @uri, data: data) + ## + # Provide a detailed, user friendly representation + def inspect + context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') + "#<Twilio.Taskrouter.V1.TaskQueueContext #{context}>" + end + end - TaskQueueInstance.new( - @version, - payload, - workspace_sid: @solution[:workspace_sid], - sid: @solution[:sid], - ) - end + class TaskQueuePage < Page + ## + # Initialize the TaskQueuePage + # @param [Version] version Version that contains the resource + # @param [Response] response Response from the API + # @param [Hash] solution Path solution for the resource + # @return [TaskQueuePage] TaskQueuePage + def initialize(version, response, solution) + super(version, response) - ## - # Delete the TaskQueueInstance - # @return [Boolean] true if delete succeeds, false otherwise - def delete - @version.delete('DELETE', @uri) - end + # Path Solution + @solution = solution + end - ## - # Access the statistics - # @return [TaskQueueStatisticsList] - # @return [TaskQueueStatisticsContext] - def statistics - TaskQueueStatisticsContext.new(@version, @solution[:workspace_sid], @solution[:sid], ) - end + ## + # Build an instance of TaskQueueInstance + # @param [Hash] payload Payload response from the API + # @return [TaskQueueInstance] TaskQueueInstance + def get_instance(payload) + TaskQueueInstance.new(@version, payload, workspace_sid: @solution[:workspace_sid]) + end - ## - # Access the real_time_statistics - # @return [TaskQueueRealTimeStatisticsList] - # @return [TaskQueueRealTimeStatisticsContext] - def real_time_statistics - TaskQueueRealTimeStatisticsContext.new(@version, @solution[:workspace_sid], @solution[:sid], ) - end + ## + # Provide a user friendly representation + def to_s + '<Twilio.Taskrouter.V1.TaskQueuePage>' + end + end + class TaskQueueInstance < InstanceResource + ## + # Initialize the TaskQueueInstance + # @param [Version] version Version that contains the resource + # @param [Hash] payload payload that contains response from Twilio + # @param [String] account_sid The SID of the + # {Account}[https://www.twilio.com/docs/iam/api/account] that created this TaskQueue + # resource. + # @param [String] sid The SID of the Call resource to fetch. + # @return [TaskQueueInstance] TaskQueueInstance + def initialize(version, payload , workspace_sid: nil, sid: nil) + super(version) + + # Marshaled Properties + @properties = { + 'account_sid' => payload['account_sid'], + 'assignment_activity_sid' => payload['assignment_activity_sid'], + 'assignment_activity_name' => payload['assignment_activity_name'], + 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']), + 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']), + 'friendly_name' => payload['friendly_name'], + 'max_reserved_workers' => payload['max_reserved_workers'] == nil ? payload['max_reserved_workers'] : payload['max_reserved_workers'].to_i, + 'reservation_activity_sid' => payload['reservation_activity_sid'], + 'reservation_activity_name' => payload['reservation_activity_name'], + 'sid' => payload['sid'], + 'target_workers' => payload['target_workers'], + 'task_order' => payload['task_order'], + 'url' => payload['url'], + 'workspace_sid' => payload['workspace_sid'], + 'links' => payload['links'], + } - ## - # Access the cumulative_statistics - # @return [TaskQueueCumulativeStatisticsList] - # @return [TaskQueueCumulativeStatisticsContext] - def cumulative_statistics - TaskQueueCumulativeStatisticsContext.new(@version, @solution[:workspace_sid], @solution[:sid], ) - end + # Context + @instance_context = nil + @params = { 'workspace_sid' => workspace_sid || @properties['workspace_sid'] ,'sid' => sid || @properties['sid'] , } + end - ## - # Provide a user friendly representation - def to_s - context = @solution.map {|k, v| "#{k}: #{v}"}.join(',') - "#<Twilio.Taskrouter.V1.TaskQueueContext #{context}>" - end + ## + # Generate an instance context for the instance, the context is capable of + # performing various actions. All instance actions are proxied to the context + # @return [TaskQueueContext] CallContext for this CallInstance + def context + unless @instance_context + @instance_context = TaskQueueContext.new(@version , @params['workspace_sid'], @params['sid']) + end + @instance_context + end + + ## + # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the TaskQueue resource. + def account_sid + @properties['account_sid'] + end + + ## + # @return [String] The SID of the Activity to assign Workers when a task is assigned for them. + def assignment_activity_sid + @properties['assignment_activity_sid'] + end + + ## + # @return [String] The name of the Activity to assign Workers when a task is assigned for them. + def assignment_activity_name + @properties['assignment_activity_name'] + end + + ## + # @return [Time] The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. + def date_created + @properties['date_created'] + end + + ## + # @return [Time] The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. + def date_updated + @properties['date_updated'] + end + + ## + # @return [String] The string that you assigned to describe the resource. + def friendly_name + @properties['friendly_name'] + end + + ## + # @return [String] The maximum number of Workers to reserve for the assignment of a task in the queue. Can be an integer between 1 and 50, inclusive and defaults to 1. + def max_reserved_workers + @properties['max_reserved_workers'] + end + + ## + # @return [String] The SID of the Activity to assign Workers once a task is reserved for them. + def reservation_activity_sid + @properties['reservation_activity_sid'] + end + + ## + # @return [String] The name of the Activity to assign Workers once a task is reserved for them. + def reservation_activity_name + @properties['reservation_activity_name'] + end + + ## + # @return [String] The unique string that we created to identify the TaskQueue resource. + def sid + @properties['sid'] + end + + ## + # @return [String] A string describing the Worker selection criteria for any Tasks that enter the TaskQueue. For example `'\"language\" == \"spanish\"'` If no TargetWorkers parameter is provided, Tasks will wait in the 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. + def target_workers + @properties['target_workers'] + end + + ## + # @return [TaskOrder] + def task_order + @properties['task_order'] + end + + ## + # @return [String] The absolute URL of the TaskQueue resource. + def url + @properties['url'] + end + + ## + # @return [String] The SID of the Workspace that contains the TaskQueue. + def workspace_sid + @properties['workspace_sid'] + end + + ## + # @return [Hash] The URLs of related resources. + def links + @properties['links'] + end + + ## + # Delete the TaskQueueInstance + # @return [Boolean] True if delete succeeds, false otherwise + def delete - ## - # Provide a detailed, user friendly representation - def inspect - context = @solution.map {|k, v| "#{k}: #{v}"}.join(',') - "#<Twilio.Taskrouter.V1.TaskQueueContext #{context}>" - end - end + context.delete + end - class TaskQueueInstance < InstanceResource - ## - # Initialize the TaskQueueInstance - # @param [Version] version Version that contains the resource - # @param [Hash] payload payload that contains response from Twilio - # @param [String] workspace_sid The SID of the Workspace that contains the - # TaskQueue. - # @param [String] sid The SID of the TaskQueue resource to fetch. - # @return [TaskQueueInstance] TaskQueueInstance - def initialize(version, payload, workspace_sid: nil, sid: nil) - super(version) + ## + # Fetch the TaskQueueInstance + # @return [TaskQueueInstance] Fetched TaskQueueInstance + def fetch - # Marshaled Properties - @properties = { - 'account_sid' => payload['account_sid'], - 'assignment_activity_sid' => payload['assignment_activity_sid'], - 'assignment_activity_name' => payload['assignment_activity_name'], - 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']), - 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']), - 'friendly_name' => payload['friendly_name'], - 'max_reserved_workers' => payload['max_reserved_workers'] == nil ? payload['max_reserved_workers'] : payload['max_reserved_workers'].to_i, - 'reservation_activity_sid' => payload['reservation_activity_sid'], - 'reservation_activity_name' => payload['reservation_activity_name'], - 'sid' => payload['sid'], - 'target_workers' => payload['target_workers'], - 'task_order' => payload['task_order'], - 'url' => payload['url'], - 'workspace_sid' => payload['workspace_sid'], - 'links' => payload['links'], - } + context.fetch + end - # Context - @instance_context = nil - @params = {'workspace_sid' => workspace_sid, 'sid' => sid || @properties['sid'], } - end + ## + # Update the TaskQueueInstance + # @param [String] friendly_name A descriptive string that you create to describe the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. + # @param [String] target_workers A string describing the Worker selection criteria for any Tasks that enter the TaskQueue. For example '\\\"language\\\" == \\\"spanish\\\"' If no TargetWorkers parameter is provided, Tasks will wait in the queue until they are either deleted or moved to another queue. Additional examples on how to describing Worker selection criteria below. + # @param [String] reservation_activity_sid The SID of the Activity to assign Workers when a task is reserved for them. + # @param [String] assignment_activity_sid The SID of the Activity to assign Workers when a task is assigned for them. + # @param [String] max_reserved_workers The maximum number of Workers to create reservations for the assignment of a task while in the queue. Maximum of 50. + # @param [TaskOrder] task_order + # @return [TaskQueueInstance] Updated TaskQueueInstance + def update( + friendly_name: :unset, + target_workers: :unset, + reservation_activity_sid: :unset, + assignment_activity_sid: :unset, + max_reserved_workers: :unset, + task_order: :unset + ) - ## - # Generate an instance context for the instance, the context is capable of - # performing various actions. All instance actions are proxied to the context - # @return [TaskQueueContext] TaskQueueContext for this TaskQueueInstance - def context - unless @instance_context - @instance_context = TaskQueueContext.new(@version, @params['workspace_sid'], @params['sid'], ) - end - @instance_context - end + context.update( + friendly_name: friendly_name, + target_workers: target_workers, + reservation_activity_sid: reservation_activity_sid, + assignment_activity_sid: assignment_activity_sid, + max_reserved_workers: max_reserved_workers, + task_order: task_order, + ) + end - ## - # @return [String] The SID of the Account that created the resource - def account_sid - @properties['account_sid'] - end + ## + # Access the cumulative_statistics + # @return [cumulative_statistics] cumulative_statistics + def cumulative_statistics + context.cumulative_statistics + end - ## - # @return [String] The SID of the Activity to assign Workers when a task is assigned for them - def assignment_activity_sid - @properties['assignment_activity_sid'] - end + ## + # Access the statistics + # @return [statistics] statistics + def statistics + context.statistics + end - ## - # @return [String] The name of the Activity to assign Workers when a task is assigned for them - def assignment_activity_name - @properties['assignment_activity_name'] - end + ## + # Access the real_time_statistics + # @return [real_time_statistics] real_time_statistics + def real_time_statistics + context.real_time_statistics + end - ## - # @return [Time] The RFC 2822 date and time in GMT when the resource was created - def date_created - @properties['date_created'] - end + ## + # Provide a user friendly representation + def to_s + values = @params.map{|k, v| "#{k}: #{v}"}.join(" ") + "<Twilio.Taskrouter.V1.TaskQueueInstance #{values}>" + end - ## - # @return [Time] The RFC 2822 date and time in GMT when the resource was last updated - def date_updated - @properties['date_updated'] - end + ## + # Provide a detailed, user friendly representation + def inspect + values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ") + "<Twilio.Taskrouter.V1.TaskQueueInstance #{values}>" + end + end - ## - # @return [String] The string that you assigned to describe the resource - def friendly_name - @properties['friendly_name'] + end end - - ## - # @return [String] The maximum number of Workers to reserve - def max_reserved_workers - @properties['max_reserved_workers'] - end - - ## - # @return [String] The SID of the Activity to assign Workers once a task is reserved for them - def reservation_activity_sid - @properties['reservation_activity_sid'] - end - - ## - # @return [String] The name of the Activity to assign Workers once a task is reserved for them - def reservation_activity_name - @properties['reservation_activity_name'] - end - - ## - # @return [String] The unique string that identifies the resource - def sid - @properties['sid'] - end - - ## - # @return [String] A string describing the Worker selection criteria for any Tasks that enter the TaskQueue - def target_workers - @properties['target_workers'] - end - - ## - # @return [task_queue.TaskOrder] How Tasks will be assigned to Workers - def task_order - @properties['task_order'] - end - - ## - # @return [String] The absolute URL of the TaskQueue resource - def url - @properties['url'] - end - - ## - # @return [String] The SID of the Workspace that contains the TaskQueue - def workspace_sid - @properties['workspace_sid'] - end - - ## - # @return [String] The URLs of related resources - def links - @properties['links'] - end - - ## - # Fetch the TaskQueueInstance - # @return [TaskQueueInstance] Fetched TaskQueueInstance - def fetch - context.fetch - end - - ## - # Update the TaskQueueInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the TaskQueue. For example `Support-Tier 1`, `Sales`, or `Escalation`. - # @param [String] target_workers A string describing the Worker selection criteria - # for any Tasks that enter the TaskQueue. For example '"language" == "spanish"' If - # no TargetWorkers parameter is provided, Tasks will wait in the queue until they - # are either deleted or moved to another queue. Additional examples on how to - # describing Worker selection criteria below. - # @param [String] reservation_activity_sid The SID of the Activity to assign - # Workers when a task is reserved for them. - # @param [String] assignment_activity_sid The SID of the Activity to assign - # Workers when a task is assigned for them. - # @param [String] max_reserved_workers The maximum number of Workers to create - # reservations for the assignment of a task while in the queue. Maximum of 50. - # @param [task_queue.TaskOrder] task_order How Tasks will be assigned to Workers. - # Can be: `FIFO` or `LIFO` and the default is `FIFO`. Use `FIFO` to assign the - # oldest task first and `LIFO` to assign the most recent task first. For more - # information, see {Queue - # Ordering}[https://www.twilio.com/docs/taskrouter/queue-ordering-last-first-out-lifo]. - # @return [TaskQueueInstance] Updated TaskQueueInstance - def update(friendly_name: :unset, target_workers: :unset, reservation_activity_sid: :unset, assignment_activity_sid: :unset, max_reserved_workers: :unset, task_order: :unset) - context.update( - friendly_name: friendly_name, - target_workers: target_workers, - reservation_activity_sid: reservation_activity_sid, - assignment_activity_sid: assignment_activity_sid, - max_reserved_workers: max_reserved_workers, - task_order: task_order, - ) - end - - ## - # Delete the TaskQueueInstance - # @return [Boolean] true if delete succeeds, false otherwise - def delete - context.delete - end - - ## - # Access the statistics - # @return [statistics] statistics - def statistics - context.statistics - end - - ## - # Access the real_time_statistics - # @return [real_time_statistics] real_time_statistics - def real_time_statistics - context.real_time_statistics - end - - ## - # Access the cumulative_statistics - # @return [cumulative_statistics] cumulative_statistics - def cumulative_statistics - context.cumulative_statistics - end - - ## - # Provide a user friendly representation - def to_s - values = @params.map{|k, v| "#{k}: #{v}"}.join(" ") - "<Twilio.Taskrouter.V1.TaskQueueInstance #{values}>" - end - - ## - # Provide a detailed, user friendly representation - def inspect - values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ") - "<Twilio.Taskrouter.V1.TaskQueueInstance #{values}>" - end - end end - end end - end -end \ No newline at end of file +end + +