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,507 @@
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 UsageList < ListResource
13
+ class TriggerList < ListResource
14
+ ##
15
+ # Initialize the TriggerList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] account_sid A 34 character string that uniquely identifies this
18
+ # resource.
19
+ # @return [TriggerList] TriggerList
20
+ def initialize(version, account_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {
25
+ account_sid: account_sid
26
+ }
27
+ @uri = "/Accounts/#{@solution[:account_sid]}/Usage/Triggers.json"
28
+ end
29
+
30
+ ##
31
+ # Retrieve a single page of TriggerInstance records from the API.
32
+ # Request is executed immediately.
33
+ # @param [String] callback_url Twilio will make a request to this url when the
34
+ # trigger fires.
35
+ # @param [String] trigger_value The value at which the trigger will fire. Must be
36
+ # a positive numeric value.
37
+ # @param [trigger.UsageCategory] usage_category The usage category the trigger
38
+ # watches
39
+ # @param [String] callback_method The HTTP method Twilio will use when making a
40
+ # request to the CallbackUrl. GET or POST.
41
+ # @param [String] friendly_name A user-specified, human-readable name for the
42
+ # trigger.
43
+ # @param [trigger.Recurring] recurring How this trigger recurs. Empty for
44
+ # non-recurring triggers. One of `daily`, `monthly`, or `yearly` for recurring
45
+ # triggers. A trigger will only fire once during each recurring period.
46
+ # Recurring periods are in GMT.
47
+ # @param [trigger.TriggerField] trigger_by The field in the UsageRecord that fires
48
+ # the trigger. One of `count`, `usage`, or `price`
49
+ # @return [TriggerInstance] Newly created TriggerInstance
50
+ def create(callback_url: nil, trigger_value: nil, usage_category: nil, callback_method: :unset, friendly_name: :unset, recurring: :unset, trigger_by: :unset)
51
+ data = Twilio::Values.of({
52
+ 'CallbackUrl' => callback_url,
53
+ 'TriggerValue' => trigger_value,
54
+ 'UsageCategory' => usage_category,
55
+ 'CallbackMethod' => callback_method,
56
+ 'FriendlyName' => friendly_name,
57
+ 'Recurring' => recurring,
58
+ 'TriggerBy' => trigger_by,
59
+ })
60
+
61
+ payload = @version.create(
62
+ 'POST',
63
+ @uri,
64
+ data: data
65
+ )
66
+
67
+ TriggerInstance.new(
68
+ @version,
69
+ payload,
70
+ account_sid: @solution[:account_sid],
71
+ )
72
+ end
73
+
74
+ ##
75
+ # Lists TriggerInstance records from the API as a list.
76
+ # Unlike stream(), this operation is eager and will load `limit` records into
77
+ # memory before returning.
78
+ # @param [trigger.Recurring] recurring Only show UsageTriggers that count over
79
+ # this interval. One of daily, monthly, or yearly
80
+ # @param [trigger.TriggerField] trigger_by Only show UsageTriggers that trigger by
81
+ # this field in the UsagRecord
82
+ # @param [trigger.UsageCategory] usage_category Only show UsageTriggers that watch
83
+ # this usage category
84
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
85
+ # guarantees to never return more than limit. Default is no limit
86
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
87
+ # the default value of 50 records. If no page_size is defined
88
+ # but a limit is defined, stream() will attempt to read the
89
+ # limit with the most efficient page size, i.e. min(limit, 1000)
90
+ # @return [Array] Array of up to limit results
91
+ def list(recurring: :unset, trigger_by: :unset, usage_category: :unset, limit: nil, page_size: nil)
92
+ self.stream(
93
+ recurring: recurring,
94
+ trigger_by: trigger_by,
95
+ usage_category: usage_category,
96
+ limit: limit,
97
+ page_size: page_size
98
+ ).entries
99
+ end
100
+
101
+ ##
102
+ # Streams TriggerInstance records from the API as an Enumerable.
103
+ # This operation lazily loads records as efficiently as possible until the limit
104
+ # is reached.
105
+ # @param [trigger.Recurring] recurring Only show UsageTriggers that count over
106
+ # this interval. One of daily, monthly, or yearly
107
+ # @param [trigger.TriggerField] trigger_by Only show UsageTriggers that trigger by
108
+ # this field in the UsagRecord
109
+ # @param [trigger.UsageCategory] usage_category Only show UsageTriggers that watch
110
+ # this usage category
111
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
112
+ # guarantees to never return more than limit. Default is no limit
113
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
114
+ # the default value of 50 records. If no page_size is defined
115
+ # but a limit is defined, stream() will attempt to read the
116
+ # limit with the most efficient page size, i.e. min(limit, 1000)
117
+ # @return [Enumerable] Enumerable that will yield up to limit results
118
+ def stream(recurring: :unset, trigger_by: :unset, usage_category: :unset, limit: nil, page_size: nil)
119
+ limits = @version.read_limits(limit, page_size)
120
+
121
+ page = self.page(
122
+ recurring: recurring,
123
+ trigger_by: trigger_by,
124
+ usage_category: usage_category,
125
+ page_size: limits[:page_size],
126
+ )
127
+
128
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
129
+ end
130
+
131
+ ##
132
+ # When passed a block, yields TriggerInstance records from the API.
133
+ # This operation lazily loads records as efficiently as possible until the limit
134
+ # is reached.
135
+ def each
136
+ limits = @version.read_limits
137
+
138
+ page = self.page(
139
+ page_size: limits[:page_size],
140
+ )
141
+
142
+ @version.stream(page,
143
+ limit: limits[:limit],
144
+ page_limit: limits[:page_limit]).each {|x| yield x}
145
+ end
146
+
147
+ ##
148
+ # Retrieve a single page of TriggerInstance records from the API.
149
+ # Request is executed immediately.
150
+ # @param [trigger.Recurring] recurring Only show UsageTriggers that count over
151
+ # this interval. One of daily, monthly, or yearly
152
+ # @param [trigger.TriggerField] trigger_by Only show UsageTriggers that trigger by
153
+ # this field in the UsagRecord
154
+ # @param [trigger.UsageCategory] usage_category Only show UsageTriggers that watch
155
+ # this usage category
156
+ # @param [String] page_token PageToken provided by the API
157
+ # @param [Integer] page_number Page Number, this value is simply for client state
158
+ # @param [Integer] page_size Number of records to return, defaults to 50
159
+ # @return [Page] Page of TriggerInstance
160
+ def page(recurring: :unset, trigger_by: :unset, usage_category: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
161
+ params = Twilio::Values.of({
162
+ 'Recurring' => recurring,
163
+ 'TriggerBy' => trigger_by,
164
+ 'UsageCategory' => usage_category,
165
+ 'PageToken' => page_token,
166
+ 'Page' => page_number,
167
+ 'PageSize' => page_size,
168
+ })
169
+ response = @version.page(
170
+ 'GET',
171
+ @uri,
172
+ params
173
+ )
174
+ TriggerPage.new(@version, response, @solution)
175
+ end
176
+
177
+ ##
178
+ # Retrieve a single page of TriggerInstance records from the API.
179
+ # Request is executed immediately.
180
+ # @param [String] target_url API-generated URL for the requested results page
181
+ # @return [Page] Page of TriggerInstance
182
+ def get_page(target_url)
183
+ response = @version.domain.request(
184
+ 'GET',
185
+ target_url
186
+ )
187
+ TriggerPage.new(@version, response, @solution)
188
+ end
189
+
190
+ ##
191
+ # Provide a user friendly representation
192
+ def to_s
193
+ '#<Twilio.Api.V2010.TriggerList>'
194
+ end
195
+ end
196
+
197
+ class TriggerPage < Page
198
+ ##
199
+ # Initialize the TriggerPage
200
+ # @param [Version] version Version that contains the resource
201
+ # @param [Response] response Response from the API
202
+ # @param [Hash] solution Path solution for the resource
203
+ # @return [TriggerPage] TriggerPage
204
+ def initialize(version, response, solution)
205
+ super(version, response)
206
+
207
+ # Path Solution
208
+ @solution = solution
209
+ end
210
+
211
+ ##
212
+ # Build an instance of TriggerInstance
213
+ # @param [Hash] payload Payload response from the API
214
+ # @return [TriggerInstance] TriggerInstance
215
+ def get_instance(payload)
216
+ TriggerInstance.new(
217
+ @version,
218
+ payload,
219
+ account_sid: @solution[:account_sid],
220
+ )
221
+ end
222
+
223
+ ##
224
+ # Provide a user friendly representation
225
+ def to_s
226
+ '<Twilio.Api.V2010.TriggerPage>'
227
+ end
228
+ end
229
+
230
+ class TriggerContext < InstanceContext
231
+ ##
232
+ # Initialize the TriggerContext
233
+ # @param [Version] version Version that contains the resource
234
+ # @param [String] account_sid The account_sid
235
+ # @param [String] sid The usage-trigger Sid that uniquely identifies this resource
236
+ # @return [TriggerContext] TriggerContext
237
+ def initialize(version, account_sid, sid)
238
+ super(version)
239
+
240
+ # Path Solution
241
+ @solution = {
242
+ account_sid: account_sid,
243
+ sid: sid,
244
+ }
245
+ @uri = "/Accounts/#{@solution[:account_sid]}/Usage/Triggers/#{@solution[:sid]}.json"
246
+ end
247
+
248
+ ##
249
+ # Fetch a TriggerInstance
250
+ # @return [TriggerInstance] Fetched TriggerInstance
251
+ def fetch
252
+ params = Twilio::Values.of({})
253
+
254
+ payload = @version.fetch(
255
+ 'GET',
256
+ @uri,
257
+ params,
258
+ )
259
+
260
+ TriggerInstance.new(
261
+ @version,
262
+ payload,
263
+ account_sid: @solution[:account_sid],
264
+ sid: @solution[:sid],
265
+ )
266
+ end
267
+
268
+ ##
269
+ # Update the TriggerInstance
270
+ # @param [String] callback_method The HTTP method Twilio will use when making a
271
+ # request to the CallbackUrl. GET or POST.
272
+ # @param [String] callback_url Twilio will make a request to this url when the
273
+ # trigger fires.
274
+ # @param [String] friendly_name A user-specified, human-readable name for the
275
+ # trigger.
276
+ # @return [TriggerInstance] Updated TriggerInstance
277
+ def update(callback_method: :unset, callback_url: :unset, friendly_name: :unset)
278
+ data = Twilio::Values.of({
279
+ 'CallbackMethod' => callback_method,
280
+ 'CallbackUrl' => callback_url,
281
+ 'FriendlyName' => friendly_name,
282
+ })
283
+
284
+ payload = @version.update(
285
+ 'POST',
286
+ @uri,
287
+ data: data,
288
+ )
289
+
290
+ TriggerInstance.new(
291
+ @version,
292
+ payload,
293
+ account_sid: @solution[:account_sid],
294
+ sid: @solution[:sid],
295
+ )
296
+ end
297
+
298
+ ##
299
+ # Deletes the TriggerInstance
300
+ # @return [Boolean] true if delete succeeds, true otherwise
301
+ def delete
302
+ @version.delete('delete', @uri)
303
+ end
304
+
305
+ ##
306
+ # Provide a user friendly representation
307
+ def to_s
308
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
309
+ "#<Twilio.Api.V2010.TriggerContext #{context}>"
310
+ end
311
+ end
312
+
313
+ class TriggerInstance < InstanceResource
314
+ ##
315
+ # Initialize the TriggerInstance
316
+ # @param [Version] version Version that contains the resource
317
+ # @param [Hash] payload payload that contains response from Twilio
318
+ # @param [String] account_sid A 34 character string that uniquely identifies this
319
+ # resource.
320
+ # @param [String] sid The usage-trigger Sid that uniquely identifies this resource
321
+ # @return [TriggerInstance] TriggerInstance
322
+ def initialize(version, payload, account_sid: nil, sid: nil)
323
+ super(version)
324
+
325
+ # Marshaled Properties
326
+ @properties = {
327
+ 'account_sid' => payload['account_sid'],
328
+ 'api_version' => payload['api_version'],
329
+ 'callback_method' => payload['callback_method'],
330
+ 'callback_url' => payload['callback_url'],
331
+ 'current_value' => payload['current_value'],
332
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
333
+ 'date_fired' => Twilio.deserialize_rfc2822(payload['date_fired']),
334
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
335
+ 'friendly_name' => payload['friendly_name'],
336
+ 'recurring' => payload['recurring'],
337
+ 'sid' => payload['sid'],
338
+ 'trigger_by' => payload['trigger_by'],
339
+ 'trigger_value' => payload['trigger_value'],
340
+ 'uri' => payload['uri'],
341
+ 'usage_category' => payload['usage_category'],
342
+ 'usage_record_uri' => payload['usage_record_uri'],
343
+ }
344
+
345
+ # Context
346
+ @instance_context = nil
347
+ @params = {
348
+ 'account_sid' => account_sid,
349
+ 'sid' => sid || @properties['sid'],
350
+ }
351
+ end
352
+
353
+ ##
354
+ # Generate an instance context for the instance, the context is capable of
355
+ # performing various actions. All instance actions are proxied to the context
356
+ # @return [TriggerContext] TriggerContext for this TriggerInstance
357
+ def context
358
+ unless @instance_context
359
+ @instance_context = TriggerContext.new(
360
+ @version,
361
+ @params['account_sid'],
362
+ @params['sid'],
363
+ )
364
+ end
365
+ @instance_context
366
+ end
367
+
368
+ ##
369
+ # @return [String] The account this trigger monitors.
370
+ def account_sid
371
+ @properties['account_sid']
372
+ end
373
+
374
+ ##
375
+ # @return [String] The api_version
376
+ def api_version
377
+ @properties['api_version']
378
+ end
379
+
380
+ ##
381
+ # @return [String] HTTP method to use with callback_url
382
+ def callback_method
383
+ @properties['callback_method']
384
+ end
385
+
386
+ ##
387
+ # @return [String] URL Twilio will request when the trigger fires
388
+ def callback_url
389
+ @properties['callback_url']
390
+ end
391
+
392
+ ##
393
+ # @return [String] The current value of the field the trigger is watching.
394
+ def current_value
395
+ @properties['current_value']
396
+ end
397
+
398
+ ##
399
+ # @return [Time] The date this resource was created
400
+ def date_created
401
+ @properties['date_created']
402
+ end
403
+
404
+ ##
405
+ # @return [Time] The date the trigger was last fired
406
+ def date_fired
407
+ @properties['date_fired']
408
+ end
409
+
410
+ ##
411
+ # @return [Time] The date this resource was last updated
412
+ def date_updated
413
+ @properties['date_updated']
414
+ end
415
+
416
+ ##
417
+ # @return [String] A user-specified, human-readable name for the trigger.
418
+ def friendly_name
419
+ @properties['friendly_name']
420
+ end
421
+
422
+ ##
423
+ # @return [trigger.Recurring] How this trigger recurs
424
+ def recurring
425
+ @properties['recurring']
426
+ end
427
+
428
+ ##
429
+ # @return [String] The trigger's unique Sid
430
+ def sid
431
+ @properties['sid']
432
+ end
433
+
434
+ ##
435
+ # @return [trigger.TriggerField] The field in the UsageRecord that fires the trigger
436
+ def trigger_by
437
+ @properties['trigger_by']
438
+ end
439
+
440
+ ##
441
+ # @return [String] the value at which the trigger will fire
442
+ def trigger_value
443
+ @properties['trigger_value']
444
+ end
445
+
446
+ ##
447
+ # @return [String] The URI for this resource
448
+ def uri
449
+ @properties['uri']
450
+ end
451
+
452
+ ##
453
+ # @return [trigger.UsageCategory] The usage category the trigger watches
454
+ def usage_category
455
+ @properties['usage_category']
456
+ end
457
+
458
+ ##
459
+ # @return [String] The URI of the UsageRecord this trigger is watching
460
+ def usage_record_uri
461
+ @properties['usage_record_uri']
462
+ end
463
+
464
+ ##
465
+ # Fetch a TriggerInstance
466
+ # @return [TriggerInstance] Fetched TriggerInstance
467
+ def fetch
468
+ context.fetch
469
+ end
470
+
471
+ ##
472
+ # Update the TriggerInstance
473
+ # @param [String] callback_method The HTTP method Twilio will use when making a
474
+ # request to the CallbackUrl. GET or POST.
475
+ # @param [String] callback_url Twilio will make a request to this url when the
476
+ # trigger fires.
477
+ # @param [String] friendly_name A user-specified, human-readable name for the
478
+ # trigger.
479
+ # @return [TriggerInstance] Updated TriggerInstance
480
+ def update(callback_method: :unset, callback_url: :unset, friendly_name: :unset)
481
+ context.update(
482
+ callback_method: callback_method,
483
+ callback_url: callback_url,
484
+ friendly_name: friendly_name,
485
+ )
486
+ end
487
+
488
+ ##
489
+ # Deletes the TriggerInstance
490
+ # @return [Boolean] true if delete succeeds, true otherwise
491
+ def delete
492
+ context.delete
493
+ end
494
+
495
+ ##
496
+ # Provide a user friendly representation
497
+ def to_s
498
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
499
+ "<Twilio.Api.V2010.TriggerInstance #{values}>"
500
+ end
501
+ end
502
+ end
503
+ end
504
+ end
505
+ end
506
+ end
507
+ end
@@ -0,0 +1,127 @@
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 UsageList < ListResource
13
+ ##
14
+ # Initialize the UsageList
15
+ # @param [Version] version Version that contains the resource
16
+ # @param [String] account_sid A 34 character string that uniquely identifies this
17
+ # resource.
18
+ # @return [UsageList] UsageList
19
+ def initialize(version, account_sid: nil)
20
+ super(version)
21
+
22
+ # Path Solution
23
+ @solution = {
24
+ account_sid: account_sid
25
+ }
26
+
27
+ # Components
28
+ @records = nil
29
+ @triggers = nil
30
+ end
31
+
32
+ ##
33
+ # Access the records
34
+ # @return [RecordList]
35
+ # @return [RecordContext]
36
+ def records
37
+ @records ||= RecordList.new(
38
+ @version,
39
+ account_sid: @solution[:account_sid],
40
+ )
41
+ end
42
+
43
+ ##
44
+ # Access the triggers
45
+ # @param [String] sid The usage-trigger Sid that uniquely identifies this resource
46
+ # @return [TriggerList]
47
+ # @return [TriggerContext] if sid was passed.
48
+ def triggers(sid=:unset)
49
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
50
+
51
+ if sid != :unset
52
+ return TriggerContext.new(
53
+ @version,
54
+ @solution[:account_sid],
55
+ sid,
56
+ )
57
+ end
58
+
59
+ @triggers ||= TriggerList.new(
60
+ @version,
61
+ account_sid: @solution[:account_sid],
62
+ )
63
+ end
64
+
65
+ ##
66
+ # Provide a user friendly representation
67
+ def to_s
68
+ '#<Twilio.Api.V2010.UsageList>'
69
+ end
70
+ end
71
+
72
+ class UsagePage < Page
73
+ ##
74
+ # Initialize the UsagePage
75
+ # @param [Version] version Version that contains the resource
76
+ # @param [Response] response Response from the API
77
+ # @param [Hash] solution Path solution for the resource
78
+ # @return [UsagePage] UsagePage
79
+ def initialize(version, response, solution)
80
+ super(version, response)
81
+
82
+ # Path Solution
83
+ @solution = solution
84
+ end
85
+
86
+ ##
87
+ # Build an instance of UsageInstance
88
+ # @param [Hash] payload Payload response from the API
89
+ # @return [UsageInstance] UsageInstance
90
+ def get_instance(payload)
91
+ UsageInstance.new(
92
+ @version,
93
+ payload,
94
+ account_sid: @solution[:account_sid],
95
+ )
96
+ end
97
+
98
+ ##
99
+ # Provide a user friendly representation
100
+ def to_s
101
+ '<Twilio.Api.V2010.UsagePage>'
102
+ end
103
+ end
104
+
105
+ class UsageInstance < InstanceResource
106
+ ##
107
+ # Initialize the UsageInstance
108
+ # @param [Version] version Version that contains the resource
109
+ # @param [Hash] payload payload that contains response from Twilio
110
+ # @param [String] account_sid A 34 character string that uniquely identifies this
111
+ # resource.
112
+ # @return [UsageInstance] UsageInstance
113
+ def initialize(version, payload, account_sid: nil)
114
+ super(version)
115
+ end
116
+
117
+ ##
118
+ # Provide a user friendly representation
119
+ def to_s
120
+ "<Twilio.Api.V2010.UsageInstance>"
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end