twilio-api-sdk 1.0.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 (278) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +213 -0
  4. data/bin/console +15 -0
  5. data/lib/twilio_ap_is/api_helper.rb +10 -0
  6. data/lib/twilio_ap_is/apis/accounts_v1_auth_token_promotion_api.rb +27 -0
  7. data/lib/twilio_ap_is/apis/accounts_v1_aws_api.rb +137 -0
  8. data/lib/twilio_ap_is/apis/accounts_v1_bulk_consents_api.rb +41 -0
  9. data/lib/twilio_ap_is/apis/accounts_v1_bulk_contacts_api.rb +36 -0
  10. data/lib/twilio_ap_is/apis/accounts_v1_messaging_geopermissions_api.rb +54 -0
  11. data/lib/twilio_ap_is/apis/accounts_v1_public_key_api.rb +136 -0
  12. data/lib/twilio_ap_is/apis/accounts_v1_safelist_api.rb +69 -0
  13. data/lib/twilio_ap_is/apis/accounts_v1_secondary_auth_token_api.rb +39 -0
  14. data/lib/twilio_ap_is/apis/base_api.rb +67 -0
  15. data/lib/twilio_ap_is/apis/chat_v3_channel_api.rb +51 -0
  16. data/lib/twilio_ap_is/apis/conversations_v1_address_configuration_api.rb +218 -0
  17. data/lib/twilio_ap_is/apis/conversations_v1_binding_api.rb +116 -0
  18. data/lib/twilio_ap_is/apis/conversations_v1_configuration_api.rb +133 -0
  19. data/lib/twilio_ap_is/apis/conversations_v1_conversation_api.rb +550 -0
  20. data/lib/twilio_ap_is/apis/conversations_v1_conversation_with_participants_api.rb +182 -0
  21. data/lib/twilio_ap_is/apis/conversations_v1_credential_api.rb +189 -0
  22. data/lib/twilio_ap_is/apis/conversations_v1_delivery_receipt_api.rb +183 -0
  23. data/lib/twilio_ap_is/apis/conversations_v1_message_api.rb +497 -0
  24. data/lib/twilio_ap_is/apis/conversations_v1_notification_api.rb +124 -0
  25. data/lib/twilio_ap_is/apis/conversations_v1_participant_api.rb +546 -0
  26. data/lib/twilio_ap_is/apis/conversations_v1_participant_conversation_api.rb +99 -0
  27. data/lib/twilio_ap_is/apis/conversations_v1_role_api.rb +325 -0
  28. data/lib/twilio_ap_is/apis/conversations_v1_service_api.rb +98 -0
  29. data/lib/twilio_ap_is/apis/conversations_v1_user_api.rb +364 -0
  30. data/lib/twilio_ap_is/apis/conversations_v1_user_conversation_api.rb +335 -0
  31. data/lib/twilio_ap_is/apis/conversations_v1_webhook_api.rb +561 -0
  32. data/lib/twilio_ap_is/apis/notify_v1_binding_api.rb +186 -0
  33. data/lib/twilio_ap_is/apis/notify_v1_credential_api.rb +183 -0
  34. data/lib/twilio_ap_is/apis/notify_v1_notification_api.rb +174 -0
  35. data/lib/twilio_ap_is/apis/notify_v1_service_api.rb +262 -0
  36. data/lib/twilio_ap_is/apis/taskrouter_v1_activity_api.rb +177 -0
  37. data/lib/twilio_ap_is/apis/taskrouter_v1_event_api.rb +125 -0
  38. data/lib/twilio_ap_is/apis/taskrouter_v1_task_api.rb +310 -0
  39. data/lib/twilio_ap_is/apis/taskrouter_v1_task_channel_api.rb +173 -0
  40. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queue_api.rb +232 -0
  41. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queue_bulk_real_time_statistics_api.rb +36 -0
  42. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queue_cumulative_statistics_api.rb +63 -0
  43. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queue_real_time_statistics_api.rb +41 -0
  44. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queue_statistics_api.rb +63 -0
  45. data/lib/twilio_ap_is/apis/taskrouter_v1_task_queues_statistics_api.rb +72 -0
  46. data/lib/twilio_ap_is/apis/taskrouter_v1_task_reservation_api.rb +396 -0
  47. data/lib/twilio_ap_is/apis/taskrouter_v1_worker_api.rb +232 -0
  48. data/lib/twilio_ap_is/apis/taskrouter_v1_worker_channel_api.rb +126 -0
  49. data/lib/twilio_ap_is/apis/taskrouter_v1_worker_reservation_api.rb +385 -0
  50. data/lib/twilio_ap_is/apis/taskrouter_v1_worker_statistics_api.rb +57 -0
  51. data/lib/twilio_ap_is/apis/taskrouter_v1_workers_cumulative_statistics_api.rb +51 -0
  52. data/lib/twilio_ap_is/apis/taskrouter_v1_workers_real_time_statistics_api.rb +35 -0
  53. data/lib/twilio_ap_is/apis/taskrouter_v1_workers_statistics_api.rb +63 -0
  54. data/lib/twilio_ap_is/apis/taskrouter_v1_workflow_api.rb +213 -0
  55. data/lib/twilio_ap_is/apis/taskrouter_v1_workflow_cumulative_statistics_api.rb +68 -0
  56. data/lib/twilio_ap_is/apis/taskrouter_v1_workflow_real_time_statistics_api.rb +41 -0
  57. data/lib/twilio_ap_is/apis/taskrouter_v1_workflow_statistics_api.rb +67 -0
  58. data/lib/twilio_ap_is/apis/taskrouter_v1_workspace_api.rb +225 -0
  59. data/lib/twilio_ap_is/apis/taskrouter_v1_workspace_cumulative_statistics_api.rb +62 -0
  60. data/lib/twilio_ap_is/apis/taskrouter_v1_workspace_real_time_statistics_api.rb +35 -0
  61. data/lib/twilio_ap_is/apis/taskrouter_v1_workspace_statistics_api.rb +61 -0
  62. data/lib/twilio_ap_is/apis/verify_v2_service_api.rb +178 -0
  63. data/lib/twilio_ap_is/apis/verify_v2_verification_api.rb +143 -0
  64. data/lib/twilio_ap_is/apis/verify_v2_verification_check_api.rb +61 -0
  65. data/lib/twilio_ap_is/client.rb +417 -0
  66. data/lib/twilio_ap_is/configuration.rb +187 -0
  67. data/lib/twilio_ap_is/exceptions/api_exception.rb +21 -0
  68. data/lib/twilio_ap_is/exceptions/v2_services_verifications429_error_exception.rb +63 -0
  69. data/lib/twilio_ap_is/http/api_response.rb +19 -0
  70. data/lib/twilio_ap_is/http/auth/basic_auth.rb +62 -0
  71. data/lib/twilio_ap_is/http/http_call_back.rb +10 -0
  72. data/lib/twilio_ap_is/http/http_method_enum.rb +10 -0
  73. data/lib/twilio_ap_is/http/http_request.rb +10 -0
  74. data/lib/twilio_ap_is/http/http_response.rb +10 -0
  75. data/lib/twilio_ap_is/http/proxy_settings.rb +22 -0
  76. data/lib/twilio_ap_is/logging/configuration/api_logging_configuration.rb +186 -0
  77. data/lib/twilio_ap_is/logging/sdk_logger.rb +17 -0
  78. data/lib/twilio_ap_is/models/access_token.rb +188 -0
  79. data/lib/twilio_ap_is/models/access_token_enum_factor_types.rb +26 -0
  80. data/lib/twilio_ap_is/models/activity.rb +189 -0
  81. data/lib/twilio_ap_is/models/auth_token_promotion.rb +142 -0
  82. data/lib/twilio_ap_is/models/base_model.rb +110 -0
  83. data/lib/twilio_ap_is/models/binding.rb +269 -0
  84. data/lib/twilio_ap_is/models/binding_binding_type.rb +53 -0
  85. data/lib/twilio_ap_is/models/bucket.rb +186 -0
  86. data/lib/twilio_ap_is/models/bulk_consents.rb +83 -0
  87. data/lib/twilio_ap_is/models/bulk_contacts.rb +83 -0
  88. data/lib/twilio_ap_is/models/challenge.rb +317 -0
  89. data/lib/twilio_ap_is/models/challenge_enum_challenge_reasons.rb +41 -0
  90. data/lib/twilio_ap_is/models/challenge_enum_challenge_statuses.rb +45 -0
  91. data/lib/twilio_ap_is/models/challenge_enum_factor_types.rb +41 -0
  92. data/lib/twilio_ap_is/models/channel.rb +249 -0
  93. data/lib/twilio_ap_is/models/channel_channel_type.rb +36 -0
  94. data/lib/twilio_ap_is/models/channel_webhook_enabled_type.rb +36 -0
  95. data/lib/twilio_ap_is/models/configuration.rb +164 -0
  96. data/lib/twilio_ap_is/models/configuration_address.rb +199 -0
  97. data/lib/twilio_ap_is/models/configuration_address_auto_creation_type.rb +40 -0
  98. data/lib/twilio_ap_is/models/configuration_address_method.rb +36 -0
  99. data/lib/twilio_ap_is/models/configuration_address_type.rb +60 -0
  100. data/lib/twilio_ap_is/models/configuration_webhook.rb +154 -0
  101. data/lib/twilio_ap_is/models/configuration_webhook_method.rb +46 -0
  102. data/lib/twilio_ap_is/models/configuration_webhook_target.rb +37 -0
  103. data/lib/twilio_ap_is/models/conversation.rb +264 -0
  104. data/lib/twilio_ap_is/models/conversation_message.rb +268 -0
  105. data/lib/twilio_ap_is/models/conversation_message_order_type.rb +36 -0
  106. data/lib/twilio_ap_is/models/conversation_message_receipt.rb +219 -0
  107. data/lib/twilio_ap_is/models/conversation_message_receipt_delivery_status.rb +49 -0
  108. data/lib/twilio_ap_is/models/conversation_participant.rb +240 -0
  109. data/lib/twilio_ap_is/models/conversation_scoped_webhook.rb +178 -0
  110. data/lib/twilio_ap_is/models/conversation_scoped_webhook_method.rb +36 -0
  111. data/lib/twilio_ap_is/models/conversation_scoped_webhook_target.rb +40 -0
  112. data/lib/twilio_ap_is/models/conversation_state.rb +45 -0
  113. data/lib/twilio_ap_is/models/conversation_webhook_method.rb +36 -0
  114. data/lib/twilio_ap_is/models/conversation_webhook_target.rb +37 -0
  115. data/lib/twilio_ap_is/models/conversation_with_participants.rb +264 -0
  116. data/lib/twilio_ap_is/models/conversation_with_participants_state.rb +45 -0
  117. data/lib/twilio_ap_is/models/credential.rb +175 -0
  118. data/lib/twilio_ap_is/models/credential1.rb +174 -0
  119. data/lib/twilio_ap_is/models/credential_aws.rb +153 -0
  120. data/lib/twilio_ap_is/models/credential_public_key.rb +153 -0
  121. data/lib/twilio_ap_is/models/credential_push_type.rb +41 -0
  122. data/lib/twilio_ap_is/models/entity.rb +177 -0
  123. data/lib/twilio_ap_is/models/event.rb +270 -0
  124. data/lib/twilio_ap_is/models/factor.rb +235 -0
  125. data/lib/twilio_ap_is/models/factor_enum_factor_statuses.rb +36 -0
  126. data/lib/twilio_ap_is/models/factor_enum_factor_type.rb +40 -0
  127. data/lib/twilio_ap_is/models/factor_enum_notification_platforms.rb +40 -0
  128. data/lib/twilio_ap_is/models/factor_enum_totp_algorithms.rb +40 -0
  129. data/lib/twilio_ap_is/models/form_enum_form_types.rb +26 -0
  130. data/lib/twilio_ap_is/models/list_activity_response.rb +94 -0
  131. data/lib/twilio_ap_is/models/list_binding_response.rb +94 -0
  132. data/lib/twilio_ap_is/models/list_configuration_address_response.rb +95 -0
  133. data/lib/twilio_ap_is/models/list_conversation_message_receipt_response.rb +95 -0
  134. data/lib/twilio_ap_is/models/list_conversation_message_response.rb +94 -0
  135. data/lib/twilio_ap_is/models/list_conversation_participant_response.rb +94 -0
  136. data/lib/twilio_ap_is/models/list_conversation_response.rb +94 -0
  137. data/lib/twilio_ap_is/models/list_conversation_scoped_webhook_response.rb +94 -0
  138. data/lib/twilio_ap_is/models/list_credential_aws_response.rb +94 -0
  139. data/lib/twilio_ap_is/models/list_credential_public_key_response.rb +94 -0
  140. data/lib/twilio_ap_is/models/list_credential_response.rb +94 -0
  141. data/lib/twilio_ap_is/models/list_event_response.rb +94 -0
  142. data/lib/twilio_ap_is/models/list_participant_conversation_response.rb +94 -0
  143. data/lib/twilio_ap_is/models/list_role_response.rb +94 -0
  144. data/lib/twilio_ap_is/models/list_service_binding_response.rb +94 -0
  145. data/lib/twilio_ap_is/models/list_service_conversation_message_receipt_response.rb +95 -0
  146. data/lib/twilio_ap_is/models/list_service_conversation_message_response.rb +94 -0
  147. data/lib/twilio_ap_is/models/list_service_conversation_participant_response.rb +94 -0
  148. data/lib/twilio_ap_is/models/list_service_conversation_response.rb +94 -0
  149. data/lib/twilio_ap_is/models/list_service_conversation_scoped_webhook_response.rb +94 -0
  150. data/lib/twilio_ap_is/models/list_service_participant_conversation_response.rb +94 -0
  151. data/lib/twilio_ap_is/models/list_service_response.rb +94 -0
  152. data/lib/twilio_ap_is/models/list_service_role_response.rb +94 -0
  153. data/lib/twilio_ap_is/models/list_service_user_conversation_response.rb +94 -0
  154. data/lib/twilio_ap_is/models/list_service_user_response.rb +94 -0
  155. data/lib/twilio_ap_is/models/list_task_channel_response.rb +94 -0
  156. data/lib/twilio_ap_is/models/list_task_queue_response.rb +94 -0
  157. data/lib/twilio_ap_is/models/list_task_queues_statistics_response.rb +95 -0
  158. data/lib/twilio_ap_is/models/list_task_reservation_response.rb +94 -0
  159. data/lib/twilio_ap_is/models/list_task_response.rb +94 -0
  160. data/lib/twilio_ap_is/models/list_user_conversation_response.rb +94 -0
  161. data/lib/twilio_ap_is/models/list_user_response.rb +94 -0
  162. data/lib/twilio_ap_is/models/list_worker_channel_response.rb +94 -0
  163. data/lib/twilio_ap_is/models/list_worker_reservation_response.rb +94 -0
  164. data/lib/twilio_ap_is/models/list_worker_response.rb +94 -0
  165. data/lib/twilio_ap_is/models/list_workflow_response.rb +94 -0
  166. data/lib/twilio_ap_is/models/list_workspace_response.rb +94 -0
  167. data/lib/twilio_ap_is/models/messaging_configuration.rb +170 -0
  168. data/lib/twilio_ap_is/models/meta.rb +140 -0
  169. data/lib/twilio_ap_is/models/msg_geopermissions.rb +86 -0
  170. data/lib/twilio_ap_is/models/new_factor.rb +277 -0
  171. data/lib/twilio_ap_is/models/new_factor_enum_factor_statuses.rb +36 -0
  172. data/lib/twilio_ap_is/models/new_factor_enum_factor_types.rb +40 -0
  173. data/lib/twilio_ap_is/models/new_factor_enum_notification_platforms.rb +40 -0
  174. data/lib/twilio_ap_is/models/new_factor_enum_totp_algorithms.rb +40 -0
  175. data/lib/twilio_ap_is/models/notif_priority.rb +43 -0
  176. data/lib/twilio_ap_is/models/notification.rb +363 -0
  177. data/lib/twilio_ap_is/models/notification1.rb +181 -0
  178. data/lib/twilio_ap_is/models/participant_conversation.rb +325 -0
  179. data/lib/twilio_ap_is/models/participant_conversation_state.rb +41 -0
  180. data/lib/twilio_ap_is/models/rate_limit.rb +189 -0
  181. data/lib/twilio_ap_is/models/role.rb +192 -0
  182. data/lib/twilio_ap_is/models/role_role_type.rb +40 -0
  183. data/lib/twilio_ap_is/models/safelist.rb +88 -0
  184. data/lib/twilio_ap_is/models/safelist1.rb +99 -0
  185. data/lib/twilio_ap_is/models/secondary_auth_token.rb +145 -0
  186. data/lib/twilio_ap_is/models/service.rb +164 -0
  187. data/lib/twilio_ap_is/models/service1.rb +380 -0
  188. data/lib/twilio_ap_is/models/service2.rb +350 -0
  189. data/lib/twilio_ap_is/models/service_binding.rb +226 -0
  190. data/lib/twilio_ap_is/models/service_binding_binding_type.rb +47 -0
  191. data/lib/twilio_ap_is/models/service_configuration.rb +180 -0
  192. data/lib/twilio_ap_is/models/service_conversation.rb +264 -0
  193. data/lib/twilio_ap_is/models/service_conversation_message.rb +282 -0
  194. data/lib/twilio_ap_is/models/service_conversation_message_order_type.rb +36 -0
  195. data/lib/twilio_ap_is/models/service_conversation_message_receipt.rb +233 -0
  196. data/lib/twilio_ap_is/models/service_conversation_message_receipt_delivery_status.rb +49 -0
  197. data/lib/twilio_ap_is/models/service_conversation_participant.rb +256 -0
  198. data/lib/twilio_ap_is/models/service_conversation_scoped_webhook.rb +191 -0
  199. data/lib/twilio_ap_is/models/service_conversation_scoped_webhook_method.rb +36 -0
  200. data/lib/twilio_ap_is/models/service_conversation_scoped_webhook_target.rb +40 -0
  201. data/lib/twilio_ap_is/models/service_conversation_state.rb +45 -0
  202. data/lib/twilio_ap_is/models/service_conversation_with_participants.rb +264 -0
  203. data/lib/twilio_ap_is/models/service_conversation_with_participants_state.rb +45 -0
  204. data/lib/twilio_ap_is/models/service_notification.rb +155 -0
  205. data/lib/twilio_ap_is/models/service_participant_conversation.rb +325 -0
  206. data/lib/twilio_ap_is/models/service_participant_conversation_state.rb +41 -0
  207. data/lib/twilio_ap_is/models/service_role.rb +192 -0
  208. data/lib/twilio_ap_is/models/service_role_role_type.rb +40 -0
  209. data/lib/twilio_ap_is/models/service_stats_conversations_rate_limiting_errors_source.rb +36 -0
  210. data/lib/twilio_ap_is/models/service_user.rb +250 -0
  211. data/lib/twilio_ap_is/models/service_user_conversation.rb +317 -0
  212. data/lib/twilio_ap_is/models/service_user_conversation_notification_level.rb +37 -0
  213. data/lib/twilio_ap_is/models/service_user_conversation_state.rb +41 -0
  214. data/lib/twilio_ap_is/models/service_webhook_configuration.rb +160 -0
  215. data/lib/twilio_ap_is/models/service_webhook_configuration_method.rb +37 -0
  216. data/lib/twilio_ap_is/models/stats_twilsock_rate_limiting_errors_source.rb +26 -0
  217. data/lib/twilio_ap_is/models/task_channel.rb +204 -0
  218. data/lib/twilio_ap_is/models/task_queue.rb +278 -0
  219. data/lib/twilio_ap_is/models/task_queue_bulk_real_time_statistics.rb +141 -0
  220. data/lib/twilio_ap_is/models/task_queue_cumulative.rb +356 -0
  221. data/lib/twilio_ap_is/models/task_queue_real_time_statistics.rb +250 -0
  222. data/lib/twilio_ap_is/models/task_queue_statistics.rb +135 -0
  223. data/lib/twilio_ap_is/models/task_queue_task_order.rb +40 -0
  224. data/lib/twilio_ap_is/models/task_queues_stats.rb +124 -0
  225. data/lib/twilio_ap_is/models/task_reservation.rb +210 -0
  226. data/lib/twilio_ap_is/models/task_reservation_call_status.rb +44 -0
  227. data/lib/twilio_ap_is/models/task_reservation_conference_event.rb +56 -0
  228. data/lib/twilio_ap_is/models/task_reservation_status.rb +61 -0
  229. data/lib/twilio_ap_is/models/task_reservation_supervisor_mode.rb +40 -0
  230. data/lib/twilio_ap_is/models/task_router_task.rb +394 -0
  231. data/lib/twilio_ap_is/models/task_status.rb +53 -0
  232. data/lib/twilio_ap_is/models/user.rb +250 -0
  233. data/lib/twilio_ap_is/models/user_binding_binding_type.rb +52 -0
  234. data/lib/twilio_ap_is/models/user_conversation.rb +317 -0
  235. data/lib/twilio_ap_is/models/user_conversation_notification_level.rb +37 -0
  236. data/lib/twilio_ap_is/models/user_conversation_state.rb +41 -0
  237. data/lib/twilio_ap_is/models/v2_form.rb +112 -0
  238. data/lib/twilio_ap_is/models/verification.rb +262 -0
  239. data/lib/twilio_ap_is/models/verification_attempt.rb +219 -0
  240. data/lib/twilio_ap_is/models/verification_attempt_enum_attempt_status.rb +40 -0
  241. data/lib/twilio_ap_is/models/verification_attempt_enum_call_status.rb +60 -0
  242. data/lib/twilio_ap_is/models/verification_attempt_enum_channels.rb +49 -0
  243. data/lib/twilio_ap_is/models/verification_attempt_enum_conversion_status.rb +38 -0
  244. data/lib/twilio_ap_is/models/verification_attempt_enum_message_status.rb +80 -0
  245. data/lib/twilio_ap_is/models/verification_attempts.rb +129 -0
  246. data/lib/twilio_ap_is/models/verification_attempts_summary_enum_channels.rb +48 -0
  247. data/lib/twilio_ap_is/models/verification_check.rb +231 -0
  248. data/lib/twilio_ap_is/models/verification_check_enum_channel.rb +50 -0
  249. data/lib/twilio_ap_is/models/verification_enum_channel.rb +50 -0
  250. data/lib/twilio_ap_is/models/verification_enum_risk_check.rb +39 -0
  251. data/lib/twilio_ap_is/models/verification_enum_status.rb +37 -0
  252. data/lib/twilio_ap_is/models/verification_template.rb +126 -0
  253. data/lib/twilio_ap_is/models/webhook.rb +222 -0
  254. data/lib/twilio_ap_is/models/webhook_enum_status.rb +37 -0
  255. data/lib/twilio_ap_is/models/webhook_enum_version.rb +37 -0
  256. data/lib/twilio_ap_is/models/worker.rb +247 -0
  257. data/lib/twilio_ap_is/models/worker_channel.rb +244 -0
  258. data/lib/twilio_ap_is/models/worker_instance_statistics.rb +122 -0
  259. data/lib/twilio_ap_is/models/worker_reservation.rb +210 -0
  260. data/lib/twilio_ap_is/models/worker_reservation_call_status.rb +44 -0
  261. data/lib/twilio_ap_is/models/worker_reservation_conference_event.rb +56 -0
  262. data/lib/twilio_ap_is/models/worker_reservation_status.rb +61 -0
  263. data/lib/twilio_ap_is/models/worker_statistics.rb +122 -0
  264. data/lib/twilio_ap_is/models/workers_cumulative_statistics.rb +221 -0
  265. data/lib/twilio_ap_is/models/workers_real_time_statistics.rb +124 -0
  266. data/lib/twilio_ap_is/models/workflow.rb +247 -0
  267. data/lib/twilio_ap_is/models/workflow_cumulative_statistics.rb +347 -0
  268. data/lib/twilio_ap_is/models/workflow_real_time_statistics.rb +173 -0
  269. data/lib/twilio_ap_is/models/workflow_statistics.rb +135 -0
  270. data/lib/twilio_ap_is/models/workspace.rb +285 -0
  271. data/lib/twilio_ap_is/models/workspace_cumulative_statistics.rb +334 -0
  272. data/lib/twilio_ap_is/models/workspace_queue_order.rb +40 -0
  273. data/lib/twilio_ap_is/models/workspace_real_time_statistics.rb +185 -0
  274. data/lib/twilio_ap_is/models/workspace_statistics.rb +122 -0
  275. data/lib/twilio_ap_is/utilities/date_time_helper.rb +11 -0
  276. data/lib/twilio_ap_is/utilities/file_wrapper.rb +28 -0
  277. data/lib/twilio_ap_is.rb +326 -0
  278. metadata +361 -0
