twilio-ruby 5.2.3 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +26 -0
  3. data/README.md +3 -3
  4. data/UPGRADE.md +30 -0
  5. data/lib/twilio-ruby.rb +0 -18
  6. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +2 -2
  7. data/lib/twilio-ruby/rest/chat/v2/service.rb +24 -2
  8. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +5 -3
  9. data/lib/twilio-ruby/rest/client.rb +3 -3
  10. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +24 -2
  11. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +5 -3
  12. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +12 -12
  13. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +38 -0
  14. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +40 -0
  15. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +350 -0
  16. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +264 -0
  17. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +10 -2
  18. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +15 -3
  19. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +38 -0
  20. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +6 -2
  21. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +274 -0
  22. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +213 -0
  23. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +14 -10
  24. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +40 -0
  25. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +357 -0
  26. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +243 -0
  27. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +10 -2
  28. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +339 -0
  29. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +239 -0
  30. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +10 -2
  31. data/lib/twilio-ruby/rest/video/v1/room.rb +7 -0
  32. data/lib/twilio-ruby/security/request_validator.rb +1 -1
  33. data/lib/twilio-ruby/version.rb +1 -1
  34. data/spec/integration/chat/v2/service/channel/message_spec.rb +41 -7
  35. data/spec/integration/chat/v2/service_spec.rb +8 -0
  36. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +41 -7
  37. data/spec/integration/ip_messaging/v2/service_spec.rb +8 -0
  38. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +94 -0
  39. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +79 -0
  40. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +8 -0
  41. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +21 -38
  42. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +87 -0
  43. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +68 -0
  44. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +34 -61
  45. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +8 -0
  46. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +95 -0
  47. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +55 -0
  48. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +12 -4
  49. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +92 -0
  50. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +70 -0
  51. data/spec/integration/taskrouter/v1/workspace_spec.rb +8 -0
  52. data/spec/integration/video/v1/room_spec.rb +12 -0
  53. data/spec/security/request_validator_spec.rb +0 -28
  54. data/spec/twilio_spec.rb +0 -15
  55. metadata +28 -9
  56. data/lib/rack/twilio_webhook_authentication.rb +0 -46
  57. data/lib/twilio-ruby/util/configuration.rb +0 -7
  58. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  59. data/spec/util/configuration_spec.rb +0 -15
