twilio-ruby 3.11.5 → 5.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 (435) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.rubocop.yml +21 -0
  4. data/.rubocop_todo.yml +187 -0
  5. data/.travis.yml +10 -10
  6. data/AUTHORS.md +21 -0
  7. data/CHANGES.md +351 -0
  8. data/Gemfile +8 -1
  9. data/{LICENSE → LICENSE.md} +13 -11
  10. data/Makefile +15 -3
  11. data/README.md +90 -95
  12. data/Rakefile +59 -7
  13. data/VERSIONS.md +64 -0
  14. data/examples/examples.rb +62 -49
  15. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  16. data/lib/rack/twilio_webhook_authentication.rb +46 -0
  17. data/lib/twilio-ruby/framework/domain.rb +34 -0
  18. data/lib/twilio-ruby/framework/error.rb +30 -0
  19. data/lib/twilio-ruby/framework/helper.rb +9 -0
  20. data/lib/twilio-ruby/framework/page.rb +101 -0
  21. data/lib/twilio-ruby/framework/resource.rb +21 -0
  22. data/lib/twilio-ruby/framework/serialize.rb +70 -0
  23. data/lib/twilio-ruby/framework/twilio_response.rb +15 -0
  24. data/lib/twilio-ruby/framework/values.rb +7 -0
  25. data/lib/twilio-ruby/framework/version.rb +164 -0
  26. data/lib/twilio-ruby/http/http_client.rb +46 -0
  27. data/lib/twilio-ruby/jwt/access_token.rb +232 -0
  28. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  29. data/lib/twilio-ruby/jwt/jwt.rb +50 -0
  30. data/lib/twilio-ruby/jwt/task_router.rb +174 -0
  31. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
  32. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
  33. data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
  34. data/lib/twilio-ruby/rest/accounts.rb +36 -9
  35. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +620 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +331 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +389 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +389 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +389 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +370 -0
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +296 -0
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +427 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +379 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +799 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +455 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +413 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +445 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +445 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +445 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +786 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +165 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +355 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +153 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +153 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +418 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +377 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +438 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +378 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +397 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +430 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +395 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +361 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +361 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +570 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +406 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +424 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +174 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +168 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +366 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +304 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +304 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +304 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +304 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +304 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +304 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +304 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +304 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +507 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +127 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
  94. data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
  95. data/lib/twilio-ruby/rest/api.rb +234 -0
  96. data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +386 -0
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -0
  99. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -0
  100. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -0
  101. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -0
  102. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
  103. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
  104. data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
  105. data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
  106. data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +386 -0
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +431 -0
  109. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +447 -0
  110. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -0
  111. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -0
  112. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
  113. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
  114. data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
  115. data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
  116. data/lib/twilio-ruby/rest/chat.rb +59 -0
  117. data/lib/twilio-ruby/rest/client.rb +307 -215
  118. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
  119. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +386 -0
  120. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -0
  121. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -0
  122. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -0
  123. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -0
  124. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
  125. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
  126. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
  127. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
  128. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
  129. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +386 -0
  130. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +431 -0
  131. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +447 -0
  132. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -0
  133. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -0
  134. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
  135. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
  136. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
  137. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
  138. data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
  139. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
  140. data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
  141. data/lib/twilio-ruby/rest/lookups.rb +44 -0
  142. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -0
  143. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -0
  144. data/lib/twilio-ruby/rest/monitor/v1.rb +56 -0
  145. data/lib/twilio-ruby/rest/monitor.rb +52 -0
  146. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
  147. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
  148. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
  149. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
  150. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +291 -0
  151. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +208 -0
  152. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -0
  153. data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
  154. data/lib/twilio-ruby/rest/pricing.rb +54 -0
  155. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +399 -0
  156. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +418 -0
  157. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
  158. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +584 -0
  159. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
  160. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -0
  161. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +243 -0
  162. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -0
  163. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +461 -0
  164. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +406 -0
  165. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +223 -0
  166. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +226 -0
  167. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +585 -0
  168. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +475 -0
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -0
  172. data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
  173. data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
  174. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +345 -0
  175. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +345 -0
  176. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +430 -0
  177. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +478 -0
  178. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -0
  179. data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
  180. data/lib/twilio-ruby/rest/trunking.rb +44 -0
  181. data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
  182. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
  183. data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
  184. data/lib/twilio-ruby/rest/video/v1.rb +56 -0
  185. data/lib/twilio-ruby/rest/video.rb +52 -0
  186. data/lib/twilio-ruby/security/request_validator.rb +54 -0
  187. data/lib/twilio-ruby/twiml/messaging_response.rb +141 -0
  188. data/lib/twilio-ruby/twiml/twiml.rb +69 -0
  189. data/lib/twilio-ruby/twiml/voice_response.rb +916 -0
  190. data/lib/twilio-ruby/util/configuration.rb +7 -0
  191. data/lib/twilio-ruby/util.rb +1 -1
  192. data/lib/twilio-ruby/version.rb +1 -1
  193. data/lib/twilio-ruby.rb +52 -49
  194. data/spec/framework/serialize_spec.rb +59 -0
  195. data/spec/holodeck/holodeck.rb +61 -0
  196. data/spec/holodeck/hologram.rb +4 -0
  197. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  198. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  199. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +90 -0
  200. data/spec/integration/api/v2010/account/address_spec.rb +267 -0
  201. data/spec/integration/api/v2010/account/application_spec.rb +286 -0
  202. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +137 -0
  203. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +101 -0
  204. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +100 -0
  205. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +100 -0
  206. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +128 -0
  207. data/spec/integration/api/v2010/account/call/feedback_spec.rb +141 -0
  208. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +149 -0
  209. data/spec/integration/api/v2010/account/call/notification_spec.rb +179 -0
  210. data/spec/integration/api/v2010/account/call/recording_spec.rb +178 -0
  211. data/spec/integration/api/v2010/account/call_spec.rb +319 -0
  212. data/spec/integration/api/v2010/account/conference/participant_spec.rb +283 -0
  213. data/spec/integration/api/v2010/account/conference_spec.rb +174 -0
  214. data/spec/integration/api/v2010/account/connect_app_spec.rb +177 -0
  215. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +181 -0
  216. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +181 -0
  217. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +181 -0
  218. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +331 -0
  219. data/spec/integration/api/v2010/account/key_spec.rb +178 -0
  220. data/spec/integration/api/v2010/account/message/feedback_spec.rb +48 -0
  221. data/spec/integration/api/v2010/account/message/media_spec.rb +162 -0
  222. data/spec/integration/api/v2010/account/message_spec.rb +297 -0
  223. data/spec/integration/api/v2010/account/new_key_spec.rb +45 -0
  224. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +45 -0
  225. data/spec/integration/api/v2010/account/notification_spec.rb +172 -0
  226. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +193 -0
  227. data/spec/integration/api/v2010/account/queue/member_spec.rb +170 -0
  228. data/spec/integration/api/v2010/account/queue_spec.rb +242 -0
  229. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  230. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  231. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +174 -0
  232. data/spec/integration/api/v2010/account/recording_spec.rb +179 -0
  233. data/spec/integration/api/v2010/account/short_code_spec.rb +180 -0
  234. data/spec/integration/api/v2010/account/signing_key_spec.rb +178 -0
  235. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +257 -0
  236. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +246 -0
  237. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +210 -0
  238. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +220 -0
  239. data/spec/integration/api/v2010/account/sip/domain_spec.rb +283 -0
  240. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +261 -0
  241. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +256 -0
  242. data/spec/integration/api/v2010/account/sip_spec.rb +10 -0
  243. data/spec/integration/api/v2010/account/token_spec.rb +56 -0
  244. data/spec/integration/api/v2010/account/transcription_spec.rb +167 -0
  245. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +111 -0
  246. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +111 -0
  247. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +111 -0
  248. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +111 -0
  249. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +111 -0
  250. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +111 -0
  251. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +111 -0
  252. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +111 -0
  253. data/spec/integration/api/v2010/account/usage/record_spec.rb +108 -0
  254. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +283 -0
  255. data/spec/integration/api/v2010/account/usage_spec.rb +10 -0
  256. data/spec/integration/api/v2010/account/validation_request_spec.rb +48 -0
  257. data/spec/integration/api/v2010/account_spec.rb +254 -0
  258. data/spec/integration/chat/v1/credential_spec.rb +223 -0
  259. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  260. data/spec/integration/chat/v1/service/channel/member_spec.rb +284 -0
  261. data/spec/integration/chat/v1/service/channel/message_spec.rb +294 -0
  262. data/spec/integration/chat/v1/service/channel_spec.rb +275 -0
  263. data/spec/integration/chat/v1/service/role_spec.rb +263 -0
  264. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  265. data/spec/integration/chat/v1/service/user_spec.rb +266 -0
  266. data/spec/integration/chat/v1/service_spec.rb +299 -0
  267. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  268. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  269. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  270. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  271. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  272. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  273. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  274. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  275. data/spec/integration/chat/v2/service_spec.rb +325 -0
  276. data/spec/integration/ip_messaging/v1/credential_spec.rb +223 -0
  277. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  278. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +284 -0
  279. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +294 -0
  280. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +275 -0
  281. data/spec/integration/ip_messaging/v1/service/role_spec.rb +263 -0
  282. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  283. data/spec/integration/ip_messaging/v1/service/user_spec.rb +266 -0
  284. data/spec/integration/ip_messaging/v1/service_spec.rb +299 -0
  285. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  286. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  287. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  288. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  289. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  290. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  291. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  292. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  293. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  294. data/spec/integration/lookups/v1/phone_number_spec.rb +60 -0
  295. data/spec/integration/monitor/v1/alert_spec.rb +161 -0
  296. data/spec/integration/monitor/v1/event_spec.rb +148 -0
  297. data/spec/integration/pricing/v1/messaging/country_spec.rb +137 -0
  298. data/spec/integration/pricing/v1/messaging_spec.rb +10 -0
  299. data/spec/integration/pricing/v1/phone_number/country_spec.rb +128 -0
  300. data/spec/integration/pricing/v1/phone_number_spec.rb +10 -0
  301. data/spec/integration/pricing/v1/voice/country_spec.rb +266 -0
  302. data/spec/integration/pricing/v1/voice/number_spec.rb +54 -0
  303. data/spec/integration/pricing/v1/voice_spec.rb +10 -0
  304. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +236 -0
  305. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +157 -0
  306. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +192 -0
  307. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +127 -0
  308. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +106 -0
  309. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +144 -0
  310. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +292 -0
  311. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +324 -0
  312. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +192 -0
  313. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +201 -0
  314. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +107 -0
  315. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +141 -0
  316. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +282 -0
  317. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +69 -0
  318. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +265 -0
  319. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +103 -0
  320. data/spec/integration/taskrouter/v1/workspace_spec.rb +287 -0
  321. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +192 -0
  322. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +192 -0
  323. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +250 -0
  324. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +267 -0
  325. data/spec/integration/trunking/v1/trunk_spec.rb +276 -0
  326. data/spec/integration/video/v1/recording_spec.rb +165 -0
  327. data/spec/integration/video/v1/room/recording_spec.rb +146 -0
  328. data/spec/integration/video/v1/room_spec.rb +237 -0
  329. data/spec/jwt/access_token_spec.rb +130 -0
  330. data/spec/jwt/client_capability_spec.rb +104 -0
  331. data/spec/jwt/task_router_spec.rb +172 -0
  332. data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
  333. data/spec/security/request_validator_spec.rb +113 -0
  334. data/spec/spec_helper.rb +29 -3
  335. data/spec/support/fakeweb.rb +2 -0
  336. data/spec/twilio_spec.rb +15 -0
  337. data/spec/twiml/messaging_response_spec.rb +90 -0
  338. data/spec/twiml/voice_response_spec.rb +474 -0
  339. data/spec/util/configuration_spec.rb +15 -0
  340. data/spec/util/url_encode_spec.rb +2 -2
  341. data/twilio-ruby.gemspec +32 -26
  342. metadata +502 -152
  343. data/CHANGES +0 -47
  344. data/docs/Makefile +0 -130
  345. data/docs/_themes/LICENSE +0 -45
  346. data/docs/_themes/README.rst +0 -25
  347. data/docs/_themes/flask_theme_support.py +0 -86
  348. data/docs/_themes/kr/layout.html +0 -32
  349. data/docs/_themes/kr/relations.html +0 -19
  350. data/docs/_themes/kr/static/flasky.css_t +0 -469
  351. data/docs/_themes/kr/static/small_flask.css +0 -70
  352. data/docs/_themes/kr/theme.conf +0 -7
  353. data/docs/_themes/kr_small/layout.html +0 -22
  354. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  355. data/docs/_themes/kr_small/theme.conf +0 -10
  356. data/docs/changelog.rst +0 -1
  357. data/docs/conf.py +0 -266
  358. data/docs/faq.rst +0 -42
  359. data/docs/getting-started.rst +0 -91
  360. data/docs/index.rst +0 -109
  361. data/docs/make.bat +0 -170
  362. data/docs/src/pip-delete-this-directory.txt +0 -5
  363. data/docs/usage/accounts.rst +0 -89
  364. data/docs/usage/applications.rst +0 -108
  365. data/docs/usage/basics.rst +0 -102
  366. data/docs/usage/caller-ids.rst +0 -45
  367. data/docs/usage/conferences.rst +0 -108
  368. data/docs/usage/errors.rst +0 -29
  369. data/docs/usage/messages.rst +0 -109
  370. data/docs/usage/notifications.rst +0 -70
  371. data/docs/usage/phone-calls.rst +0 -166
  372. data/docs/usage/phone-numbers.rst +0 -174
  373. data/docs/usage/queues.rst +0 -112
  374. data/docs/usage/recordings.rst +0 -96
  375. data/docs/usage/sip.rst +0 -103
  376. data/docs/usage/token-generation.rst +0 -81
  377. data/docs/usage/transcriptions.rst +0 -31
  378. data/docs/usage/twiml.rst +0 -69
  379. data/docs/usage/validation.rst +0 -71
  380. data/lib/twilio-ruby/rest/applications.rb +0 -6
  381. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  382. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  383. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  384. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  385. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  386. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  387. data/lib/twilio-ruby/rest/calls.rb +0 -28
  388. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  389. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  390. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  391. data/lib/twilio-ruby/rest/errors.rb +0 -14
  392. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  393. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  394. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  395. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  396. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  397. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  398. data/lib/twilio-ruby/rest/media.rb +0 -14
  399. data/lib/twilio-ruby/rest/messages.rb +0 -17
  400. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  401. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  402. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  403. data/lib/twilio-ruby/rest/queues.rb +0 -12
  404. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  405. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  406. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  407. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  408. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  409. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  410. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  411. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  412. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  413. data/lib/twilio-ruby/rest/sip.rb +0 -12
  414. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  415. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  416. data/lib/twilio-ruby/rest/sms.rb +0 -11
  417. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  418. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  419. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  420. data/lib/twilio-ruby/rest/usage.rb +0 -10
  421. data/lib/twilio-ruby/rest/utils.rb +0 -25
  422. data/lib/twilio-ruby/twiml/response.rb +0 -15
  423. data/lib/twilio-ruby/util/capability.rb +0 -61
  424. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  425. data/spec/rest/account_spec.rb +0 -58
  426. data/spec/rest/call_spec.rb +0 -18
  427. data/spec/rest/client_spec.rb +0 -100
  428. data/spec/rest/conference_spec.rb +0 -9
  429. data/spec/rest/instance_resource_spec.rb +0 -15
  430. data/spec/rest/message_spec.rb +0 -12
  431. data/spec/rest/numbers_spec.rb +0 -46
  432. data/spec/rest/queue_spec.rb +0 -9
  433. data/spec/rest/recording_spec.rb +0 -9
  434. data/spec/util/capability_spec.rb +0 -137
  435. data/spec/util/request_validator_spec.rb +0 -65
