twilio-ruby 5.40.4 → 5.45.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +104 -0
  3. data/{LICENSE.md → LICENSE} +0 -0
  4. data/PULL_REQUEST_TEMPLATE.md +3 -3
  5. data/README.md +18 -2
  6. data/lib/twilio-ruby.rb +1 -1
  7. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  8. data/lib/twilio-ruby/rest/accounts.rb +12 -0
  9. data/lib/twilio-ruby/rest/accounts/v1.rb +14 -0
  10. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  11. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  12. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +26 -1
  13. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  14. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +13 -1
  15. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +6 -1
  16. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  17. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  18. data/lib/twilio-ruby/rest/client.rb +29 -3
  19. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +10 -2
  20. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +13 -3
  21. data/lib/twilio-ruby/rest/events/v1/subscription.rb +12 -5
  22. data/lib/twilio-ruby/rest/insights.rb +8 -0
  23. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  24. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +7 -0
  25. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  26. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  27. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  28. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  29. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  30. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  31. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  32. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  33. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  34. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  35. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  36. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  37. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  38. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  39. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  40. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  41. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  42. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  43. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  44. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  45. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  46. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  47. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  48. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  49. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  50. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  51. data/lib/twilio-ruby/rest/preview.rb +5 -18
  52. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +5 -22
  53. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +21 -39
  54. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +12 -27
  55. data/lib/twilio-ruby/rest/preview/trusted_comms/{business.rb → branded_channel.rb} +63 -77
  56. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  57. data/lib/twilio-ruby/rest/serverless/v1/service.rb +5 -5
  58. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +4 -4
  59. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +4 -4
  60. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +4 -4
  61. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +4 -4
  62. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +4 -4
  63. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +4 -4
  64. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +4 -4
  65. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +4 -4
  66. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  67. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +4 -4
  68. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -4
  69. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +15 -5
  70. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +15 -5
  71. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +28 -5
  72. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +15 -5
  73. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +28 -5
  74. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +15 -5
  75. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +12 -9
  76. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -16
  77. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +21 -24
  78. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  79. data/lib/twilio-ruby/rest/verify/v2/service.rb +54 -33
  80. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  81. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +23 -35
  82. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +36 -61
  83. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +59 -57
  84. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  85. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +6 -6
  86. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +6 -6
  87. data/lib/twilio-ruby/rest/video/v1/room.rb +20 -0
  88. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  89. data/lib/twilio-ruby/twiml/voice_response.rb +7 -4
  90. data/lib/twilio-ruby/util/configuration.rb +5 -1
  91. data/lib/twilio-ruby/version.rb +1 -1
  92. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +44 -0
  93. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +69 -0
  94. data/spec/integration/api/v2010/account/call/event_spec.rb +102 -0
  95. data/spec/integration/api/v2010/account/call/recording_spec.rb +4 -0
  96. data/spec/integration/api/v2010/account/call_spec.rb +20 -10
  97. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  98. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  99. data/spec/integration/conversations/v1/conversation_spec.rb +1 -1
  100. data/spec/integration/conversations/v1/service/conversation_spec.rb +1 -1
  101. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  102. data/spec/integration/events/v1/subscription_spec.rb +49 -0
  103. data/spec/integration/insights/v1/call/summary_spec.rb +1 -0
  104. data/spec/integration/insights/v1/room/participant_spec.rb +147 -0
  105. data/spec/integration/insights/v1/room_spec.rb +164 -0
  106. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  107. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  108. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  109. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  110. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  111. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  112. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  113. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  114. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  115. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  116. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  117. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  118. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  119. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  120. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  121. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  122. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  123. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  124. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  125. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  126. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  127. data/spec/integration/lookups/v1/phone_number_spec.rb +7 -7
  128. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  129. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel → branded_channel}/channel_spec.rb +4 -8
  130. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel_spec.rb → branded_channel_spec.rb} +5 -9
  131. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +1 -1
  132. data/spec/integration/trunking/v1/trunk/recording_spec.rb +2 -6
  133. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +56 -20
  134. data/spec/integration/verify/v2/service/entity/factor_spec.rb +11 -26
  135. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  136. data/spec/integration/verify/v2/service_spec.rb +8 -4
  137. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  138. data/spec/integration/video/v1/room_spec.rb +10 -5
  139. data/spec/jwt/access_token_spec.rb +9 -1
  140. data/spec/rest/client_spec.rb +24 -2
  141. data/twilio-ruby.gemspec +2 -1
  142. metadata +42 -28
  143. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -243
  144. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand.rb +0 -233
  145. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel.rb +0 -260
  146. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel/channel.rb +0 -189
  147. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -108
  148. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/impressions_rate.rb +0 -260
  149. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -342
  150. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  151. data/spec/integration/preview/trusted_comms/business/brand_spec.rb +0 -48
  152. data/spec/integration/preview/trusted_comms/business/insights/impressions_rate_spec.rb +0 -56
  153. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  154. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -46
  155. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8479716e0775fc4f9ba20ccb92d92b9207c8363c100206df4329034f40e9c822