@@ -0,0 +1,213 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Taskrouter < Domain
10
+ class V1 < Version
11
+ class WorkspaceContext < InstanceContext
12
+ class WorkerContext < InstanceContext
13
+ class WorkersRealTimeStatisticsList < ListResource
14
+ ##
15
+ # Initialize the WorkersRealTimeStatisticsList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] workspace_sid The workspace_sid
18
+ # @return [WorkersRealTimeStatisticsList] WorkersRealTimeStatisticsList
19
+ def initialize(version, workspace_sid: nil)
20
+ super(version)
21
+
22
+ # Path Solution
23
+ @solution = {
24
+ workspace_sid: workspace_sid
25
+ }
26
+ end
27
+
28
+ ##
29
+ # Provide a user friendly representation
30
+ def to_s
31
+ '#<Twilio.Taskrouter.V1.WorkersRealTimeStatisticsList>'
32
+ end
33
+ end
34
+
35
+ class WorkersRealTimeStatisticsPage < Page
36
+ ##
37
+ # Initialize the WorkersRealTimeStatisticsPage
38
+ # @param [Version] version Version that contains the resource
39
+ # @param [Response] response Response from the API
40
+ # @param [Hash] solution Path solution for the resource
41
+ # @return [WorkersRealTimeStatisticsPage] WorkersRealTimeStatisticsPage
42
+ def initialize(version, response, solution)
43
+ super(version, response)
44
+
45
+ # Path Solution
46
+ @solution = solution
47
+ end
48
+
49
+ ##
50
+ # Build an instance of WorkersRealTimeStatisticsInstance
51
+ # @param [Hash] payload Payload response from the API
52
+ # @return [WorkersRealTimeStatisticsInstance] WorkersRealTimeStatisticsInstance
53
+ def get_instance(payload)
54
+ WorkersRealTimeStatisticsInstance.new(
55
+ @version,
56
+ payload,
57
+ workspace_sid: @solution[:workspace_sid],
58
+ )
59
+ end
60
+
61
+ ##
62
+ # Provide a user friendly representation
63
+ def to_s
64
+ '<Twilio.Taskrouter.V1.WorkersRealTimeStatisticsPage>'
65
+ end
66
+ end
67
+
68
+ class WorkersRealTimeStatisticsContext < InstanceContext
69
+ ##
70
+ # Initialize the WorkersRealTimeStatisticsContext
71
+ # @param [Version] version Version that contains the resource
72
+ # @param [String] workspace_sid The workspace_sid
73
+ # @return [WorkersRealTimeStatisticsContext] WorkersRealTimeStatisticsContext
74
+ def initialize(version, workspace_sid)
75
+ super(version)
76
+
77
+ # Path Solution
78
+ @solution = {
79
+ workspace_sid: workspace_sid,
80
+ }
81
+ @uri = "/Workspaces/#{@solution[:workspace_sid]}/Workers/RealTimeStatistics"
82
+ end
83
+
84
+ ##
85
+ # Fetch a WorkersRealTimeStatisticsInstance
86
+ # @param [String] task_channel The task_channel
87
+ # @return [WorkersRealTimeStatisticsInstance] Fetched WorkersRealTimeStatisticsInstance
88
+ def fetch(task_channel: :unset)
89
+ params = Twilio::Values.of({
90
+ 'TaskChannel' => task_channel,
91
+ })
92
+
93
+ payload = @version.fetch(
94
+ 'GET',
95
+ @uri,
96
+ params,
97
+ )
98
+
99
+ WorkersRealTimeStatisticsInstance.new(
100
+ @version,
101
+ payload,
102
+ workspace_sid: @solution[:workspace_sid],
103
+ )
104
+ end
105
+
106
+ ##
107
+ # Provide a user friendly representation
108
+ def to_s
109
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
110
+ "#<Twilio.Taskrouter.V1.WorkersRealTimeStatisticsContext #{context}>"
111
+ end
112
+ end
113
+
114
+ class WorkersRealTimeStatisticsInstance < InstanceResource
115
+ ##
116
+ # Initialize the WorkersRealTimeStatisticsInstance
117
+ # @param [Version] version Version that contains the resource
118
+ # @param [Hash] payload payload that contains response from Twilio
119
+ # @param [String] workspace_sid The workspace_sid
120
+ # @return [WorkersRealTimeStatisticsInstance] WorkersRealTimeStatisticsInstance
121
+ def initialize(version, payload, workspace_sid: nil)
122
+ super(version)
123
+
124
+ # Marshaled Properties
125
+ @properties = {
126
+ 'account_sid' => payload['account_sid'],
127
+ 'activity_statistics' => payload['activity_statistics'],
128
+ 'total_workers' => payload['total_workers'].to_i,
129
+ 'workspace_sid' => payload['workspace_sid'],
130
+ 'url' => payload['url'],
131
+ }
132
+
133
+ # Context
134
+ @instance_context = nil
135
+ @params = {
136
+ 'workspace_sid' => workspace_sid,
137
+ }
138
+ end
139
+
140
+ ##
141
+ # Generate an instance context for the instance, the context is capable of
142
+ # performing various actions. All instance actions are proxied to the context
143
+ # @return [WorkersRealTimeStatisticsContext] WorkersRealTimeStatisticsContext for this WorkersRealTimeStatisticsInstance
144
+ def context
145
+ unless @instance_context
146
+ @instance_context = WorkersRealTimeStatisticsContext.new(
147
+ @version,
148
+ @params['workspace_sid'],
149
+ )
150
+ end
151
+ @instance_context
152
+ end
153
+
154
+ ##
155
+ # @return [String] The account_sid
156
+ def account_sid
157
+ @properties['account_sid']
158
+ end
159
+
160
+ ##
161
+ # @return [Hash] The activity_statistics
162
+ def activity_statistics
163
+ @properties['activity_statistics']
164
+ end
165
+
166
+ ##
167
+ # @return [String] The total_workers
168
+ def total_workers
169
+ @properties['total_workers']
170
+ end
171
+
172
+ ##
173
+ # @return [String] The workspace_sid
174
+ def workspace_sid
175
+ @properties['workspace_sid']
176
+ end
177
+
178
+ ##
179
+ # @return [String] The url
180
+ def url
181
+ @properties['url']
182
+ end
183
+
184
+ ##
185
+ # Fetch a WorkersRealTimeStatisticsInstance
186
+ # @param [String] task_channel The task_channel
187
+ # @return [WorkersRealTimeStatisticsInstance] Fetched WorkersRealTimeStatisticsInstance
188
+ def fetch(task_channel: :unset)
189
+ context.fetch(
190
+ task_channel: task_channel,
191
+ )
192
+ end
193
+
194
+ ##
195
+ # Provide a user friendly representation
196
+ def to_s
197
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
198
+ "<Twilio.Taskrouter.V1.WorkersRealTimeStatisticsInstance #{values}>"
199
+ end
200
+
201
+ ##
202
+ # Provide a detailed, user friendly representation
203
+ def inspect
204
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
205
+ "<Twilio.Taskrouter.V1.WorkersRealTimeStatisticsInstance #{values}>"
206
+ end
207
+ end
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ end
@@ -89,8 +89,9 @@ module Twilio
89
89
  # @param [String] task_queue_sid The task_queue_sid