@@ -0,0 +1,135 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # TaskQueueStatistics Model.
8
+ class TaskQueueStatistics < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that
13
+ # created the TaskQueue resource.
14
+ # @return [String]
15
+ attr_accessor :account_sid
16
+
17
+ # An object that contains the cumulative statistics for the TaskQueue.
18
+ # @return [Object]
19
+ attr_accessor :cumulative
20
+
21
+ # An object that contains the real-time statistics for the TaskQueue.
22
+ # @return [Object]
23
+ attr_accessor :realtime
24
+
25
+ # The SID of the TaskQueue from which these statistics were calculated.
26
+ # @return [String]
27
+ attr_accessor :task_queue_sid
28
+
29
+ # The SID of the Workspace that contains the TaskQueue.
30
+ # @return [String]
31
+ attr_accessor :workspace_sid
32
+
33
+ # The absolute URL of the TaskQueue statistics resource.
34
+ # @return [String]
35
+ attr_accessor :url
36
+
37
+ # A mapping from model property names to API property names.
38
+ def self.names
39
+ @_hash = {} if @_hash.nil?
40
+ @_hash['account_sid'] = 'account_sid'
41
+ @_hash['cumulative'] = 'cumulative'
42
+ @_hash['realtime'] = 'realtime'
43
+ @_hash['task_queue_sid'] = 'task_queue_sid'
44
+ @_hash['workspace_sid'] = 'workspace_sid'
45
+ @_hash['url'] = 'url'
46
+ @_hash
47
+ end
48
+
49
+ # An array for optional fields
50
+ def self.optionals
51
+ %w[
52
+ account_sid
53
+ cumulative
54
+ realtime
55
+ task_queue_sid
56
+ workspace_sid
57
+ url
58
+ ]
59
+ end
60
+
61
+ # An array for nullable fields
62
+ def self.nullables
63
+ %w[
64
+ account_sid
65
+ cumulative
66
+ realtime
67
+ task_queue_sid
68
+ workspace_sid
69
+ url
70
+ ]
71
+ end
72
+
73
+ def initialize(account_sid: SKIP, cumulative: SKIP, realtime: SKIP,
74
+ task_queue_sid: SKIP, workspace_sid: SKIP, url: SKIP,
75
+ additional_properties: nil)
76
+ # Add additional model properties to the instance
77
+ additional_properties = {} if additional_properties.nil?
78
+
79
+ @account_sid = account_sid unless account_sid == SKIP
80
+ @cumulative = cumulative unless cumulative == SKIP
81
+ @realtime = realtime unless realtime == SKIP
82
+ @task_queue_sid = task_queue_sid unless task_queue_sid == SKIP
83
+ @workspace_sid = workspace_sid unless workspace_sid == SKIP
84
+ @url = url unless url == SKIP
85
+ @additional_properties = additional_properties
86
+ end
87
+
88
+ # Creates an instance of the object from a hash.
89
+ def self.from_hash(hash)
90
+ return nil unless hash
91
+
92
+ # Extract variables from the hash.
93
+ account_sid = hash.key?('account_sid') ? hash['account_sid'] : SKIP
94
+ cumulative = hash.key?('cumulative') ? hash['cumulative'] : SKIP
95
+ realtime = hash.key?('realtime') ? hash['realtime'] : SKIP
96
+ task_queue_sid =
97
+ hash.key?('task_queue_sid') ? hash['task_queue_sid'] : SKIP
98
+ workspace_sid = hash.key?('workspace_sid') ? hash['workspace_sid'] : SKIP
99
+ url = hash.key?('url') ? hash['url'] : SKIP
100
+
101
+ # Create a new hash for additional properties, removing known properties.
102
+ new_hash = hash.reject { |k, _| names.value?(k) }
103
+
104
+ additional_properties = APIHelper.get_additional_properties(
105
+ new_hash, proc { |value| value }
106
+ )
107
+
108
+ # Create object from extracted values.
109
+ TaskQueueStatistics.new(account_sid: account_sid,
110
+ cumulative: cumulative,
111
+ realtime: realtime,
112
+ task_queue_sid: task_queue_sid,
113
+ workspace_sid: workspace_sid,
114
+ url: url,
115
+ additional_properties: additional_properties)
116
+ end
117
+
118
+ # Provides a human-readable string representation of the object.
119
+ def to_s
120
+ class_name = self.class.name.split('::').last
121
+ "<#{class_name} account_sid: #{@account_sid}, cumulative: #{@cumulative}, realtime:"\
122
+ " #{@realtime}, task_queue_sid: #{@task_queue_sid}, workspace_sid: #{@workspace_sid}, url:"\
123
+ " #{@url}, additional_properties: #{@additional_properties}>"
124
+ end
125
+
126
+ # Provides a debugging-friendly string with detailed object information.
127
+ def inspect
128
+ class_name = self.class.name.split('::').last
129
+ "<#{class_name} account_sid: #{@account_sid.inspect}, cumulative: #{@cumulative.inspect},"\
130
+ " realtime: #{@realtime.inspect}, task_queue_sid: #{@task_queue_sid.inspect}, workspace_sid:"\
131
+ " #{@workspace_sid.inspect}, url: #{@url.inspect}, additional_properties:"\
132
+ " #{@additional_properties}>"
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,40 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # How Tasks will be assigned to Workers. Set this parameter to `LIFO` to
8
+ # assign most recently created Task first or `FIFO` to assign the oldest Task.
9
+ # Default is FIFO. [Click
10
+ # here](https://www.twilio.com/docs/taskrouter/queue-ordering-last-first-out-l
11
+ # ifo) to learn more.
12
+ class TaskQueueTaskOrder
13
+ TASK_QUEUE_TASK_ORDER = [
14
+ # TODO: Write general description for FIFO
15
+ FIFO = 'FIFO'.freeze,
16
+
17
+ # TODO: Write general description for LIFO
18
+ LIFO = 'LIFO'.freeze
19
+ ].freeze
20
+
21
+ def self.validate(value)
22
+ return false if value.nil?
23
+
24
+ TASK_QUEUE_TASK_ORDER.include?(value)
25
+ end
26
+
27
+ def self.from_value(value, default_value = FIFO)
28
+ return default_value if value.nil?
29
+
30
+ str = value.to_s.strip
31
+
32
+ case str.downcase
33
+ when 'fifo' then FIFO
34
+ when 'lifo' then LIFO
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,124 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # TaskQueuesStats Model.
8
+ class TaskQueuesStats < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that
13
+ # created the TaskQueue resource.
14
+ # @return [String]
15
+ attr_accessor :account_sid
16
+
17
+ # An object that contains the cumulative statistics for the TaskQueues.
18
+ # @return [Object]
19
+ attr_accessor :cumulative
20
+
21
+ # An object that contains the real-time statistics for the TaskQueues.
22
+ # @return [Object]
23
+ attr_accessor :realtime
24
+
25
+ # The SID of the TaskQueue from which these statistics were calculated.
26
+ # @return [String]
27
+ attr_accessor :task_queue_sid
28
+
29
+ # The SID of the Workspace that contains the TaskQueues.
30
+ # @return [String]
31
+ attr_accessor :workspace_sid
32
+
33
+ # A mapping from model property names to API property names.
34
+ def self.names
35
+ @_hash = {} if @_hash.nil?
36
+ @_hash['account_sid'] = 'account_sid'
37
+ @_hash['cumulative'] = 'cumulative'
38
+ @_hash['realtime'] = 'realtime'
39
+ @_hash['task_queue_sid'] = 'task_queue_sid'
40
+ @_hash['workspace_sid'] = 'workspace_sid'
41
+ @_hash
42
+ end
43
+
44
+ # An array for optional fields
45
+ def self.optionals
46
+ %w[
47
+ account_sid
48
+ cumulative
49
+ realtime
50
+ task_queue_sid
51
+ workspace_sid
52
+ ]
53
+ end
54
+
55
+ # An array for nullable fields
56
+ def self.nullables
57
+ %w[
58
+ account_sid
59
+ cumulative
60
+ realtime
61
+ task_queue_sid
62
+ workspace_sid
63
+ ]
64
+ end
65
+
66
+ def initialize(account_sid: SKIP, cumulative: SKIP, realtime: SKIP,
67
+ task_queue_sid: SKIP, workspace_sid: SKIP,
68
+ additional_properties: nil)
69
+ # Add additional model properties to the instance
70
+ additional_properties = {} if additional_properties.nil?
71
+
72
+ @account_sid = account_sid unless account_sid == SKIP
73
+ @cumulative = cumulative unless cumulative == SKIP
74
+ @realtime = realtime unless realtime == SKIP
75
+ @task_queue_sid = task_queue_sid unless task_queue_sid == SKIP
76
+ @workspace_sid = workspace_sid unless workspace_sid == SKIP
77
+ @additional_properties = additional_properties
78
+ end
79
+
80
+ # Creates an instance of the object from a hash.
81
+ def self.from_hash(hash)
82
+ return nil unless hash
83
+
84
+ # Extract variables from the hash.
85
+ account_sid = hash.key?('account_sid') ? hash['account_sid'] : SKIP
86
+ cumulative = hash.key?('cumulative') ? hash['cumulative'] : SKIP
87
+ realtime = hash.key?('realtime') ? hash['realtime'] : SKIP
88
+ task_queue_sid =
89
+ hash.key?('task_queue_sid') ? hash['task_queue_sid'] : SKIP
90
+ workspace_sid = hash.key?('workspace_sid') ? hash['workspace_sid'] : SKIP
91
+
92
+ # Create a new hash for additional properties, removing known properties.
93
+ new_hash = hash.reject { |k, _| names.value?(k) }
94
+
95
+ additional_properties = APIHelper.get_additional_properties(
96
+ new_hash, proc { |value| value }
97
+ )
98
+
99
+ # Create object from extracted values.
100
+ TaskQueuesStats.new(account_sid: account_sid,
101
+ cumulative: cumulative,
102
+ realtime: realtime,
103
+ task_queue_sid: task_queue_sid,
104
+ workspace_sid: workspace_sid,
105
+ additional_properties: additional_properties)
106
+ end
107
+
108
+ # Provides a human-readable string representation of the object.
109
+ def to_s
110
+ class_name = self.class.name.split('::').last
111
+ "<#{class_name} account_sid: #{@account_sid}, cumulative: #{@cumulative}, realtime:"\
112
+ " #{@realtime}, task_queue_sid: #{@task_queue_sid}, workspace_sid: #{@workspace_sid},"\
113
+ " additional_properties: #{@additional_properties}>"
114
+ end
115
+
116
+ # Provides a debugging-friendly string with detailed object information.
117
+ def inspect
118
+ class_name = self.class.name.split('::').last
119
+ "<#{class_name} account_sid: #{@account_sid.inspect}, cumulative: #{@cumulative.inspect},"\
120
+ " realtime: #{@realtime.inspect}, task_queue_sid: #{@task_queue_sid.inspect}, workspace_sid:"\
121
+ " #{@workspace_sid.inspect}, additional_properties: #{@additional_properties}>"
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,210 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module TwilioApIs
8
+ # TaskReservation Model.
9
+ class TaskReservation < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that
14
+ # created the TaskReservation resource.
15
+ # @return [String]
16
+ attr_accessor :account_sid
17
+
18
+ # The date and time in GMT when the resource was created specified in [ISO
19
+ # 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
20
+ # @return [DateTime]
21
+ attr_accessor :date_created
22
+
23
+ # The date and time in GMT when the resource was last updated specified in
24
+ # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
25
+ # @return [DateTime]
26
+ attr_accessor :date_updated
27
+
28
+ # The current status of the reservation. Can be: `pending`, `accepted`,
29
+ # `rejected`, or `timeout`.
30
+ # @return [TaskReservationStatus]
31
+ attr_accessor :reservation_status
32
+
33
+ # The unique string that we created to identify the TaskReservation
34
+ # resource.
35
+ # @return [String]
36
+ attr_accessor :sid
37
+
38
+ # The SID of the reserved Task resource.
39
+ # @return [String]
40
+ attr_accessor :task_sid
41
+
42
+ # The `friendly_name` of the Worker that is reserved.
43
+ # @return [String]
44
+ attr_accessor :worker_name
45
+
46
+ # The SID of the reserved Worker resource.
47
+ # @return [String]
48
+ attr_accessor :worker_sid
49
+
50
+ # The SID of the Workspace that this task is contained within.
51
+ # @return [String]
52
+ attr_accessor :workspace_sid
53
+
54
+ # The absolute URL of the TaskReservation reservation.
55
+ # @return [String]
56
+ attr_accessor :url
57
+
58
+ # The URLs of related resources.
59
+ # @return [Object]
60
+ attr_accessor :links
61
+
62
+ # A mapping from model property names to API property names.
63
+ def self.names
64
+ @_hash = {} if @_hash.nil?
65
+ @_hash['account_sid'] = 'account_sid'
66
+ @_hash['date_created'] = 'date_created'
67
+ @_hash['date_updated'] = 'date_updated'
68
+ @_hash['reservation_status'] = 'reservation_status'
69
+ @_hash['sid'] = 'sid'
70
+ @_hash['task_sid'] = 'task_sid'
71
+ @_hash['worker_name'] = 'worker_name'
72
+ @_hash['worker_sid'] = 'worker_sid'
73
+ @_hash['workspace_sid'] = 'workspace_sid'
74
+ @_hash['url'] = 'url'
75
+ @_hash['links'] = 'links'
76
+ @_hash
77
+ end
78
+
79
+ # An array for optional fields
80
+ def self.optionals
81
+ %w[
82
+ account_sid
83
+ date_created
84
+ date_updated
85
+ reservation_status
86
+ sid
87
+ task_sid
88
+ worker_name
89
+ worker_sid
90
+ workspace_sid
91
+ url
92
+ links
93
+ ]
94
+ end
95
+
96
+ # An array for nullable fields
97
+ def self.nullables
98
+ %w[
99
+ account_sid
100
+ date_created
101
+ date_updated
102
+ sid
103
+ task_sid
104
+ worker_name
105
+ worker_sid
106
+ workspace_sid
107
+ url
108
+ links
109
+ ]
110
+ end
111
+
112
+ def initialize(account_sid: SKIP, date_created: SKIP, date_updated: SKIP,
113
+ reservation_status: SKIP, sid: SKIP, task_sid: SKIP,
114
+ worker_name: SKIP, worker_sid: SKIP, workspace_sid: SKIP,
115
+ url: SKIP, links: SKIP, additional_properties: nil)
116
+ # Add additional model properties to the instance
117
+ additional_properties = {} if additional_properties.nil?
118
+
119
+ @account_sid = account_sid unless account_sid == SKIP
120
+ @date_created = date_created unless date_created == SKIP
121
+ @date_updated = date_updated unless date_updated == SKIP
122
+ @reservation_status = reservation_status unless reservation_status == SKIP
123
+ @sid = sid unless sid == SKIP
124
+ @task_sid = task_sid unless task_sid == SKIP
125
+ @worker_name = worker_name unless worker_name == SKIP
126
+ @worker_sid = worker_sid unless worker_sid == SKIP
127
+ @workspace_sid = workspace_sid unless workspace_sid == SKIP
128
+ @url = url unless url == SKIP
129
+ @links = links unless links == SKIP
130
+ @additional_properties = additional_properties
131
+ end
132
+
133
+ # Creates an instance of the object from a hash.
134
+ def self.from_hash(hash)
135
+ return nil unless hash
136
+
137
+ # Extract variables from the hash.
138
+ account_sid = hash.key?('account_sid') ? hash['account_sid'] : SKIP
139
+ date_created = if hash.key?('date_created')
140
+ (DateTimeHelper.from_rfc3339(hash['date_created']) if hash['date_created'])
141
+ else
142
+ SKIP
143
+ end
144
+ date_updated = if hash.key?('date_updated')
145
+ (DateTimeHelper.from_rfc3339(hash['date_updated']) if hash['date_updated'])
146
+ else
147
+ SKIP
148
+ end
149
+ reservation_status =
150
+ hash.key?('reservation_status') ? hash['reservation_status'] : SKIP
151
+ sid = hash.key?('sid') ? hash['sid'] : SKIP
152
+ task_sid = hash.key?('task_sid') ? hash['task_sid'] : SKIP
153
+ worker_name = hash.key?('worker_name') ? hash['worker_name'] : SKIP
154
+ worker_sid = hash.key?('worker_sid') ? hash['worker_sid'] : SKIP
155
+ workspace_sid = hash.key?('workspace_sid') ? hash['workspace_sid'] : SKIP
156
+ url = hash.key?('url') ? hash['url'] : SKIP
157
+ links = hash.key?('links') ? hash['links'] : SKIP
158
+
159
+ # Create a new hash for additional properties, removing known properties.
160
+ new_hash = hash.reject { |k, _| names.value?(k) }
161
+
162
+ additional_properties = APIHelper.get_additional_properties(
163
+ new_hash, proc { |value| value }
164
+ )
165
+
166
+ # Create object from extracted values.
167
+ TaskReservation.new(account_sid: account_sid,
168
+ date_created: date_created,
169
+ date_updated: date_updated,
170
+ reservation_status: reservation_status,
171
+ sid: sid,
172
+ task_sid: task_sid,
173
+ worker_name: worker_name,
174
+ worker_sid: worker_sid,
175
+ workspace_sid: workspace_sid,
176
+ url: url,
177
+ links: links,
178
+ additional_properties: additional_properties)
179
+ end
180
+
181
+ def to_custom_date_created
182
+ DateTimeHelper.to_rfc3339(date_created)
183
+ end
184
+
185
+ def to_custom_date_updated
186
+ DateTimeHelper.to_rfc3339(date_updated)
187
+ end
188
+
189
+ # Provides a human-readable string representation of the object.
190
+ def to_s
191
+ class_name = self.class.name.split('::').last
192
+ "<#{class_name} account_sid: #{@account_sid}, date_created: #{@date_created}, date_updated:"\
193
+ " #{@date_updated}, reservation_status: #{@reservation_status}, sid: #{@sid}, task_sid:"\
194
+ " #{@task_sid}, worker_name: #{@worker_name}, worker_sid: #{@worker_sid}, workspace_sid:"\
195
+ " #{@workspace_sid}, url: #{@url}, links: #{@links}, additional_properties:"\
196
+ " #{@additional_properties}>"
197
+ end
198
+
199
+ # Provides a debugging-friendly string with detailed object information.
200
+ def inspect
201
+ class_name = self.class.name.split('::').last
202
+ "<#{class_name} account_sid: #{@account_sid.inspect}, date_created:"\
203
+ " #{@date_created.inspect}, date_updated: #{@date_updated.inspect}, reservation_status:"\
204
+ " #{@reservation_status.inspect}, sid: #{@sid.inspect}, task_sid: #{@task_sid.inspect},"\
205
+ " worker_name: #{@worker_name.inspect}, worker_sid: #{@worker_sid.inspect}, workspace_sid:"\
206
+ " #{@workspace_sid.inspect}, url: #{@url.inspect}, links: #{@links.inspect},"\
207
+ " additional_properties: #{@additional_properties}>"
208
+ end
209
+ end
210
+ end
@@ -0,0 +1,44 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # TaskReservationCallStatus.
8
+ class TaskReservationCallStatus
9
+ TASK_RESERVATION_CALL_STATUS = [
10
+ # TODO: Write general description for INITIATED
11
+ INITIATED = 'initiated'.freeze,
12
+
13
+ # TODO: Write general description for RINGING
14
+ RINGING = 'ringing'.freeze,
15
+
16
+ # TODO: Write general description for ANSWERED
17
+ ANSWERED = 'answered'.freeze,
18
+
19
+ # TODO: Write general description for COMPLETED
20
+ COMPLETED = 'completed'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ TASK_RESERVATION_CALL_STATUS.include?(value)
27
+ end
28
+
29
+ def self.from_value(value, default_value = INITIATED)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'initiated' then INITIATED
36
+ when 'ringing' then RINGING
37
+ when 'answered' then ANSWERED
38
+ when 'completed' then COMPLETED
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,56 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # TaskReservationConferenceEvent.
8
+ class TaskReservationConferenceEvent
9
+ TASK_RESERVATION_CONFERENCE_EVENT = [
10
+ # TODO: Write general description for START
11
+ START = 'start'.freeze,
12
+
13
+ # TODO: Write general description for ENUM_END
14
+ ENUM_END = 'end'.freeze,
15
+
16
+ # TODO: Write general description for JOIN
17
+ JOIN = 'join'.freeze,
18
+
19
+ # TODO: Write general description for LEAVE
20
+ LEAVE = 'leave'.freeze,
21
+
22
+ # TODO: Write general description for MUTE
23
+ MUTE = 'mute'.freeze,
24
+
25
+ # TODO: Write general description for HOLD
26
+ HOLD = 'hold'.freeze,
27
+
28
+ # TODO: Write general description for SPEAKER
29
+ SPEAKER = 'speaker'.freeze
30
+ ].freeze
31
+
32
+ def self.validate(value)
33
+ return false if value.nil?
34
+
35
+ TASK_RESERVATION_CONFERENCE_EVENT.include?(value)
36
+ end
37
+
38
+ def self.from_value(value, default_value = START)
39
+ return default_value if value.nil?
40
+
41
+ str = value.to_s.strip
42
+
43
+ case str.downcase
44
+ when 'start' then START
45
+ when 'enum_end' then ENUM_END
46
+ when 'join' then JOIN
47
+ when 'leave' then LEAVE
48
+ when 'mute' then MUTE
49
+ when 'hold' then HOLD
50
+ when 'speaker' then SPEAKER
51
+ else
52
+ default_value
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,61 @@
1
+ # twilio_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module TwilioApIs
7
+ # The current status of the reservation. Can be: `pending`, `accepted`,
8
+ # `rejected`, or `timeout`.
9
+ class TaskReservationStatus
10
+ TASK_RESERVATION_STATUS = [
11
+ # TODO: Write general description for PENDING
12
+ PENDING = 'pending'.freeze,
13
+
14
+ # TODO: Write general description for ACCEPTED
15
+ ACCEPTED = 'accepted'.freeze,
16
+
17
+ # TODO: Write general description for REJECTED
18
+ REJECTED = 'rejected'.freeze,
19
+
20
+ # TODO: Write general description for TIMEOUT
21
+ TIMEOUT = 'timeout'.freeze,
22
+
23
+ # TODO: Write general description for CANCELED
24
+ CANCELED = 'canceled'.freeze,
25
+
26
+ # TODO: Write general description for RESCINDED
27
+ RESCINDED = 'rescinded'.freeze,
28
+
29
+ # TODO: Write general description for WRAPPING
30
+ WRAPPING = 'wrapping'.freeze,
31
+
32
+ # TODO: Write general description for COMPLETED
33
+ COMPLETED = 'completed'.freeze
34
+ ].freeze
35
+
36
+ def self.validate(value)
37
+ return false if value.nil?
38
+
39
+ TASK_RESERVATION_STATUS.include?(value)
40
+ end
41
+
42
+ def self.from_value(value, default_value = PENDING)
43
+ return default_value if value.nil?
44
+
45
+ str = value.to_s.strip
46
+
47
+ case str.downcase
48
+ when 'pending' then PENDING
49
+ when 'accepted' then ACCEPTED
50
+ when 'rejected' then REJECTED
51
+ when 'timeout' then TIMEOUT
52
+ when 'canceled' then CANCELED
53
+ when 'rescinded' then RESCINDED
54
+ when 'wrapping' then WRAPPING
55
+ when 'completed' then COMPLETED
56
+ else
57
+ default_value
58
+ end
59
+ end
60
+ end
61
+ end