4
- data.tar.gz: 9ecf86d0fe73d49a94d2c8e2e9d1712ee9270e73286ceb92edc2e1a1d35fb19f
3
+ metadata.gz: 4d11664418beb1659b2ee854fea2a14df842116c75edde8f66aa98c8b6cb9fd2
4
+ data.tar.gz: 4109ac807241c28fed2e425e74064bf1daaac49ec2360fa874568453797e148f
5
5
  SHA512:
6
- metadata.gz: 408171ca407783e4586f23471770f92633719e331c3853a7a3843250c8f58165494c72369e055919efb3330dc69b16798de1ec5c9db77cdd91a594eb4b8dac8d
7
- data.tar.gz: c345b99f3215e4ac16eeb294986e13a8adf94c84ef74066713ec75afe2724956bd04fe7c1d46a4b11a4ef6df4613d155ccb3c442f5ab0a61b88a9f49197ad330
6
+ metadata.gz: 6a08b729a2859792323662ee8d9f4b9b4b93539d20485d3f7bb794dba44975e61d4c3178710ec488b6738db1cc30656aa0ae24530cde10d899165d9f152e94c0
7
+ data.tar.gz: ac04197fe55debf9afe2d08f4f79a4e56ca40488b99b02a038c999873c27775c9728e8d38adb6d3bdffae47894366a1aa34925da86409731555c90e7a4050e06
data/CHANGES.md CHANGED
@@ -1,6 +1,110 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2020-12-08] Version 5.45.0
5
+ ---------------------------
6
+ **Api**
7
+ - Added optional `RecordingTrack` parameter for create calls, create participants, and create call recordings
8
+ - Removed deprecated Programmable Chat usage record categories **(breaking change)**
9
+
10
+ **Twiml**
11
+ - Add `recordingTrack` to `Dial`.
12
+
13
+
14
+ [2020-12-02] Version 5.44.0
15
+ ---------------------------
16
+ **Api**
17
+ - Remove `RecordingTrack` parameter for create calls, create participants, and create call recordings **(breaking change)**
18
+ - Added `RecordingTrack` parameter for create calls and create call recordings
19
+ - Add optional property `recording_track` in the participant create request
20
+
21
+ **Lookups**
22
+ - Changed `caller_name` and `carrier` properties type to object **(breaking change)**
23
+
24
+ **Trunking**
25
+ - Added dual channel recording options for Trunks.
26
+
27
+ **Twiml**
28
+ - Add `jitterBufferSize` and `participantLabel` to `Conference`.
29
+
30
+
31
+ [2020-11-18] Version 5.43.0
32
+ ---------------------------
33
+ **Library - Feature**
34
+ - [PR #538](https://github.com/twilio/twilio-ruby/pull/538): adding http logging for ruby. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
35
+
36
+ **Api**
37
+ - Add new call events resource - GET /2010-04-01/Accounts/{account_sid}/Calls/{call_sid}/Events.json
38
+
39
+ **Conversations**
40
+ - Fixed default response property issue for Service Notifications Configuration
41
+
42
+ **Insights**
43
+ - Removing call_sid from participant summary. **(breaking change)**
44
+
45
+ **Serverless**
46
+ - Allow Service unique name to be used in path (in place of SID) in Service update request
47
+
48
+ **Sync**
49
+ - Added HideExpired query parameter for filtering Sync Documents with expired
50
+
51
+ **Verify**
52
+ - Challenge `Details` and `HiddenDetails` properties are now marked as `PII`
53
+ - Challenge `expiration_date` attribute updated to set a default value of five (5) minutes and to allow max dates of one (1) hour after creation.
54
+ - Entity `identity` attribute updated to allow values between 8 and 64 characters.
55
+ - Verify Service frinedly_name attribute updated from 64 max lenght to 30 characters.
56
+
57
+
58
+ [2020-11-05] Version 5.42.0
59
+ ---------------------------
60
+ **Library - Feature**
61
+ - [PR #537](https://github.com/twilio/twilio-ruby/pull/537): Add region to AccessToken. Thanks to [@ryan-rowland](https://github.com/ryan-rowland)!
62
+
63
+ **Api**
64
+ - Added `verify-push` to `usage_record` API
65
+
66
+ **Bulkexports**
67
+ - When creating a custom export the StartDay, EndDay, and FriendlyName fields were required but this was not reflected in the API documentation. The API itself failed the request without these fields. **(breaking change)**
68
+ - Added property descriptions for Custom Export create method
69
+ - Clarified WebhookUrl and WebhookMethod must be provided together for Custom Export
70
+
71
+ **Insights**
72
+ - Added video room and participant summary apis.
73
+
74
+ **Ip_messaging**
75
+ - Create separate definition for ip-messaging
76
+ - Restore v2 endpoints for ip-messaging
77
+
78
+ **Verify**
79
+ - Verify Push madurity were updated from `preview` to `beta`
80
+ - `twilio_sandbox_mode` header was removed from Verify Push resources **(breaking change)**
81
+
82
+ **Video**
83
+ - [Rooms] Add Recording Rules API
84
+
85
+
86
+ [2020-10-14] Version 5.41.0
87
+ ---------------------------
88
+ **Ai**
89
+ - Add `Annotation Project` and `Annotation Task` endpoints
90
+ - Add `Primitives` endpoints
91
+ - Add `meta.total` to the search endpoint
92
+
93
+ **Conversations**
94
+ - Mutable Conversation Unique Names
95
+
96
+ **Insights**
97
+ - Added `trust` to summary.
98
+
99
+ **Preview**
100
+ - Simplified `Channels` resource. The path is now `/BrandedChannels/branded_channel_sid/Channels` **(breaking change)**
101
+
102
+ **Verify**
103
+ - Changed parameters (`config` and `binding`) to use dot notation instead of JSON string (e.i. Before: `binding={"alg":"ES256", "public_key": "xxx..."}`, Now: `Binding.Alg="ES256"`, `Binding.PublicKey="xxx..."`). **(breaking change)**
104
+ - Changed parameters (`details` and `hidden_details`) to use dot notation instead of JSON string (e.i. Before: `details={"message":"Test message", "fields": "[{\"label\": \"Action 1\", \"value\":\"value 1\"}]"}`, Now: `details.Message="Test message"`, `Details.Fields=["{\"label\": \"Action 1\", \"value\":\"value 1\"}"]`). **(breaking change)**
105
+ - Removed `notify_service_sid` from `push` service configuration object. Add `Push.IncludeDate`, `Push.ApnCredentialSid` and `Push.FcmCredentialSid` service configuration parameters. **(breaking change)**
106
+
107
+
4
108
  [2020-09-28] Version 5.40.4
5
109
  ---------------------------
6
110
  **Library - Docs**
File without changes
@@ -19,13 +19,13 @@ Closes #2
19
19
  A short description of what this PR does.
20
20
 
21
21
  ### Checklist
22
- - [ ] I acknowledge that all my contributions will be made under the project's license
22
+ - [x] I acknowledge that all my contributions will be made under the project's license
23
23
  - [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
24
- - [ ] I have read the [Contribution Guidelines](CONTRIBUTING.md) and my PR follows them
24
+ - [ ] I have read the [Contribution Guidelines](https://github.com/twilio/twilio-ruby/blob/main/CONTRIBUTING.md) and my PR follows them
25
25
  - [ ] I have titled the PR appropriately
26
26
  - [ ] I have updated my branch with the main branch
27
27
  - [ ] I have added tests that prove my fix is effective or that my feature works
28
- - [ ] I have added necessary documentation about the functionality in the appropriate .md file
28
+ - [ ] I have added the necessary documentation about the functionality in the appropriate .md file
29
29
  - [ ] I have added inline documentation to the code I modified
30
30
 
31
31
  If you have questions, please file a [support ticket](https://twilio.com/help/contact), or create a GitHub Issue in this repository.
data/README.md CHANGED
@@ -34,13 +34,13 @@ This library supports the following Ruby implementations:
34
34
  To install using [Bundler][bundler] grab the latest stable version:
35
35
 
36
36
  ```ruby
37
- gem 'twilio-ruby', '~> 5.40.4'
37
+ gem 'twilio-ruby', '~> 5.45.0'
38
38
  ```
39
39
 
40
40
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
41
41
 
42
42
  ```bash
43
- gem install twilio-ruby -v 5.40.4
43
+ gem install twilio-ruby -v 5.45.0
44
44
  ```
45
45
 
46
46
  To build and install the development branch yourself from the latest source:
@@ -81,6 +81,22 @@ To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/doc
81
81
  @client.edge = 'sydney'
82
82
  ```
83
83
 
84
+ ### Enable Debug logging
85
+
86
+ In order to enable debug logging, pass in a 'logger' instance to the client with the level set to at least 'DEBUG'
87
+
88
+ ```ruby
89
+ @client = Twilio::REST::Client.new account_sid, auth_token
90
+ myLogger = Logger.new(STDOUT)
91
+ myLogger.level = Logger::DEBUG
92
+ @client.logger = myLogger
93
+
94
+ @client = Twilio::REST::Client.new account_sid, auth_token
95
+ myLogger = Logger.new('my_log.log')
96
+ myLogger.level = Logger::DEBUG
97
+ @client.logger = myLogger
98
+ ```
99
+
84
100
  This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
85
101
 
86
102
  ### Make a Call
@@ -38,7 +38,7 @@ module Twilio
38
38
  autoload :JWT, File.join(File.dirname(__FILE__), 'twilio-ruby', 'jwt', 'jwt.rb')
39
39
  autoload :TwiML, File.join(File.dirname(__FILE__), 'twilio-ruby', 'twiml', 'twiml.rb')
40
40
 
41
- def_delegators :configuration, :account_sid, :auth_token, :http_client, :region, :edge
41
+ def_delegators :configuration, :account_sid, :auth_token, :http_client, :region, :edge, :logger
42
42
 
43
43
  ##
44
44
  # Pre-configure with account SID and auth token so that you don't need to
@@ -20,7 +20,8 @@ module Twilio
20
20
  :grants,
21
21
  :nbf,
22
22
  :ttl,
23
- :valid_until
23
+ :valid_until,
24
+ :region
24
25
 
25
26
  def initialize(
26
27
  account_sid,
@@ -30,7 +31,8 @@ module Twilio
30
31
  identity: nil,
31
32
  nbf: nil,
32
33
  ttl: 3600,
33
- valid_until: nil
34
+ valid_until: nil,
35
+ region: nil
34
36
  )
35
37
  super(secret_key: secret,
36
38
  issuer: signing_key_sid,
@@ -46,6 +48,7 @@ module Twilio
46
48
  @grants = grants
47
49
  @ttl = ttl
48
50
  @valid_until = valid_until
51
+ @region = region
49
52
  end
50
53
 
51
54
  def add_grant(grant)
@@ -76,6 +79,8 @@ module Twilio
76
79
  cty: 'twilio-fpa;v=1'
77
80
  }
78
81
 
82
+ headers[:twr] = region unless region&.nil?
83
+
79
84
  headers
80
85
  end
81
86
 
@@ -28,12 +28,24 @@ module Twilio
28
28
  @v1 ||= V1.new self
29
29
  end
30
30
 
31
+ ##
32
+ # @return [Twilio::REST::Accounts::V1::AuthTokenPromotionInstance]
33
+ def auth_token_promotion
34
+ self.v1.auth_token_promotion()
35
+ end
36
+
31
37
  ##
32
38
  # @return [Twilio::REST::Accounts::V1::CredentialInstance]
33
39
  def credentials
34
40
  self.v1.credentials()
35
41
  end
36
42
 
43
+ ##
44
+ # @return [Twilio::REST::Accounts::V1::SecondaryAuthTokenInstance]
45
+ def secondary_auth_token
46
+ self.v1.secondary_auth_token()
47
+ end
48
+
37
49
  ##
38
50
  # Provide a user friendly representation
39
51
  def to_s
@@ -15,7 +15,15 @@ module Twilio
15
15
  def initialize(domain)
16
16
  super
17
17
  @version = 'v1'
18
+ @auth_token_promotion = nil
18
19
  @credentials = nil
20
+ @secondary_auth_token = nil
21
+ end
22
+
23
+ ##
24
+ # @return [Twilio::REST::Accounts::V1::AuthTokenPromotionContext]
25
+ def auth_token_promotion
26
+ @auth_token_promotion ||= AuthTokenPromotionContext.new self
19
27
  end
20
28
 
21
29
  ##
@@ -24,6 +32,12 @@ module Twilio
24
32
  @credentials ||= CredentialList.new self
25
33
  end
26
34
 
35
+ ##
36
+ # @return [Twilio::REST::Accounts::V1::SecondaryAuthTokenContext]
37
+ def secondary_auth_token
38
+ @secondary_auth_token ||= SecondaryAuthTokenContext.new self
39
+ end
40
+
27
41
  ##
28
42
  # Provide a user friendly representation
29
43
  def to_s
@@ -0,0 +1,186 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Accounts < Domain
12
+ class V1 < Version
13
+ class AuthTokenPromotionList < ListResource
14
+ ##
15
+ # Initialize the AuthTokenPromotionList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [AuthTokenPromotionList] AuthTokenPromotionList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ end
24
+
25
+ ##
26
+ # Provide a user friendly representation
27
+ def to_s
28
+ '#<Twilio.Accounts.V1.AuthTokenPromotionList>'
29
+ end
30
+ end
31
+
32
+ class AuthTokenPromotionPage < Page
33
+ ##
34
+ # Initialize the AuthTokenPromotionPage
35
+ # @param [Version] version Version that contains the resource
36
+ # @param [Response] response Response from the API
37
+ # @param [Hash] solution Path solution for the resource
38
+ # @return [AuthTokenPromotionPage] AuthTokenPromotionPage
39
+ def initialize(version, response, solution)
40
+ super(version, response)
41
+
42
+ # Path Solution
43
+ @solution = solution
44
+ end
45
+
46
+ ##
47
+ # Build an instance of AuthTokenPromotionInstance
48
+ # @param [Hash] payload Payload response from the API
49
+ # @return [AuthTokenPromotionInstance] AuthTokenPromotionInstance
50
+ def get_instance(payload)
51
+ AuthTokenPromotionInstance.new(@version, payload, )
52
+ end
53
+
54
+ ##
55
+ # Provide a user friendly representation
56
+ def to_s
57
+ '<Twilio.Accounts.V1.AuthTokenPromotionPage>'
58
+ end
59
+ end
60
+
61
+ class AuthTokenPromotionContext < InstanceContext
62
+ ##
63
+ # Initialize the AuthTokenPromotionContext
64
+ # @param [Version] version Version that contains the resource
65
+ # @return [AuthTokenPromotionContext] AuthTokenPromotionContext
66
+ def initialize(version)
67
+ super(version)
68
+
69
+ # Path Solution
70
+ @solution = {}
71
+ @uri = "/AuthTokens/Promote"
72
+ end
73
+
74
+ ##
75
+ # Update the AuthTokenPromotionInstance
76
+ # @return [AuthTokenPromotionInstance] Updated AuthTokenPromotionInstance
77
+ def update
78
+ payload = @version.update('POST', @uri)
79
+
80
+ AuthTokenPromotionInstance.new(@version, payload, )
81
+ end
82
+
83
+ ##
84
+ # Provide a user friendly representation
85
+ def to_s
86
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
87
+ "#<Twilio.Accounts.V1.AuthTokenPromotionContext #{context}>"
88
+ end
89
+
90
+ ##
91
+ # Provide a detailed, user friendly representation
92
+ def inspect
93
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
94
+ "#<Twilio.Accounts.V1.AuthTokenPromotionContext #{context}>"
95
+ end
96
+ end
97
+
98
+ class AuthTokenPromotionInstance < InstanceResource
99
+ ##
100
+ # Initialize the AuthTokenPromotionInstance
101
+ # @param [Version] version Version that contains the resource
102
+ # @param [Hash] payload payload that contains response from Twilio
103
+ # @return [AuthTokenPromotionInstance] AuthTokenPromotionInstance
104
+ def initialize(version, payload)
105
+ super(version)
106
+
107
+ # Marshaled Properties
108
+ @properties = {
109
+ 'account_sid' => payload['account_sid'],
110
+ 'auth_token' => payload['auth_token'],
111
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
112
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
113
+ 'url' => payload['url'],
114
+ }
115
+
116
+ # Context
117
+ @instance_context = nil
118
+ @params = {}
119
+ end
120
+
121
+ ##
122
+ # Generate an instance context for the instance, the context is capable of
123
+ # performing various actions. All instance actions are proxied to the context
124
+ # @return [AuthTokenPromotionContext] AuthTokenPromotionContext for this AuthTokenPromotionInstance
125
+ def context
126
+ unless @instance_context
127
+ @instance_context = AuthTokenPromotionContext.new(@version, )
128
+ end
129
+ @instance_context
130
+ end
131
+
132
+ ##
133
+ # @return [String] The SID of the Account that the secondary Auth Token was created for
134
+ def account_sid
135
+ @properties['account_sid']
136
+ end
137
+
138
+ ##
139
+ # @return [String] The promoted Auth Token
140
+ def auth_token
141
+ @properties['auth_token']
142
+ end
143
+
144
+ ##
145
+ # @return [Time] The ISO 8601 formatted date and time in UTC when the resource was created
146
+ def date_created
147
+ @properties['date_created']
148
+ end
149
+
150
+ ##
151
+ # @return [Time] The ISO 8601 formatted date and time in UTC when the resource was last updated
152
+ def date_updated
153
+ @properties['date_updated']
154
+ end
155
+
156
+ ##
157
+ # @return [String] The URI for this resource, relative to `https://accounts.twilio.com`
158
+ def url
159
+ @properties['url']
160
+ end
161
+
162
+ ##
163
+ # Update the AuthTokenPromotionInstance
164
+ # @return [AuthTokenPromotionInstance] Updated AuthTokenPromotionInstance
165
+ def update
166
+ context.update
167
+ end
168
+
169
+ ##
170
+ # Provide a user friendly representation
171
+ def to_s
172
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
173
+ "<Twilio.Accounts.V1.AuthTokenPromotionInstance #{values}>"
174
+ end
175
+
176
+ ##
177
+ # Provide a detailed, user friendly representation
178
+ def inspect
179
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
180
+ "<Twilio.Accounts.V1.AuthTokenPromotionInstance #{values}>"
181
+ end
182
+ end
183
+ end
184
+ end
185
+ end
186
+ end