90
90
  # @param [String] task_queue_name The task_queue_name
91
91
  # @param [String] friendly_name The friendly_name
92
+ # @param [String] task_channel The task_channel
92
93
  # @return [WorkersStatisticsInstance] Fetched WorkersStatisticsInstance
93
- def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_queue_sid: :unset, task_queue_name: :unset, friendly_name: :unset)
94
+ def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_queue_sid: :unset, task_queue_name: :unset, friendly_name: :unset, task_channel: :unset)
94
95
  params = Twilio::Values.of({
95
96
  'Minutes' => minutes,
96
97
  'StartDate' => Twilio.serialize_iso8601_datetime(start_date),
@@ -98,6 +99,7 @@ module Twilio
98
99
  'TaskQueueSid' => task_queue_sid,
99
100
  'TaskQueueName' => task_queue_name,
100
101
  'FriendlyName' => friendly_name,
102
+ 'TaskChannel' => task_channel,
101
103
  })
102
104
 
103
105
  payload = @version.fetch(
@@ -133,9 +135,9 @@ module Twilio
133
135
 
134
136
  # Marshaled Properties
135
137
  @properties = {
136
- 'account_sid' => payload['account_sid'],
137
- 'cumulative' => payload['cumulative'],
138
138
  'realtime' => payload['realtime'],
139
+ 'cumulative' => payload['cumulative'],
140
+ 'account_sid' => payload['account_sid'],
139
141
  'workspace_sid' => payload['workspace_sid'],
140
142
  'url' => payload['url'],
141
143
  }
@@ -162,9 +164,9 @@ module Twilio
162
164
  end
163
165
 
164
166
  ##
165
- # @return [String] The account_sid
166
- def account_sid
167
- @properties['account_sid']
167
+ # @return [Hash] The realtime
168
+ def realtime
169
+ @properties['realtime']
168
170
  end
169
171
 
170
172
  ##
@@ -174,9 +176,9 @@ module Twilio
174
176
  end
175
177
 
176
178
  ##
177
- # @return [Hash] The realtime
178
- def realtime
179
- @properties['realtime']
179
+ # @return [String] The account_sid
180
+ def account_sid
181
+ @properties['account_sid']
180
182
  end
181
183
 
182
184
  ##
@@ -199,8 +201,9 @@ module Twilio
199
201
  # @param [String] task_queue_sid The task_queue_sid
200
202
  # @param [String] task_queue_name The task_queue_name
201
203
  # @param [String] friendly_name The friendly_name
204
+ # @param [String] task_channel The task_channel
202
205
  # @return [WorkersStatisticsInstance] Fetched WorkersStatisticsInstance
203
- def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_queue_sid: :unset, task_queue_name: :unset, friendly_name: :unset)
206
+ def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_queue_sid: :unset, task_queue_name: :unset, friendly_name: :unset, task_channel: :unset)
204
207
  context.fetch(
205
208
  minutes: minutes,
206
209
  start_date: start_date,
@@ -208,6 +211,7 @@ module Twilio
208
211
  task_queue_sid: task_queue_sid,
209
212
  task_queue_name: task_queue_name,
210
213
  friendly_name: friendly_name,
214
+ task_channel: task_channel,
211
215
  )