@@ -0,0 +1,515 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Api < Domain
10
+ class V2010 < Version
11
+ class AccountContext < InstanceContext
12
+ class ConferenceContext < InstanceContext
13
+ class ParticipantList < ListResource
14
+ ##
15
+ # Initialize the ParticipantList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] account_sid The unique id of the Account that created this
18
+ # conference
19
+ # @param [String] conference_sid A 34 character string that identifies the
20
+ # conference this participant is in
21
+ # @return [ParticipantList] ParticipantList
22
+ def initialize(version, account_sid: nil, conference_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {
27
+ account_sid: account_sid,
28
+ conference_sid: conference_sid
29
+ }
30
+ @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants.json"
31
+ end
32
+
33
+ ##
34
+ # Retrieve a single page of ParticipantInstance records from the API.
35
+ # Request is executed immediately.
36
+ # @param [String] from The from
37
+ # @param [String] to The to
38
+ # @param [String] status_callback The status_callback
39
+ # @param [String] status_callback_method The status_callback_method
40
+ # @param [String] status_callback_event The status_callback_event
41
+ # @param [String] timeout The timeout
42
+ # @param [Boolean] record The record
43
+ # @param [Boolean] muted The muted
44
+ # @param [String] beep The beep
45
+ # @param [Boolean] start_conference_on_enter The start_conference_on_enter
46
+ # @param [Boolean] end_conference_on_exit The end_conference_on_exit
47
+ # @param [String] wait_url The wait_url
48
+ # @param [String] wait_method The wait_method
49
+ # @param [Boolean] early_media The early_media
50
+ # @param [String] max_participants The max_participants
51
+ # @param [String] conference_record The conference_record
52
+ # @param [String] conference_trim The conference_trim
53
+ # @param [String] conference_status_callback The conference_status_callback
54
+ # @param [String] conference_status_callback_method The
55
+ # conference_status_callback_method
56
+ # @param [String] conference_status_callback_event The
57
+ # conference_status_callback_event
58
+ # @param [String] recording_channels The recording_channels
59
+ # @param [String] recording_status_callback The recording_status_callback
60
+ # @param [String] recording_status_callback_method The
61
+ # recording_status_callback_method
62
+ # @param [String] sip_auth_username The sip_auth_username
63
+ # @param [String] sip_auth_password The sip_auth_password
64
+ # @param [String] region The region
65
+ # @param [String] conference_recording_status_callback The
66
+ # conference_recording_status_callback
67
+ # @param [String] conference_recording_status_callback_method The
68
+ # conference_recording_status_callback_method
69
+ # @return [ParticipantInstance] Newly created ParticipantInstance
70
+ def create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset)
71
+ data = Twilio::Values.of({
72
+ 'From' => from,
73
+ 'To' => to,
74
+ 'StatusCallback' => status_callback,
75
+ 'StatusCallbackMethod' => status_callback_method,
76
+ 'StatusCallbackEvent' => status_callback_event,
77
+ 'Timeout' => timeout,
78
+ 'Record' => record,
79
+ 'Muted' => muted,
80
+ 'Beep' => beep,
81
+ 'StartConferenceOnEnter' => start_conference_on_enter,
82
+ 'EndConferenceOnExit' => end_conference_on_exit,
83
+ 'WaitUrl' => wait_url,
84
+ 'WaitMethod' => wait_method,
85
+ 'EarlyMedia' => early_media,
86
+ 'MaxParticipants' => max_participants,
87
+ 'ConferenceRecord' => conference_record,
88
+ 'ConferenceTrim' => conference_trim,
89
+ 'ConferenceStatusCallback' => conference_status_callback,
90
+ 'ConferenceStatusCallbackMethod' => conference_status_callback_method,
91
+ 'ConferenceStatusCallbackEvent' => conference_status_callback_event,
92
+ 'RecordingChannels' => recording_channels,
93
+ 'RecordingStatusCallback' => recording_status_callback,
94
+ 'RecordingStatusCallbackMethod' => recording_status_callback_method,
95
+ 'SipAuthUsername' => sip_auth_username,
96
+ 'SipAuthPassword' => sip_auth_password,
97
+ 'Region' => region,
98
+ 'ConferenceRecordingStatusCallback' => conference_recording_status_callback,
99
+ 'ConferenceRecordingStatusCallbackMethod' => conference_recording_status_callback_method,
100
+ })
101
+
102
+ payload = @version.create(
103
+ 'POST',
104
+ @uri,
105
+ data: data
106
+ )
107
+
108
+ ParticipantInstance.new(
109
+ @version,
110
+ payload,
111
+ account_sid: @solution[:account_sid],
112
+ conference_sid: @solution[:conference_sid],
113
+ )
114
+ end
115
+
116
+ ##
117
+ # Lists ParticipantInstance records from the API as a list.
118
+ # Unlike stream(), this operation is eager and will load `limit` records into
119
+ # memory before returning.
120
+ # @param [Boolean] muted Only show participants that are muted or unmuted
121
+ # @param [Boolean] hold The hold
122
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
123
+ # guarantees to never return more than limit. Default is no limit
124
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
125
+ # the default value of 50 records. If no page_size is defined
126
+ # but a limit is defined, stream() will attempt to read the
127
+ # limit with the most efficient page size, i.e. min(limit, 1000)
128
+ # @return [Array] Array of up to limit results
129
+ def list(muted: :unset, hold: :unset, limit: nil, page_size: nil)
130
+ self.stream(
131
+ muted: muted,
132
+ hold: hold,
133
+ limit: limit,
134
+ page_size: page_size
135
+ ).entries
136
+ end
137
+
138
+ ##
139
+ # Streams ParticipantInstance records from the API as an Enumerable.
140
+ # This operation lazily loads records as efficiently as possible until the limit
141
+ # is reached.
142
+ # @param [Boolean] muted Only show participants that are muted or unmuted
143
+ # @param [Boolean] hold The hold
144
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
145
+ # guarantees to never return more than limit. Default is no limit
146
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
147
+ # the default value of 50 records. If no page_size is defined
148
+ # but a limit is defined, stream() will attempt to read the
149
+ # limit with the most efficient page size, i.e. min(limit, 1000)
150
+ # @return [Enumerable] Enumerable that will yield up to limit results
151
+ def stream(muted: :unset, hold: :unset, limit: nil, page_size: nil)
152
+ limits = @version.read_limits(limit, page_size)
153
+
154
+ page = self.page(
155
+ muted: muted,
156
+ hold: hold,
157
+ page_size: limits[:page_size],
158
+ )
159
+
160
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
161
+ end
162
+
163
+ ##
164
+ # When passed a block, yields ParticipantInstance records from the API.
165
+ # This operation lazily loads records as efficiently as possible until the limit
166
+ # is reached.
167
+ def each
168
+ limits = @version.read_limits
169
+
170
+ page = self.page(
171
+ page_size: limits[:page_size],
172
+ )
173
+
174
+ @version.stream(page,
175
+ limit: limits[:limit],
176
+ page_limit: limits[:page_limit]).each {|x| yield x}
177
+ end
178
+
179
+ ##
180
+ # Retrieve a single page of ParticipantInstance records from the API.
181
+ # Request is executed immediately.
182
+ # @param [Boolean] muted Only show participants that are muted or unmuted
183
+ # @param [Boolean] hold The hold
184
+ # @param [String] page_token PageToken provided by the API
185
+ # @param [Integer] page_number Page Number, this value is simply for client state
186
+ # @param [Integer] page_size Number of records to return, defaults to 50
187
+ # @return [Page] Page of ParticipantInstance
188
+ def page(muted: :unset, hold: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
189
+ params = Twilio::Values.of({
190
+ 'Muted' => muted,
191
+ 'Hold' => hold,
192
+ 'PageToken' => page_token,
193
+ 'Page' => page_number,
194
+ 'PageSize' => page_size,
195
+ })
196
+ response = @version.page(
197
+ 'GET',
198
+ @uri,
199
+ params
200
+ )
201
+ ParticipantPage.new(@version, response, @solution)
202
+ end
203
+
204
+ ##
205
+ # Retrieve a single page of ParticipantInstance records from the API.
206
+ # Request is executed immediately.
207
+ # @param [String] target_url API-generated URL for the requested results page
208
+ # @return [Page] Page of ParticipantInstance
209
+ def get_page(target_url)
210
+ response = @version.domain.request(
211
+ 'GET',
212
+ target_url
213
+ )
214
+ ParticipantPage.new(@version, response, @solution)
215
+ end
216
+
217
+ ##
218
+ # Provide a user friendly representation
219
+ def to_s
220
+ '#<Twilio.Api.V2010.ParticipantList>'
221
+ end
222
+ end
223
+
224
+ class ParticipantPage < Page
225
+ ##
226
+ # Initialize the ParticipantPage
227
+ # @param [Version] version Version that contains the resource
228
+ # @param [Response] response Response from the API
229
+ # @param [Hash] solution Path solution for the resource
230
+ # @return [ParticipantPage] ParticipantPage
231
+ def initialize(version, response, solution)
232
+ super(version, response)
233
+
234
+ # Path Solution
235
+ @solution = solution
236
+ end
237
+
238
+ ##
239
+ # Build an instance of ParticipantInstance
240
+ # @param [Hash] payload Payload response from the API
241
+ # @return [ParticipantInstance] ParticipantInstance
242
+ def get_instance(payload)
243
+ ParticipantInstance.new(
244
+ @version,
245
+ payload,
246
+ account_sid: @solution[:account_sid],
247
+ conference_sid: @solution[:conference_sid],
248
+ )
249
+ end
250
+
251
+ ##
252
+ # Provide a user friendly representation
253
+ def to_s
254
+ '<Twilio.Api.V2010.ParticipantPage>'
255
+ end
256
+ end
257
+
258
+ class ParticipantContext < InstanceContext
259
+ ##
260
+ # Initialize the ParticipantContext
261
+ # @param [Version] version Version that contains the resource
262
+ # @param [String] account_sid The account_sid
263
+ # @param [String] conference_sid The string that uniquely identifies the
264
+ # conference this participant is in
265
+ # @param [String] call_sid The call_sid
266
+ # @return [ParticipantContext] ParticipantContext
267
+ def initialize(version, account_sid, conference_sid, call_sid)
268
+ super(version)
269
+
270
+ # Path Solution
271
+ @solution = {
272
+ account_sid: account_sid,
273
+ conference_sid: conference_sid,
274
+ call_sid: call_sid,
275
+ }
276
+ @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants/#{@solution[:call_sid]}.json"
277
+ end
278
+
279
+ ##
280
+ # Fetch a ParticipantInstance
281
+ # @return [ParticipantInstance] Fetched ParticipantInstance
282
+ def fetch
283
+ params = Twilio::Values.of({})
284
+
285
+ payload = @version.fetch(
286
+ 'GET',
287
+ @uri,
288
+ params,
289
+ )
290
+
291
+ ParticipantInstance.new(
292
+ @version,
293
+ payload,
294
+ account_sid: @solution[:account_sid],
295
+ conference_sid: @solution[:conference_sid],
296
+ call_sid: @solution[:call_sid],
297
+ )
298
+ end
299
+
300
+ ##
301
+ # Update the ParticipantInstance
302
+ # @param [Boolean] muted Indicates if the participant should be muted
303
+ # @param [Boolean] hold The hold
304
+ # @param [String] hold_url The hold_url
305
+ # @param [String] hold_method The hold_method
306
+ # @param [String] announce_url The announce_url
307
+ # @param [String] announce_method The announce_method
308
+ # @return [ParticipantInstance] Updated ParticipantInstance
309
+ def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset)
310
+ data = Twilio::Values.of({
311
+ 'Muted' => muted,
312
+ 'Hold' => hold,
313
+ 'HoldUrl' => hold_url,
314
+ 'HoldMethod' => hold_method,
315
+ 'AnnounceUrl' => announce_url,
316
+ 'AnnounceMethod' => announce_method,
317
+ })
318
+
319
+ payload = @version.update(
320
+ 'POST',
321
+ @uri,
322
+ data: data,
323
+ )
324
+
325
+ ParticipantInstance.new(
326
+ @version,
327
+ payload,
328
+ account_sid: @solution[:account_sid],
329
+ conference_sid: @solution[:conference_sid],
330
+ call_sid: @solution[:call_sid],
331
+ )
332
+ end
333
+
334
+ ##
335
+ # Deletes the ParticipantInstance
336
+ # @return [Boolean] true if delete succeeds, true otherwise
337
+ def delete
338
+ @version.delete('delete', @uri)
339
+ end
340
+
341
+ ##
342
+ # Provide a user friendly representation
343
+ def to_s
344
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
345
+ "#<Twilio.Api.V2010.ParticipantContext #{context}>"
346
+ end
347
+ end
348
+
349
+ class ParticipantInstance < InstanceResource
350
+ ##
351
+ # Initialize the ParticipantInstance
352
+ # @param [Version] version Version that contains the resource
353
+ # @param [Hash] payload payload that contains response from Twilio
354
+ # @param [String] account_sid The unique id of the Account that created this
355
+ # conference
356
+ # @param [String] conference_sid A 34 character string that identifies the
357
+ # conference this participant is in
358
+ # @param [String] call_sid The call_sid
359
+ # @return [ParticipantInstance] ParticipantInstance
360
+ def initialize(version, payload, account_sid: nil, conference_sid: nil, call_sid: nil)
361
+ super(version)
362
+
363
+ # Marshaled Properties
364
+ @properties = {
365
+ 'account_sid' => payload['account_sid'],
366
+ 'call_sid' => payload['call_sid'],
367
+ 'conference_sid' => payload['conference_sid'],
368
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
369
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
370
+ 'end_conference_on_exit' => payload['end_conference_on_exit'],
371
+ 'muted' => payload['muted'],
372
+ 'hold' => payload['hold'],
373
+ 'start_conference_on_enter' => payload['start_conference_on_enter'],
374
+ 'status' => payload['status'],
375
+ 'uri' => payload['uri'],
376
+ }
377
+
378
+ # Context
379
+ @instance_context = nil
380
+ @params = {
381
+ 'account_sid' => account_sid,
382
+ 'conference_sid' => conference_sid,
383
+ 'call_sid' => call_sid || @properties['call_sid'],
384
+ }
385
+ end
386
+
387
+ ##
388
+ # Generate an instance context for the instance, the context is capable of
389
+ # performing various actions. All instance actions are proxied to the context
390
+ # @return [ParticipantContext] ParticipantContext for this ParticipantInstance
391
+ def context
392
+ unless @instance_context
393
+ @instance_context = ParticipantContext.new(
394
+ @version,
395
+ @params['account_sid'],
396
+ @params['conference_sid'],
397
+ @params['call_sid'],
398
+ )
399
+ end
400
+ @instance_context
401
+ end
402
+
403
+ ##
404
+ # @return [String] The unique sid that identifies this account
405
+ def account_sid
406
+ @properties['account_sid']
407
+ end
408
+
409
+ ##
410
+ # @return [String] A string that uniquely identifies this call
411
+ def call_sid
412
+ @properties['call_sid']
413
+ end
414
+
415
+ ##
416
+ # @return [String] A string that uniquely identifies this conference
417
+ def conference_sid
418
+ @properties['conference_sid']
419
+ end
420
+
421
+ ##
422
+ # @return [Time] The date this resource was created
423
+ def date_created
424
+ @properties['date_created']
425
+ end
426
+
427
+ ##
428
+ # @return [Time] The date this resource was last updated
429
+ def date_updated
430
+ @properties['date_updated']
431
+ end
432
+
433
+ ##
434
+ # @return [Boolean] Indicates if the endConferenceOnExit was set
435
+ def end_conference_on_exit
436
+ @properties['end_conference_on_exit']
437
+ end
438
+
439
+ ##
440
+ # @return [Boolean] Indicates if the participant is muted
441
+ def muted
442
+ @properties['muted']
443
+ end
444
+
445
+ ##
446
+ # @return [Boolean] The hold
447
+ def hold
448
+ @properties['hold']
449
+ end
450
+
451
+ ##
452
+ # @return [Boolean] Indicates if the startConferenceOnEnter attribute was set
453
+ def start_conference_on_enter
454
+ @properties['start_conference_on_enter']
455
+ end
456
+
457
+ ##
458
+ # @return [participant.Status] The status
459
+ def status
460
+ @properties['status']
461
+ end
462
+
463
+ ##
464
+ # @return [String] The URI for this resource
465
+ def uri
466
+ @properties['uri']
467
+ end
468
+
469
+ ##
470
+ # Fetch a ParticipantInstance
471
+ # @return [ParticipantInstance] Fetched ParticipantInstance
472
+ def fetch
473
+ context.fetch
474
+ end
475
+
476
+ ##
477
+ # Update the ParticipantInstance
478
+ # @param [Boolean] muted Indicates if the participant should be muted
479
+ # @param [Boolean] hold The hold
480
+ # @param [String] hold_url The hold_url
481
+ # @param [String] hold_method The hold_method
482
+ # @param [String] announce_url The announce_url
483
+ # @param [String] announce_method The announce_method
484
+ # @return [ParticipantInstance] Updated ParticipantInstance
485
+ def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset)
486
+ context.update(
487
+ muted: muted,
488
+ hold: hold,
489
+ hold_url: hold_url,
490
+ hold_method: hold_method,
491
+ announce_url: announce_url,
492
+ announce_method: announce_method,
493
+ )
494
+ end
495
+
496
+ ##
497
+ # Deletes the ParticipantInstance
498
+ # @return [Boolean] true if delete succeeds, true otherwise
499
+ def delete
500
+ context.delete
501
+ end
502
+
503
+ ##
504
+ # Provide a user friendly representation
505
+ def to_s
506
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
507
+ "<Twilio.Api.V2010.ParticipantInstance #{values}>"
508
+ end
509
+ end
510
+ end
511
+ end
512
+ end
513
+ end
514
+ end
515
+ end