212
216
  end
213
217
 
@@ -211,6 +211,8 @@ module Twilio
211
211
 
212
212
  # Dependents
213
213
  @statistics = nil
214
+ @workflow_real_time_statistics = nil
215
+ @workflow_cumulative_statistics = nil
214
216
  end
215
217
 
216
218
  ##
@@ -284,6 +286,30 @@ module Twilio
284
286
  )
285
287
  end
286
288
 
289
+ ##
290
+ # Access the workflow_real_time_statistics
291
+ # @return [WorkflowRealTimeStatisticsList]
292
+ # @return [WorkflowRealTimeStatisticsContext]
293
+ def workflow_real_time_statistics
294
+ WorkflowRealTimeStatisticsContext.new(
295
+ @version,
296
+ @solution[:workspace_sid],
297
+ @solution[:sid],
298
+ )
299
+ end
300
+
301
+ ##
302
+ # Access the workflow_cumulative_statistics
303
+ # @return [WorkflowCumulativeStatisticsList]
304
+ # @return [WorkflowCumulativeStatisticsContext]
305
+ def workflow_cumulative_statistics
306
+ WorkflowCumulativeStatisticsContext.new(
307
+ @version,
308
+ @solution[:workspace_sid],
309
+ @solution[:sid],
310
+ )
311
+ end
312
+
287
313
  ##
288
314
  # Provide a user friendly representation
289
315
  def to_s
@@ -461,6 +487,20 @@ module Twilio
461
487
  context.statistics
462
488
  end
463
489
 
490
+ ##
491
+ # Access the workflow_real_time_statistics
492
+ # @return [workflow_real_time_statistics] workflow_real_time_statistics
493
+ def workflow_real_time_statistics
494
+ context.workflow_real_time_statistics
495
+ end
496
+
497
+ ##
498
+ # Access the workflow_cumulative_statistics
499
+ # @return [workflow_cumulative_statistics] workflow_cumulative_statistics
500
+ def workflow_cumulative_statistics
501
+ context.workflow_cumulative_statistics
502
+ end
503
+
464
504
  ##
465
505
  # Provide a user friendly representation
466
506
  def to_s
@@ -0,0 +1,357 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Taskrouter < Domain
10
+ class V1 < Version
11
+ class WorkspaceContext < InstanceContext
12
+ class WorkflowContext < InstanceContext
13
+ class WorkflowCumulativeStatisticsList < ListResource
14
+ ##
15
+ # Initialize the WorkflowCumulativeStatisticsList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] workspace_sid The workspace_sid
18
+ # @param [String] workflow_sid The workflow_sid
19
+ # @return [WorkflowCumulativeStatisticsList] WorkflowCumulativeStatisticsList
20
+ def initialize(version, workspace_sid: nil, workflow_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {
25
+ workspace_sid: workspace_sid,
26
+ workflow_sid: workflow_sid
27
+ }
28
+ end
29
+
30
+ ##
31
+ # Provide a user friendly representation
32
+ def to_s
33
+ '#<Twilio.Taskrouter.V1.WorkflowCumulativeStatisticsList>'
34
+ end
35
+ end
36
+
37
+ class WorkflowCumulativeStatisticsPage < Page
38
+ ##
39
+ # Initialize the WorkflowCumulativeStatisticsPage
40
+ # @param [Version] version Version that contains the resource
41
+ # @param [Response] response Response from the API
42
+ # @param [Hash] solution Path solution for the resource
43
+ # @return [WorkflowCumulativeStatisticsPage] WorkflowCumulativeStatisticsPage
44
+ def initialize(version, response, solution)
45
+ super(version, response)
46
+
47
+ # Path Solution
48
+ @solution = solution
49
+ end
50
+
51
+ ##
52
+ # Build an instance of WorkflowCumulativeStatisticsInstance
53
+ # @param [Hash] payload Payload response from the API
54
+ # @return [WorkflowCumulativeStatisticsInstance] WorkflowCumulativeStatisticsInstance
55
+ def get_instance(payload)
56
+ WorkflowCumulativeStatisticsInstance.new(
57
+ @version,
58
+ payload,
59
+ workspace_sid: @solution[:workspace_sid],
60
+ workflow_sid: @solution[:workflow_sid],
61
+ )
62
+ end
63
+
64
+ ##
65
+ # Provide a user friendly representation
66
+ def to_s
67
+ '<Twilio.Taskrouter.V1.WorkflowCumulativeStatisticsPage>'
68
+ end
69
+ end
70
+
71
+ class WorkflowCumulativeStatisticsContext < InstanceContext
72
+ ##
73
+ # Initialize the WorkflowCumulativeStatisticsContext
74
+ # @param [Version] version Version that contains the resource
75
+ # @param [String] workspace_sid The workspace_sid
76
+ # @param [String] workflow_sid The workflow_sid
77
+ # @return [WorkflowCumulativeStatisticsContext] WorkflowCumulativeStatisticsContext
78
+ def initialize(version, workspace_sid, workflow_sid)
79
+ super(version)
80
+
81
+ # Path Solution
82
+ @solution = {
83
+ workspace_sid: workspace_sid,
84
+ workflow_sid: workflow_sid,
85
+ }
86
+ @uri = "/Workspaces/#{@solution[:workspace_sid]}/Workflows/#{@solution[:workflow_sid]}/CumulativeStatistics"
87
+ end
88
+
89
+ ##
90
+ # Fetch a WorkflowCumulativeStatisticsInstance
91
+ # @param [Time] end_date The end_date
92
+ # @param [String] minutes The minutes
93
+ # @param [Time] start_date The start_date
94
+ # @param [String] task_channel The task_channel
95
+ # @param [String] split_by_wait_time The split_by_wait_time
96
+ # @return [WorkflowCumulativeStatisticsInstance] Fetched WorkflowCumulativeStatisticsInstance
97
+ def fetch(end_date: :unset, minutes: :unset, start_date: :unset, task_channel: :unset, split_by_wait_time: :unset)
98
+ params = Twilio::Values.of({
99
+ 'EndDate' => Twilio.serialize_iso8601_datetime(end_date),
100
+ 'Minutes' => minutes,
101
+ 'StartDate' => Twilio.serialize_iso8601_datetime(start_date),
102
+ 'TaskChannel' => task_channel,
103
+ 'SplitByWaitTime' => split_by_wait_time,
104
+ })
105
+
106
+ payload = @version.fetch(
107
+ 'GET',
108
+ @uri,
109
+ params,
110
+ )
111
+
112
+ WorkflowCumulativeStatisticsInstance.new(
113
+ @version,
114
+ payload,
115
+ workspace_sid: @solution[:workspace_sid],
116
+ workflow_sid: @solution[:workflow_sid],
117
+ )
118
+ end
119
+
120
+ ##
121
+ # Provide a user friendly representation
122
+ def to_s
123
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
124
+ "#<Twilio.Taskrouter.V1.WorkflowCumulativeStatisticsContext #{context}>"
125
+ end
126
+ end
127
+
128
+ class WorkflowCumulativeStatisticsInstance < InstanceResource
129
+ ##
130
+ # Initialize the WorkflowCumulativeStatisticsInstance
131
+ # @param [Version] version Version that contains the resource
132
+ # @param [Hash] payload payload that contains response from Twilio
133
+ # @param [String] workspace_sid The workspace_sid
134
+ # @param [String] workflow_sid The workflow_sid
135
+ # @return [WorkflowCumulativeStatisticsInstance] WorkflowCumulativeStatisticsInstance
136
+ def initialize(version, payload, workspace_sid: nil, workflow_sid: nil)
137
+ super(version)
138
+
139
+ # Marshaled Properties
140
+ @properties = {
141
+ 'account_sid' => payload['account_sid'],
142
+ 'avg_task_acceptance_time' => payload['avg_task_acceptance_time'].to_i,
143
+ 'start_time' => Twilio.deserialize_iso8601_datetime(payload['start_time']),
144
+ 'end_time' => Twilio.deserialize_iso8601_datetime(payload['end_time']),
145
+ 'reservations_created' => payload['reservations_created'].to_i,
146
+ 'reservations_accepted' => payload['reservations_accepted'].to_i,
147
+ 'reservations_rejected' => payload['reservations_rejected'].to_i,
148
+ 'reservations_timed_out' => payload['reservations_timed_out'].to_i,
149
+ 'reservations_canceled' => payload['reservations_canceled'].to_i,
150
+ 'reservations_rescinded' => payload['reservations_rescinded'].to_i,
151
+ 'split_by_wait_time' => payload['split_by_wait_time'],
152
+ 'wait_duration_until_accepted' => payload['wait_duration_until_accepted'],
153
+ 'wait_duration_until_canceled' => payload['wait_duration_until_canceled'],
154
+ 'tasks_canceled' => payload['tasks_canceled'].to_i,
155
+ 'tasks_completed' => payload['tasks_completed'].to_i,
156
+ 'tasks_entered' => payload['tasks_entered'].to_i,
157
+ 'tasks_deleted' => payload['tasks_deleted'].to_i,
158
+ 'tasks_moved' => payload['tasks_moved'].to_i,
159
+ 'tasks_timed_out_in_workflow' => payload['tasks_timed_out_in_workflow'].to_i,
160
+ 'workflow_sid' => payload['workflow_sid'],
161
+ 'workspace_sid' => payload['workspace_sid'],
162
+ 'url' => payload['url'],
163
+ }
164
+
165
+ # Context
166
+ @instance_context = nil
167
+ @params = {
168
+ 'workspace_sid' => workspace_sid,
169
+ 'workflow_sid' => workflow_sid,
170
+ }
171
+ end
172
+
173
+ ##
174
+ # Generate an instance context for the instance, the context is capable of
175
+ # performing various actions. All instance actions are proxied to the context
176
+ # @return [WorkflowCumulativeStatisticsContext] WorkflowCumulativeStatisticsContext for this WorkflowCumulativeStatisticsInstance
177
+ def context
178
+ unless @instance_context
179
+ @instance_context = WorkflowCumulativeStatisticsContext.new(
180
+ @version,
181
+ @params['workspace_sid'],
182
+ @params['workflow_sid'],
183
+ )
184
+ end
185
+ @instance_context
186
+ end
187
+
188
+ ##
189
+ # @return [String] The account_sid
190
+ def account_sid
191
+ @properties['account_sid']
192
+ end
193
+
194
+ ##
195
+ # @return [String] The avg_task_acceptance_time
196
+ def avg_task_acceptance_time
197
+ @properties['avg_task_acceptance_time']
198
+ end
199
+
200
+ ##
201
+ # @return [Time] The start_time
202
+ def start_time
203
+ @properties['start_time']
204
+ end
205
+
206
+ ##
207
+ # @return [Time] The end_time
208
+ def end_time
209
+ @properties['end_time']
210
+ end
211
+
212
+ ##
213
+ # @return [String] The reservations_created
214
+ def reservations_created
215
+ @properties['reservations_created']
216
+ end
217
+
218
+ ##
219
+ # @return [String] The reservations_accepted
220
+ def reservations_accepted
221
+ @properties['reservations_accepted']
222
+ end
223
+
224
+ ##
225
+ # @return [String] The reservations_rejected
226
+ def reservations_rejected
227
+ @properties['reservations_rejected']
228
+ end
229
+
230
+ ##
231
+ # @return [String] The reservations_timed_out
232
+ def reservations_timed_out
233
+ @properties['reservations_timed_out']
234
+ end
235
+
236
+ ##
237
+ # @return [String] The reservations_canceled
238
+ def reservations_canceled
239
+ @properties['reservations_canceled']
240
+ end
241
+
242
+ ##
243
+ # @return [String] The reservations_rescinded
244
+ def reservations_rescinded
245
+ @properties['reservations_rescinded']
246
+ end
247
+
248
+ ##
249
+ # @return [Hash] The split_by_wait_time
250
+ def split_by_wait_time
251
+ @properties['split_by_wait_time']
252
+ end
253
+
254
+ ##
255
+ # @return [Hash] The wait_duration_until_accepted
256
+ def wait_duration_until_accepted
257
+ @properties['wait_duration_until_accepted']
258
+ end
259
+
260
+ ##
261
+ # @return [Hash] The wait_duration_until_canceled
262
+ def wait_duration_until_canceled
263
+ @properties['wait_duration_until_canceled']
264
+ end
265
+
266
+ ##
267
+ # @return [String] The tasks_canceled
268
+ def tasks_canceled
269
+ @properties['tasks_canceled']
270
+ end
271
+
272
+ ##
273
+ # @return [String] The tasks_completed
274
+ def tasks_completed
275
+ @properties['tasks_completed']
276
+ end
277
+
278
+ ##
279
+ # @return [String] The tasks_entered
280
+ def tasks_entered
281
+ @properties['tasks_entered']
282
+ end
283
+
284
+ ##
285
+ # @return [String] The tasks_deleted
286
+ def tasks_deleted
287
+ @properties['tasks_deleted']
288
+ end
289
+
290
+ ##
291
+ # @return [String] The tasks_moved
292
+ def tasks_moved
293
+ @properties['tasks_moved']
294
+ end
295
+
296
+ ##
297
+ # @return [String] The tasks_timed_out_in_workflow
298
+ def tasks_timed_out_in_workflow
299
+ @properties['tasks_timed_out_in_workflow']
300
+ end
301
+
302
+ ##
303
+ # @return [String] The workflow_sid
304
+ def workflow_sid
305
+ @properties['workflow_sid']
306
+ end
307
+
308
+ ##
309
+ # @return [String] The workspace_sid
310
+ def workspace_sid
311
+ @properties['workspace_sid']
312
+ end
313
+
314
+ ##
315
+ # @return [String] The url
316
+ def url
317
+ @properties['url']
318
+ end
319
+
320
+ ##
321
+ # Fetch a WorkflowCumulativeStatisticsInstance
322
+ # @param [Time] end_date The end_date
323
+ # @param [String] minutes The minutes
324
+ # @param [Time] start_date The start_date
325
+ # @param [String] task_channel The task_channel
326
+ # @param [String] split_by_wait_time The split_by_wait_time
327
+ # @return [WorkflowCumulativeStatisticsInstance] Fetched WorkflowCumulativeStatisticsInstance
328
+ def fetch(end_date: :unset, minutes: :unset, start_date: :unset, task_channel: :unset, split_by_wait_time: :unset)
329
+ context.fetch(
330
+ end_date: end_date,
331
+ minutes: minutes,
332
+ start_date: start_date,
333
+ task_channel: task_channel,
334
+ split_by_wait_time: split_by_wait_time,
335
+ )
336
+ end
337
+
338
+ ##
339
+ # Provide a user friendly representation
340
+ def to_s
341
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
342
+ "<Twilio.Taskrouter.V1.WorkflowCumulativeStatisticsInstance #{values}>"
343
+ end
344
+
345
+ ##
346
+ # Provide a detailed, user friendly representation
347
+ def inspect
348
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
349
+ "<Twilio.Taskrouter.V1.WorkflowCumulativeStatisticsInstance #{values}>"
350
+ end
351
+ end
352
+ end
353
+ end
354
+ end
355
+ end
356
+ end
357
+ end