twilio-ruby 5.51.0 → 5.52.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe0a077fb4499a65063ab675b16e0f03e36020d23e08472076177070fca80fb7
4
- data.tar.gz: a44a751b49ef24c9101dd277f8a210e1e0473bc1a71184e7926765e493329a3f
3
+ metadata.gz: d99e1efb1e1e2c8f1ec1d259ad5b04698f53687fb7458c722a9bc6059ebbf0ad
4
+ data.tar.gz: 55d03d89201d62c477176cf9a7cc3febfe86af7a10f23803e447b78086ec7c20
5
5
  SHA512:
6
- metadata.gz: d582b7d61865ef2951ddc1822f7645a72d6a30c7a5cfbf8bb131076c1569bd24f4da0b7ee31d709c9e1d30cb595d3678fed85e467f99b232abcc4cc5d2c669f5
7
- data.tar.gz: 855ce01fe7b39596b6b717a97720ab796864eab3e22fbd3a90cac9e5617dca8c9d9ea8dd0cf2f672af0f8d164ad1bc17a831046de84f86abdb83f507c25d7159
6
+ metadata.gz: 9bf624df014df8c56d9c8bb31d39d436f858ac008d05a501392cf801401f0e6784418c65153117184f4d0c50f494647dd0ba04f1e16d8c99597acfda9c0a69ab
7
+ data.tar.gz: cda0c92b279012c44b60921e177619c7af1570a2bb6c7afcee165b3c988d7530e18972c8f281c4c71e9f8dc4f58db687dbb0dfd56a1da4d84966e742e2da3cc0
data/CHANGES.md CHANGED
@@ -1,6 +1,33 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2021-04-21] Version 5.52.0
5
+ ---------------------------
6
+ **Api**
7
+ - Revert Update the conference participant create `from` and `to` param to be endpoint type for supporting client identifier and sip address
8
+ - Update the conference participant create `from` and `to` param to be endpoint type for supporting client identifier and sip address
9
+
10
+ **Bulkexports**
11
+ - moving enum to doc root for auto generating documentation
12
+ - adding status enum and default output properties
13
+
14
+ **Events**
15
+ - Change schema_versions prop and key to versions **(breaking change)**
16
+
17
+ **Messaging**
18
+ - Add `use_inbound_webhook_on_number` field in Service API for fetch, create, update, read
19
+
20
+ **Taskrouter**
21
+ - Add `If-Match` Header based on ETag for Task Delete
22
+
23
+ **Verify**
24
+ - Add `AuthPayload` parameter to support verifying a `Challenge` upon creation. This is only supported for `totp` factors.
25
+ - Add support to resend the notifications of a `Challenge`. This is only supported for `push` factors.
26
+
27
+ **Twiml**
28
+ - Add Polly Neural voices.
29
+
30
+
4
31
  [2021-04-07] Version 5.51.0
5
32
  ---------------------------
6
33
  **Library - Chore**
data/README.md CHANGED
@@ -24,6 +24,7 @@ This library supports the following Ruby implementations:
24
24
  * Ruby 2.5
25
25
  * Ruby 2.6
26
26
  * Ruby 2.7
27
+ * Ruby 3.0
27
28
 
28
29
  ### Migrating from 4.x
29
30
 
@@ -34,13 +35,13 @@ This library supports the following Ruby implementations:
34
35
  To install using [Bundler][bundler] grab the latest stable version:
35
36
 
36
37
  ```ruby
37
- gem 'twilio-ruby', '~> 5.51.0'
38
+ gem 'twilio-ruby', '~> 5.52.0'
38
39
  ```
39
40
 
40
41
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
41
42
 
42
43
  ```bash
43
- gem install twilio-ruby -v 5.51.0
44
+ gem install twilio-ruby -v 5.52.0
44
45
  ```
45
46
 
46
47
  To build and install the development branch yourself from the latest source:
@@ -256,7 +256,7 @@ module Twilio
256
256
  end
257
257
 
258
258
  ##
259
- # @return [Hash] The details of a job state which is an object that contains a status string, a day count integer, and list of days in the job
259
+ # @return [Hash] The details of a job state which is an object that contains a `status` string, a day count integer, and list of days in the job
260
260
  def details
261
261
  @properties['details']
262
262
  end
@@ -169,7 +169,7 @@ module Twilio
169
169
  end
170
170
 
171
171
  ##
172
- # @return [Hash] This is a list of the completed, pending, or errored dates within the export time range, with one entry for each status with more than one day in that status
172
+ # @return [Hash] The details of a job state which is an object that contains a `status` string, a day count integer, and list of days in the job
173
173
  def details
174
174
  @properties['details']
175
175
  end
@@ -93,17 +93,17 @@ module Twilio
93
93
 
94
94
  ##
95
95
  # Access the versions
96
- # @return [VersionList]
97
- # @return [VersionContext] if schema_version was passed.
96
+ # @return [SchemaVersionList]
97
+ # @return [SchemaVersionContext] if schema_version was passed.
98
98
  def versions(schema_version=:unset)
99
99
  raise ArgumentError, 'schema_version cannot be nil' if schema_version.nil?
100
100
 
101
101
  if schema_version != :unset
102
- return VersionContext.new(@version, @solution[:id], schema_version, )
102
+ return SchemaVersionContext.new(@version, @solution[:id], schema_version, )
103
103
  end
104
104
 
105
105
  unless @versions
106
- @versions = VersionList.new(@version, id: @solution[:id], )
106
+ @versions = SchemaVersionList.new(@version, id: @solution[:id], )
107
107
  end
108
108
 
109
109
  @versions
@@ -142,8 +142,8 @@ module Twilio
142
142
  'id' => payload['id'],
143
143
  'url' => payload['url'],
144
144
  'links' => payload['links'],
145
- 'last_created' => Twilio.deserialize_iso8601_datetime(payload['last_created']),
146
- 'last_version' => payload['last_version'].to_i,
145
+ 'latest_version_date_created' => Twilio.deserialize_iso8601_datetime(payload['latest_version_date_created']),
146
+ 'latest_version' => payload['latest_version'].to_i,
147
147
  }
148
148
 
149
149
  # Context
@@ -181,15 +181,15 @@ module Twilio
181
181
  end
182
182
 
183
183
  ##
184
- # @return [Time] The date that the last schema version was created.
185
- def last_created
186
- @properties['last_created']
184
+ # @return [Time] The date that the latest schema version was created.
185
+ def latest_version_date_created
186
+ @properties['latest_version_date_created']
187
187
  end
188
188
 
189
189
  ##
190
- # @return [String] Last schema version.
191
- def last_version
192
- @properties['last_version']
190
+ # @return [String] Latest schema version.
191
+ def latest_version
192
+ @properties['latest_version']
193
193
  end
194
194
 
195
195
  ##
@@ -13,13 +13,13 @@ module Twilio
13
13
  class SchemaContext < InstanceContext
14
14
  ##
15
15
  # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
16
- class VersionList < ListResource
16
+ class SchemaVersionList < ListResource
17
17
  ##
18
- # Initialize the VersionList
18
+ # Initialize the SchemaVersionList
19
19
  # @param [Version] version Version that contains the resource
20
20
  # @param [String] id The unique identifier of the schema. Each schema can have
21
21
  # multiple versions, that share the same id.
22
- # @return [VersionList] VersionList
22
+ # @return [SchemaVersionList] SchemaVersionList
23
23
  def initialize(version, id: nil)
24
24
  super(version)
25
25
 
@@ -29,7 +29,7 @@ module Twilio
29
29
  end
30
30
 
31
31
  ##
32
- # Lists VersionInstance records from the API as a list.
32
+ # Lists SchemaVersionInstance records from the API as a list.
33
33
  # Unlike stream(), this operation is eager and will load `limit` records into
34
34
  # memory before returning.
35
35
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -44,7 +44,7 @@ module Twilio
44
44
  end
45
45
 
46
46
  ##
47
- # Streams VersionInstance records from the API as an Enumerable.
47
+ # Streams SchemaVersionInstance records from the API as an Enumerable.
48
48
  # This operation lazily loads records as efficiently as possible until the limit
49
49
  # is reached.
50
50
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -63,7 +63,7 @@ module Twilio
63
63
  end
64
64
 
65
65
  ##
66
- # When passed a block, yields VersionInstance records from the API.
66
+ # When passed a block, yields SchemaVersionInstance records from the API.
67
67
  # This operation lazily loads records as efficiently as possible until the limit
68
68
  # is reached.
69
69
  def each
@@ -77,12 +77,12 @@ module Twilio
77
77
  end
78
78
 
79
79
  ##
80
- # Retrieve a single page of VersionInstance records from the API.
80
+ # Retrieve a single page of SchemaVersionInstance records from the API.
81
81
  # Request is executed immediately.
82
82
  # @param [String] page_token PageToken provided by the API
83
83
  # @param [Integer] page_number Page Number, this value is simply for client state
84
84
  # @param [Integer] page_size Number of records to return, defaults to 50
85
- # @return [Page] Page of VersionInstance
85
+ # @return [Page] Page of SchemaVersionInstance
86
86
  def page(page_token: :unset, page_number: :unset, page_size: :unset)
87
87
  params = Twilio::Values.of({
88
88
  'PageToken' => page_token,
@@ -92,38 +92,38 @@ module Twilio
92
92
 
93
93
  response = @version.page('GET', @uri, params: params)
94
94
 
95
- VersionPage.new(@version, response, @solution)
95
+ SchemaVersionPage.new(@version, response, @solution)
96
96
  end
97
97
 
98
98
  ##
99
- # Retrieve a single page of VersionInstance records from the API.
99
+ # Retrieve a single page of SchemaVersionInstance records from the API.
100
100
  # Request is executed immediately.
101
101
  # @param [String] target_url API-generated URL for the requested results page
102
- # @return [Page] Page of VersionInstance
102
+ # @return [Page] Page of SchemaVersionInstance
103
103
  def get_page(target_url)
104
104
  response = @version.domain.request(
105
105
  'GET',
106
106
  target_url
107
107
  )
108
- VersionPage.new(@version, response, @solution)
108
+ SchemaVersionPage.new(@version, response, @solution)
109
109
  end
110
110
 
111
111
  ##
112
112
  # Provide a user friendly representation
113
113
  def to_s
114
- '#<Twilio.Events.V1.VersionList>'
114
+ '#<Twilio.Events.V1.SchemaVersionList>'
115
115
  end
116
116
  end
117
117
 
118
118
  ##
119
119
  # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
120
- class VersionPage < Page
120
+ class SchemaVersionPage < Page
121
121
  ##
122
- # Initialize the VersionPage
122
+ # Initialize the SchemaVersionPage
123
123
  # @param [Version] version Version that contains the resource
124
124
  # @param [Response] response Response from the API
125
125
  # @param [Hash] solution Path solution for the resource
126
- # @return [VersionPage] VersionPage
126
+ # @return [SchemaVersionPage] SchemaVersionPage
127
127
  def initialize(version, response, solution)
128
128
  super(version, response)
129
129
 
@@ -132,30 +132,30 @@ module Twilio
132
132
  end
133
133
 
134
134
  ##
135
- # Build an instance of VersionInstance
135
+ # Build an instance of SchemaVersionInstance
136
136
  # @param [Hash] payload Payload response from the API
137
- # @return [VersionInstance] VersionInstance
137
+ # @return [SchemaVersionInstance] SchemaVersionInstance
138
138
  def get_instance(payload)
139
- VersionInstance.new(@version, payload, id: @solution[:id], )
139
+ SchemaVersionInstance.new(@version, payload, id: @solution[:id], )
140
140
  end
141
141
 
142
142
  ##
143
143
  # Provide a user friendly representation
144
144
  def to_s
145
- '<Twilio.Events.V1.VersionPage>'
145
+ '<Twilio.Events.V1.SchemaVersionPage>'
146
146
  end
147
147
  end
148
148
 
149
149
  ##
150
150
  # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
151
- class VersionContext < InstanceContext
151
+ class SchemaVersionContext < InstanceContext
152
152
  ##
153
- # Initialize the VersionContext
153
+ # Initialize the SchemaVersionContext
154
154
  # @param [Version] version Version that contains the resource
155
155
  # @param [String] id The unique identifier of the schema. Each schema can have
156
156
  # multiple versions, that share the same id.
157
157
  # @param [String] schema_version The version of the schema
158
- # @return [VersionContext] VersionContext
158
+ # @return [SchemaVersionContext] SchemaVersionContext
159
159
  def initialize(version, id, schema_version)
160
160
  super(version)
161
161
 
@@ -165,12 +165,12 @@ module Twilio
165
165
  end
166
166
 
167
167
  ##
168
- # Fetch the VersionInstance
169
- # @return [VersionInstance] Fetched VersionInstance
168
+ # Fetch the SchemaVersionInstance
169
+ # @return [SchemaVersionInstance] Fetched SchemaVersionInstance
170
170
  def fetch
171
171
  payload = @version.fetch('GET', @uri)
172
172
 
173
- VersionInstance.new(
173
+ SchemaVersionInstance.new(
174
174
  @version,
175
175
  payload,
176
176
  id: @solution[:id],
@@ -182,28 +182,28 @@ module Twilio
182
182
  # Provide a user friendly representation
183
183
  def to_s
184
184
  context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
185
- "#<Twilio.Events.V1.VersionContext #{context}>"
185
+ "#<Twilio.Events.V1.SchemaVersionContext #{context}>"
186
186
  end
187
187
 
188
188
  ##
189
189
  # Provide a detailed, user friendly representation
190
190
  def inspect
191
191
  context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
192
- "#<Twilio.Events.V1.VersionContext #{context}>"
192
+ "#<Twilio.Events.V1.SchemaVersionContext #{context}>"
193
193
  end
194
194
  end
195
195
 
196
196
  ##
197
197
  # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
198
- class VersionInstance < InstanceResource
198
+ class SchemaVersionInstance < InstanceResource
199
199
  ##
200
- # Initialize the VersionInstance
200
+ # Initialize the SchemaVersionInstance
201
201
  # @param [Version] version Version that contains the resource
202
202
  # @param [Hash] payload payload that contains response from Twilio
203
203
  # @param [String] id The unique identifier of the schema. Each schema can have
204
204
  # multiple versions, that share the same id.
205
205
  # @param [String] schema_version The version of the schema
206
- # @return [VersionInstance] VersionInstance
206
+ # @return [SchemaVersionInstance] SchemaVersionInstance
207
207
  def initialize(version, payload, id: nil, schema_version: nil)
208
208
  super(version)
209
209
 
@@ -224,10 +224,10 @@ module Twilio
224
224
  ##
225
225
  # Generate an instance context for the instance, the context is capable of
226
226
  # performing various actions. All instance actions are proxied to the context
227
- # @return [VersionContext] VersionContext for this VersionInstance
227
+ # @return [SchemaVersionContext] SchemaVersionContext for this SchemaVersionInstance
228
228
  def context
229
229
  unless @instance_context
230
- @instance_context = VersionContext.new(@version, @params['id'], @params['schema_version'], )
230
+ @instance_context = SchemaVersionContext.new(@version, @params['id'], @params['schema_version'], )
231
231
  end
232
232
  @instance_context
233
233
  end
@@ -263,8 +263,8 @@ module Twilio
263
263
  end
264
264
 
265
265
  ##
266
- # Fetch the VersionInstance
267
- # @return [VersionInstance] Fetched VersionInstance
266
+ # Fetch the SchemaVersionInstance
267
+ # @return [SchemaVersionInstance] Fetched SchemaVersionInstance
268
268
  def fetch
269
269
  context.fetch
270
270
  end
@@ -273,14 +273,14 @@ module Twilio
273
273
  # Provide a user friendly representation
274
274
  def to_s
275
275
  values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
276
- "<Twilio.Events.V1.VersionInstance #{values}>"
276
+ "<Twilio.Events.V1.SchemaVersionInstance #{values}>"
277
277
  end
278
278
 
279
279
  ##
280
280
  # Provide a detailed, user friendly representation
281
281
  def inspect
282
282
  values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
283
- "<Twilio.Events.V1.VersionInstance #{values}>"
283
+ "<Twilio.Events.V1.SchemaVersionInstance #{values}>"
284
284
  end
285
285
  end
286
286
  end
@@ -110,10 +110,11 @@ module Twilio
110
110
  ##
111
111
  # Create the SubscribedEventInstance
112
112
  # @param [String] type Type of event being subscribed to.
113
- # @param [String] version The schema version that the subscription should use.
113
+ # @param [String] schema_version The schema version that the subscription should
114
+ # use.
114
115
  # @return [SubscribedEventInstance] Created SubscribedEventInstance
115
- def create(type: nil, version: :unset)
116
- data = Twilio::Values.of({'Type' => type, 'Version' => version, })
116
+ def create(type: nil, schema_version: :unset)
117
+ data = Twilio::Values.of({'Type' => type, 'SchemaVersion' => schema_version, })
117
118
 
118
119
  payload = @version.create('POST', @uri, data: data)
119
120
 
@@ -191,10 +192,11 @@ module Twilio
191
192
 
192
193
  ##
193
194
  # Update the SubscribedEventInstance
194
- # @param [String] version The schema version that the subscription should use.
195
+ # @param [String] schema_version The schema version that the subscription should
196
+ # use.
195
197
  # @return [SubscribedEventInstance] Updated SubscribedEventInstance
196
- def update(version: :unset)
197
- data = Twilio::Values.of({'Version' => version, })
198
+ def update(schema_version: :unset)
199
+ data = Twilio::Values.of({'SchemaVersion' => schema_version, })
198
200
 
199
201
  payload = @version.update('POST', @uri, data: data)
200
202
 
@@ -245,7 +247,7 @@ module Twilio
245
247
  @properties = {
246
248
  'account_sid' => payload['account_sid'],
247
249
  'type' => payload['type'],
248
- 'version' => payload['version'].to_i,
250
+ 'schema_version' => payload['schema_version'].to_i,
249
251
  'subscription_sid' => payload['subscription_sid'],
250
252
  'url' => payload['url'],
251
253
  }
@@ -284,8 +286,8 @@ module Twilio
284
286
 
285
287
  ##
286
288
  # @return [String] The schema version that the subscription should use.
287
- def version
288
- @properties['version']
289
+ def schema_version
290
+ @properties['schema_version']
289
291
  end
290
292
 
291
293
  ##
@@ -309,10 +311,11 @@ module Twilio
309
311
 
310
312
  ##
311
313
  # Update the SubscribedEventInstance
312
- # @param [String] version The schema version that the subscription should use.
314
+ # @param [String] schema_version The schema version that the subscription should
315
+ # use.
313
316
  # @return [SubscribedEventInstance] Updated SubscribedEventInstance
314
- def update(version: :unset)
315
- context.update(version: version, )
317
+ def update(schema_version: :unset)
318
+ context.update(schema_version: schema_version, )
316
319
  end
317
320
 
318
321
  ##
@@ -29,15 +29,20 @@ module Twilio
29
29
  # Create the ServiceInstance
30
30
  # @param [String] friendly_name A descriptive string that you create to describe
31
31
  # the resource. It can be up to 64 characters long.
32
- # @param [String] inbound_request_url The URL we should call using
33
- # `inbound_method` when a message is received by any phone number or short code in
34
- # the Service. When this property is `null`, receiving inbound messages is
35
- # disabled.
32
+ # @param [String] inbound_request_url The URL we call using `inbound_method` when
33
+ # a message is received by any phone number or short code in the Service. When
34
+ # this property is `null`, receiving inbound messages is disabled. All messages
35
+ # sent to the Twilio phone number or short code will not be logged and received on
36
+ # the Account. If the `use_inbound_webhook_on_number` field is enabled then the
37
+ # webhook url defined on the phone number will override the `inbound_request_url`
38
+ # defined for the Messaging Service.
36
39
  # @param [String] inbound_method The HTTP method we should use to call
37
40
  # `inbound_request_url`. Can be `GET` or `POST` and the default is `POST`.
38
- # @param [String] fallback_url The URL that we should call using `fallback_method`
39
- # if an error occurs while retrieving or executing the TwiML from the Inbound
40
- # Request URL.
41
+ # @param [String] fallback_url The URL that we call using `fallback_method` if an
42
+ # error occurs while retrieving or executing the TwiML from the Inbound Request
43
+ # URL. If the `use_inbound_webhook_on_number` field is enabled then the webhook
44
+ # url defined on the phone number will override the `fallback_url` defined for the
45
+ # Messaging Service.
41
46
  # @param [String] fallback_method The HTTP method we should use to call
42
47
  # `fallback_url`. Can be: `GET` or `POST`.
43
48
  # @param [String] status_callback The URL we should call to {pass status
@@ -62,8 +67,14 @@ module Twilio
62
67
  # @param [String] validity_period How long, in seconds, messages sent from the
63
68
  # Service are valid. Can be an integer from `1` to `14,400`.
64
69
  # @param [Boolean] synchronous_validation Reserved.
70
+ # @param [Boolean] use_inbound_webhook_on_number A boolean value that indicates
71
+ # either the webhook url configured on the phone number will be used or
72
+ # `inbound_request_url`/`fallback_url` url will be called when a message is
73
+ # received from the phone number. If this field is enabled then the webhook url
74
+ # defined on the phone number will override the
75
+ # `inbound_request_url`/`fallback_url` defined for the Messaging Service.
65
76
  # @return [ServiceInstance] Created ServiceInstance
66
- def create(friendly_name: nil, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset)
77
+ def create(friendly_name: nil, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset, use_inbound_webhook_on_number: :unset)
67
78
  data = Twilio::Values.of({
68
79
  'FriendlyName' => friendly_name,
69
80
  'InboundRequestUrl' => inbound_request_url,
@@ -79,6 +90,7 @@ module Twilio
79
90
  'AreaCodeGeomatch' => area_code_geomatch,
80
91
  'ValidityPeriod' => validity_period,
81
92
  'SynchronousValidation' => synchronous_validation,
93
+ 'UseInboundWebhookOnNumber' => use_inbound_webhook_on_number,
82
94
  })
83
95
 
84
96
  payload = @version.create('POST', @uri, data: data)
@@ -231,15 +243,20 @@ module Twilio
231
243
  # Update the ServiceInstance
232
244
  # @param [String] friendly_name A descriptive string that you create to describe
233
245
  # the resource. It can be up to 64 characters long.
234
- # @param [String] inbound_request_url The URL we should call using
235
- # `inbound_method` when a message is received by any phone number or short code in
236
- # the Service. When this property is `null`, receiving inbound messages is
237
- # disabled.
246
+ # @param [String] inbound_request_url The URL we call using `inbound_method` when
247
+ # a message is received by any phone number or short code in the Service. When
248
+ # this property is `null`, receiving inbound messages is disabled. All messages
249
+ # sent to the Twilio phone number or short code will not be logged and received on
250
+ # the Account. If the `use_inbound_webhook_on_number` field is enabled then the
251
+ # webhook url defined on the phone number will override the `inbound_request_url`
252
+ # defined for the Messaging Service.
238
253
  # @param [String] inbound_method The HTTP method we should use to call
239
254
  # `inbound_request_url`. Can be `GET` or `POST` and the default is `POST`.
240
- # @param [String] fallback_url The URL that we should call using `fallback_method`
241
- # if an error occurs while retrieving or executing the TwiML from the Inbound
242
- # Request URL.
255
+ # @param [String] fallback_url The URL that we call using `fallback_method` if an
256
+ # error occurs while retrieving or executing the TwiML from the Inbound Request
257
+ # URL. If the `use_inbound_webhook_on_number` field is enabled then the webhook
258
+ # url defined on the phone number will override the `fallback_url` defined for the
259
+ # Messaging Service.
243
260
  # @param [String] fallback_method The HTTP method we should use to call
244
261
  # `fallback_url`. Can be: `GET` or `POST`.
245
262
  # @param [String] status_callback The URL we should call to {pass status
@@ -264,8 +281,14 @@ module Twilio
264
281
  # @param [String] validity_period How long, in seconds, messages sent from the
265
282
  # Service are valid. Can be an integer from `1` to `14,400`.
266
283
  # @param [Boolean] synchronous_validation Reserved.
284
+ # @param [Boolean] use_inbound_webhook_on_number A boolean value that indicates
285
+ # either the webhook url configured on the phone number will be used or
286
+ # `inbound_request_url`/`fallback_url` url will be called when a message is
287
+ # received from the phone number. If this field is enabled then the webhook url
288
+ # defined on the phone number will override the
289
+ # `inbound_request_url`/`fallback_url` defined for the Messaging Service.
267
290
  # @return [ServiceInstance] Updated ServiceInstance
268
- def update(friendly_name: :unset, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset)
291
+ def update(friendly_name: :unset, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset, use_inbound_webhook_on_number: :unset)
269
292
  data = Twilio::Values.of({
270
293
  'FriendlyName' => friendly_name,
271
294
  'InboundRequestUrl' => inbound_request_url,
@@ -281,6 +304,7 @@ module Twilio
281
304
  'AreaCodeGeomatch' => area_code_geomatch,
282
305
  'ValidityPeriod' => validity_period,
283
306
  'SynchronousValidation' => synchronous_validation,
307
+ 'UseInboundWebhookOnNumber' => use_inbound_webhook_on_number,
284
308
  })
285
309
 
286
310
  payload = @version.update('POST', @uri, data: data)
@@ -434,6 +458,7 @@ module Twilio
434
458
  'validity_period' => payload['validity_period'].to_i,
435
459
  'url' => payload['url'],
436
460
  'links' => payload['links'],
461
+ 'use_inbound_webhook_on_number' => payload['use_inbound_webhook_on_number'],
437
462
  }
438
463
 
439
464
  # Context
@@ -483,7 +508,7 @@ module Twilio
483
508
  end
484
509
 
485
510
  ##
486
- # @return [String] The URL we call using inbound_method when a message is received by any phone number or short code in the Service
511
+ # @return [String] The URL we call using inbound_method when a message is received by any phone number or short code in the Service. This field will be overridden if the `use_inbound_webhook_on_number` field is enabled.
487
512
  def inbound_request_url
488
513
  @properties['inbound_request_url']
489
514
  end
@@ -495,7 +520,7 @@ module Twilio
495
520
  end
496
521
 
497
522
  ##
498
- # @return [String] The URL that we call using fallback_method if an error occurs while retrieving or executing the TwiML from the Inbound Request URL
523
+ # @return [String] The URL that we call using fallback_method if an error occurs while retrieving or executing the TwiML from the Inbound Request URL. This field will be overridden if the `use_inbound_webhook_on_number` field is enabled.
499
524
  def fallback_url
500
525
  @properties['fallback_url']
501
526
  end
@@ -572,19 +597,30 @@ module Twilio
572
597
  @properties['links']
573
598
  end
574
599
 
600
+ ##
601
+ # @return [Boolean] If enabled, the webhook url configured on the phone number will be used and will override the `inbound_request_url`/`fallback_url` url called when an inbound message is received.
602
+ def use_inbound_webhook_on_number
603
+ @properties['use_inbound_webhook_on_number']
604
+ end
605
+
575
606
  ##
576
607
  # Update the ServiceInstance
577
608
  # @param [String] friendly_name A descriptive string that you create to describe
578
609
  # the resource. It can be up to 64 characters long.
579
- # @param [String] inbound_request_url The URL we should call using
580
- # `inbound_method` when a message is received by any phone number or short code in
581
- # the Service. When this property is `null`, receiving inbound messages is
582
- # disabled.
610
+ # @param [String] inbound_request_url The URL we call using `inbound_method` when
611
+ # a message is received by any phone number or short code in the Service. When
612
+ # this property is `null`, receiving inbound messages is disabled. All messages
613
+ # sent to the Twilio phone number or short code will not be logged and received on
614
+ # the Account. If the `use_inbound_webhook_on_number` field is enabled then the
615
+ # webhook url defined on the phone number will override the `inbound_request_url`
616
+ # defined for the Messaging Service.
583
617
  # @param [String] inbound_method The HTTP method we should use to call
584
618
  # `inbound_request_url`. Can be `GET` or `POST` and the default is `POST`.
585
- # @param [String] fallback_url The URL that we should call using `fallback_method`
586
- # if an error occurs while retrieving or executing the TwiML from the Inbound
587
- # Request URL.
619
+ # @param [String] fallback_url The URL that we call using `fallback_method` if an
620
+ # error occurs while retrieving or executing the TwiML from the Inbound Request
621
+ # URL. If the `use_inbound_webhook_on_number` field is enabled then the webhook
622
+ # url defined on the phone number will override the `fallback_url` defined for the
623
+ # Messaging Service.
588
624
  # @param [String] fallback_method The HTTP method we should use to call
589
625
  # `fallback_url`. Can be: `GET` or `POST`.
590
626
  # @param [String] status_callback The URL we should call to {pass status
@@ -609,8 +645,14 @@ module Twilio
609
645
  # @param [String] validity_period How long, in seconds, messages sent from the
610
646
  # Service are valid. Can be an integer from `1` to `14,400`.
611
647
  # @param [Boolean] synchronous_validation Reserved.
648
+ # @param [Boolean] use_inbound_webhook_on_number A boolean value that indicates
649
+ # either the webhook url configured on the phone number will be used or
650
+ # `inbound_request_url`/`fallback_url` url will be called when a message is
651
+ # received from the phone number. If this field is enabled then the webhook url
652
+ # defined on the phone number will override the
653
+ # `inbound_request_url`/`fallback_url` defined for the Messaging Service.
612
654
  # @return [ServiceInstance] Updated ServiceInstance
613
- def update(friendly_name: :unset, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset)
655
+ def update(friendly_name: :unset, inbound_request_url: :unset, inbound_method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, sticky_sender: :unset, mms_converter: :unset, smart_encoding: :unset, scan_message_content: :unset, fallback_to_long_code: :unset, area_code_geomatch: :unset, validity_period: :unset, synchronous_validation: :unset, use_inbound_webhook_on_number: :unset)
614
656
  context.update(
615
657
  friendly_name: friendly_name,
616
658
  inbound_request_url: inbound_request_url,
@@ -626,6 +668,7 @@ module Twilio
626
668
  area_code_geomatch: area_code_geomatch,
627
669
  validity_period: validity_period,
628
670
  synchronous_validation: synchronous_validation,
671
+ use_inbound_webhook_on_number: use_inbound_webhook_on_number,
629
672
  )
630
673
  end
631
674
 
@@ -53,8 +53,8 @@ module Twilio
53
53
  # Lists SmsCommandInstance records from the API as a list.
54
54
  # Unlike stream(), this operation is eager and will load `limit` records into
55
55
  # memory before returning.
56
- # @param [String] sim The SID or unique name of the Sim that SMS Command was sent
57
- # to or from.
56
+ # @param [String] sim The SID or unique name of the Sim resource that SMS Command
57
+ # was sent to or from.
58
58
  # @param [sms_command.Status] status The status of the SMS Command. Can be:
59
59
  # `queued`, `sent`, `delivered`, `received` or `failed`. See the {SMS Command
60
60
  # Status
@@ -85,8 +85,8 @@ module Twilio
85
85
  # Streams SmsCommandInstance records from the API as an Enumerable.
86
86
  # This operation lazily loads records as efficiently as possible until the limit
87
87
  # is reached.
88
- # @param [String] sim The SID or unique name of the Sim that SMS Command was sent
89
- # to or from.
88
+ # @param [String] sim The SID or unique name of the Sim resource that SMS Command
89
+ # was sent to or from.
90
90
  # @param [sms_command.Status] status The status of the SMS Command. Can be:
91
91
  # `queued`, `sent`, `delivered`, `received` or `failed`. See the {SMS Command
92
92
  # Status
@@ -128,8 +128,8 @@ module Twilio
128
128
  ##
129
129
  # Retrieve a single page of SmsCommandInstance records from the API.
130
130
  # Request is executed immediately.
131
- # @param [String] sim The SID or unique name of the Sim that SMS Command was sent
132
- # to or from.
131
+ # @param [String] sim The SID or unique name of the Sim resource that SMS Command
132
+ # was sent to or from.
133
133
  # @param [sms_command.Status] status The status of the SMS Command. Can be:
134
134
  # `queued`, `sent`, `delivered`, `received` or `failed`. See the {SMS Command
135
135
  # Status
@@ -360,9 +360,16 @@ module Twilio
360
360
 
361
361
  ##
362
362
  # Delete the TaskInstance
363
+ # @param [String] if_match If provided, deletes this Task if (and only if) the
364
+ # {ETag}[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag] header of
365
+ # the Task matches the provided value. This matches the semantics of (and is
366
+ # implemented with) the HTTP {If-Match
367
+ # header}[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match].
363
368
  # @return [Boolean] true if delete succeeds, false otherwise
364
- def delete
365
- @version.delete('DELETE', @uri)
369
+ def delete(if_match: :unset)
370
+ headers = Twilio::Values.of({'If-Match' => if_match, })
371
+
372
+ @version.delete('DELETE', @uri, headers: headers)
366
373
  end
367
374
 
368
375
  ##
@@ -623,9 +630,14 @@ module Twilio
623
630
 
624
631
  ##
625
632
  # Delete the TaskInstance
633
+ # @param [String] if_match If provided, deletes this Task if (and only if) the
634
+ # {ETag}[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag] header of
635
+ # the Task matches the provided value. This matches the semantics of (and is
636
+ # implemented with) the HTTP {If-Match
637
+ # header}[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match].
626
638
  # @return [Boolean] true if delete succeeds, false otherwise
627
- def delete
628
- context.delete
639
+ def delete(if_match: :unset)
640
+ context.delete(if_match: if_match, )
629
641
  end
630
642
 
631
643
  ##
@@ -60,8 +60,21 @@ module Twilio
60
60
  # factors. Set the FCM Credential for this service. This will allow to send push
61
61
  # notifications to Android devices. See {Credential
62
62
  # Resource}[https://www.twilio.com/docs/notify/api/credential-resource]
63
+ # @param [String] totp_issuer Optional configuration for the TOTP factors. Set
64
+ # TOTP Issuer for this service. This will allow to configure the issuer of the
65
+ # TOTP URI. Defaults to the service friendly name if not provided.
66
+ # @param [String] totp_time_step Optional configuration for the TOTP factors.
67
+ # Defines how often, in seconds, are TOTP codes generated. i.e, a new TOTP code is
68
+ # generated every time_step seconds. Must be between 20 and 60 seconds, inclusive.
69
+ # Defaults to 30 seconds
70
+ # @param [String] totp_code_length Optional configuration for the TOTP factors.
71
+ # Number of digits for generated TOTP codes. Must be between 3 and 8, inclusive.
72
+ # Defaults to 6
73
+ # @param [String] totp_skew Optional configuration for the TOTP factors. The
74
+ # number of time-steps, past and future, that are valid for validation of TOTP
75
+ # codes. Must be between 0 and 2, inclusive. Defaults to 1
63
76
  # @return [ServiceInstance] Created ServiceInstance
64
- def create(friendly_name: nil, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset)
77
+ def create(friendly_name: nil, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset, totp_issuer: :unset, totp_time_step: :unset, totp_code_length: :unset, totp_skew: :unset)
65
78
  data = Twilio::Values.of({
66
79
  'FriendlyName' => friendly_name,
67
80
  'CodeLength' => code_length,
@@ -75,6 +88,10 @@ module Twilio
75
88
  'Push.IncludeDate' => push_include_date,
76
89
  'Push.ApnCredentialSid' => push_apn_credential_sid,
77
90
  'Push.FcmCredentialSid' => push_fcm_credential_sid,
91
+ 'Totp.Issuer' => totp_issuer,
92
+ 'Totp.TimeStep' => totp_time_step,
93
+ 'Totp.CodeLength' => totp_code_length,
94
+ 'Totp.Skew' => totp_skew,
78
95
  })
79
96
 
80
97
  payload = @version.create('POST', @uri, data: data)
@@ -273,8 +290,21 @@ module Twilio
273
290
  # factors. Set the FCM Credential for this service. This will allow to send push
274
291
  # notifications to Android devices. See {Credential
275
292
  # Resource}[https://www.twilio.com/docs/notify/api/credential-resource]
293
+ # @param [String] totp_issuer Optional configuration for the TOTP factors. Set
294
+ # TOTP Issuer for this service. This will allow to configure the issuer of the
295
+ # TOTP URI.
296
+ # @param [String] totp_time_step Optional configuration for the TOTP factors.
297
+ # Defines how often, in seconds, are TOTP codes generated. i.e, a new TOTP code is
298
+ # generated every time_step seconds. Must be between 20 and 60 seconds, inclusive.
299
+ # Defaults to 30 seconds
300
+ # @param [String] totp_code_length Optional configuration for the TOTP factors.
301
+ # Number of digits for generated TOTP codes. Must be between 3 and 8, inclusive.
302
+ # Defaults to 6
303
+ # @param [String] totp_skew Optional configuration for the TOTP factors. The
304
+ # number of time-steps, past and future, that are valid for validation of TOTP
305
+ # codes. Must be between 0 and 2, inclusive. Defaults to 1
276
306
  # @return [ServiceInstance] Updated ServiceInstance
277
- def update(friendly_name: :unset, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset)
307
+ def update(friendly_name: :unset, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset, totp_issuer: :unset, totp_time_step: :unset, totp_code_length: :unset, totp_skew: :unset)
278
308
  data = Twilio::Values.of({
279
309
  'FriendlyName' => friendly_name,
280
310
  'CodeLength' => code_length,
@@ -288,6 +318,10 @@ module Twilio
288
318
  'Push.IncludeDate' => push_include_date,
289
319
  'Push.ApnCredentialSid' => push_apn_credential_sid,
290
320
  'Push.FcmCredentialSid' => push_fcm_credential_sid,
321
+ 'Totp.Issuer' => totp_issuer,
322
+ 'Totp.TimeStep' => totp_time_step,
323
+ 'Totp.CodeLength' => totp_code_length,
324
+ 'Totp.Skew' => totp_skew,
291
325
  })
292
326
 
293
327
  payload = @version.update('POST', @uri, data: data)
@@ -449,6 +483,7 @@ module Twilio
449
483
  'do_not_share_warning_enabled' => payload['do_not_share_warning_enabled'],
450
484
  'custom_code_enabled' => payload['custom_code_enabled'],
451
485
  'push' => payload['push'],
486
+ 'totp' => payload['totp'],
452
487
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
453
488
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
454
489
  'url' => payload['url'],
@@ -543,6 +578,12 @@ module Twilio
543
578
  @properties['push']
544
579
  end
545
580
 
581
+ ##
582
+ # @return [Hash] The service level configuration of factor TOTP type.
583
+ def totp
584
+ @properties['totp']
585
+ end
586
+
546
587
  ##
547
588
  # @return [Time] The RFC 2822 date and time in GMT when the resource was created
548
589
  def date_created
@@ -616,8 +657,21 @@ module Twilio
616
657
  # factors. Set the FCM Credential for this service. This will allow to send push
617
658
  # notifications to Android devices. See {Credential
618
659
  # Resource}[https://www.twilio.com/docs/notify/api/credential-resource]
660
+ # @param [String] totp_issuer Optional configuration for the TOTP factors. Set
661
+ # TOTP Issuer for this service. This will allow to configure the issuer of the
662
+ # TOTP URI.
663
+ # @param [String] totp_time_step Optional configuration for the TOTP factors.
664
+ # Defines how often, in seconds, are TOTP codes generated. i.e, a new TOTP code is
665
+ # generated every time_step seconds. Must be between 20 and 60 seconds, inclusive.
666
+ # Defaults to 30 seconds
667
+ # @param [String] totp_code_length Optional configuration for the TOTP factors.
668
+ # Number of digits for generated TOTP codes. Must be between 3 and 8, inclusive.
669
+ # Defaults to 6
670
+ # @param [String] totp_skew Optional configuration for the TOTP factors. The
671
+ # number of time-steps, past and future, that are valid for validation of TOTP
672
+ # codes. Must be between 0 and 2, inclusive. Defaults to 1
619
673
  # @return [ServiceInstance] Updated ServiceInstance
620
- def update(friendly_name: :unset, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset)
674
+ def update(friendly_name: :unset, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset, custom_code_enabled: :unset, push_include_date: :unset, push_apn_credential_sid: :unset, push_fcm_credential_sid: :unset, totp_issuer: :unset, totp_time_step: :unset, totp_code_length: :unset, totp_skew: :unset)
621
675
  context.update(
622
676
  friendly_name: friendly_name,
623
677
  code_length: code_length,
@@ -631,6 +685,10 @@ module Twilio
631
685
  push_include_date: push_include_date,
632
686
  push_apn_credential_sid: push_apn_credential_sid,
633
687
  push_fcm_credential_sid: push_fcm_credential_sid,
688
+ totp_issuer: totp_issuer,
689
+ totp_time_step: totp_time_step,
690
+ totp_code_length: totp_code_length,
691
+ totp_skew: totp_skew,
634
692
  )
635
693
  end
636
694
 
@@ -45,14 +45,18 @@ module Twilio
45
45
  # @param [Hash] hidden_details Details provided to give context about the
46
46
  # Challenge. Not shown to the end user. It must be a stringified JSON with only
47
47
  # strings values eg. `{"ip": "172.168.1.234"}`
48
+ # @param [String] auth_payload Optional payload used to verify the Challenge upon
49
+ # creation. Only used with a Factor of type `totp` to carry an OTP used in the
50
+ # verification.
48
51
  # @return [ChallengeInstance] Created ChallengeInstance
49
- def create(factor_sid: nil, expiration_date: :unset, details_message: :unset, details_fields: :unset, hidden_details: :unset)
52
+ def create(factor_sid: nil, expiration_date: :unset, details_message: :unset, details_fields: :unset, hidden_details: :unset, auth_payload: :unset)
50
53
  data = Twilio::Values.of({
51
54
  'FactorSid' => factor_sid,
52
55
  'ExpirationDate' => Twilio.serialize_iso8601_datetime(expiration_date),
53
56
  'Details.Message' => details_message,
54
57
  'Details.Fields' => Twilio.serialize_list(details_fields) { |e| Twilio.serialize_object(e) },
55
58
  'HiddenDetails' => Twilio.serialize_object(hidden_details),
59
+ 'AuthPayload' => auth_payload,
56
60
  })
57
61
 
58
62
  payload = @version.create('POST', @uri, data: data)
@@ -219,6 +223,9 @@ module Twilio
219
223
  # Path Solution
220
224
  @solution = {service_sid: service_sid, identity: identity, sid: sid, }
221
225
  @uri = "/Services/#{@solution[:service_sid]}/Entities/#{@solution[:identity]}/Challenges/#{@solution[:sid]}"
226
+
227
+ # Dependents
228
+ @notifications = nil
222
229
  end
223
230
 
224
231
  ##
@@ -255,6 +262,23 @@ module Twilio
255
262
  )
256
263
  end
257
264
 
265
+ ##
266
+ # Access the notifications
267
+ # @return [NotificationList]
268
+ # @return [NotificationContext]
269
+ def notifications
270
+ unless @notifications
271
+ @notifications = NotificationList.new(
272
+ @version,
273
+ service_sid: @solution[:service_sid],
274
+ identity: @solution[:identity],
275
+ challenge_sid: @solution[:sid],
276
+ )
277
+ end
278
+
279
+ @notifications
280
+ end
281
+
258
282
  ##
259
283
  # Provide a user friendly representation
260
284
  def to_s
@@ -304,6 +328,7 @@ module Twilio
304
328
  'hidden_details' => payload['hidden_details'],
305
329
  'factor_type' => payload['factor_type'],
306
330
  'url' => payload['url'],
331
+ 'links' => payload['links'],
307
332
  }
308
333
 
309
334
  # Context
@@ -423,6 +448,12 @@ module Twilio
423
448
  @properties['url']
424
449
  end
425
450
 
451
+ ##
452
+ # @return [String] Nested resource URLs.
453
+ def links
454
+ @properties['links']
455
+ end
456
+
426
457
  ##
427
458
  # Fetch the ChallengeInstance
428
459
  # @return [ChallengeInstance] Fetched ChallengeInstance
@@ -439,6 +470,13 @@ module Twilio
439
470
  context.update(auth_payload: auth_payload, )
440
471
  end
441
472
 
473
+ ##
474
+ # Access the notifications
475
+ # @return [notifications] notifications
476
+ def notifications
477
+ context.notifications
478
+ end
479
+
442
480
  ##
443
481
  # Provide a user friendly representation
444
482
  def to_s
@@ -0,0 +1,202 @@
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 Verify < Domain
12
+ class V2 < Version
13
+ class ServiceContext < InstanceContext
14
+ class EntityContext < InstanceContext
15
+ class ChallengeContext < InstanceContext
16
+ ##
17
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
18
+ class NotificationList < ListResource
19
+ ##
20
+ # Initialize the NotificationList
21
+ # @param [Version] version Version that contains the resource
22
+ # @param [String] service_sid The unique SID identifier of the Service.
23
+ # @param [String] identity Customer unique identity for the Entity owner of the
24
+ # Challenge. This value must be between 8 and 64 characters long.
25
+ # @param [String] challenge_sid The unique SID identifier of the Challenge.
26
+ # @return [NotificationList] NotificationList
27
+ def initialize(version, service_sid: nil, identity: nil, challenge_sid: nil)
28
+ super(version)
29
+
30
+ # Path Solution
31
+ @solution = {service_sid: service_sid, identity: identity, challenge_sid: challenge_sid}
32
+ @uri = "/Services/#{@solution[:service_sid]}/Entities/#{@solution[:identity]}/Challenges/#{@solution[:challenge_sid]}/Notifications"
33
+ end
34
+
35
+ ##
36
+ # Create the NotificationInstance
37
+ # @param [String] ttl How long, in seconds, the Notification is valid. Delivery
38
+ # will be attempted if the device is offline until the TTL elapses. 0 means that
39
+ # the notification delivery is attempted immediately, only once, and is not stored
40
+ # for future delivery. Must be an integer between 0 and 300 seconds, inclusive.
41
+ # Defaults to 300 seconds.
42
+ # @return [NotificationInstance] Created NotificationInstance
43
+ def create(ttl: :unset)
44
+ data = Twilio::Values.of({'Ttl' => ttl, })
45
+
46
+ payload = @version.create('POST', @uri, data: data)
47
+
48
+ NotificationInstance.new(
49
+ @version,
50
+ payload,
51
+ service_sid: @solution[:service_sid],
52
+ identity: @solution[:identity],
53
+ challenge_sid: @solution[:challenge_sid],
54
+ )
55
+ end
56
+
57
+ ##
58
+ # Provide a user friendly representation
59
+ def to_s
60
+ '#<Twilio.Verify.V2.NotificationList>'
61
+ end
62
+ end
63
+
64
+ ##
65
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
66
+ class NotificationPage < Page
67
+ ##
68
+ # Initialize the NotificationPage
69
+ # @param [Version] version Version that contains the resource
70
+ # @param [Response] response Response from the API
71
+ # @param [Hash] solution Path solution for the resource
72
+ # @return [NotificationPage] NotificationPage
73
+ def initialize(version, response, solution)
74
+ super(version, response)
75
+
76
+ # Path Solution
77
+ @solution = solution
78
+ end
79
+
80
+ ##
81
+ # Build an instance of NotificationInstance
82
+ # @param [Hash] payload Payload response from the API
83
+ # @return [NotificationInstance] NotificationInstance
84
+ def get_instance(payload)
85
+ NotificationInstance.new(
86
+ @version,
87
+ payload,
88
+ service_sid: @solution[:service_sid],
89
+ identity: @solution[:identity],
90
+ challenge_sid: @solution[:challenge_sid],
91
+ )
92
+ end
93
+
94
+ ##
95
+ # Provide a user friendly representation
96
+ def to_s
97
+ '<Twilio.Verify.V2.NotificationPage>'
98
+ end
99
+ end
100
+
101
+ ##
102
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
103
+ class NotificationInstance < InstanceResource
104
+ ##
105
+ # Initialize the NotificationInstance
106
+ # @param [Version] version Version that contains the resource
107
+ # @param [Hash] payload payload that contains response from Twilio
108
+ # @param [String] service_sid The unique SID identifier of the Service.
109
+ # @param [String] identity Customer unique identity for the Entity owner of the
110
+ # Challenge. This value must be between 8 and 64 characters long.
111
+ # @param [String] challenge_sid The unique SID identifier of the Challenge.
112
+ # @return [NotificationInstance] NotificationInstance
113
+ def initialize(version, payload, service_sid: nil, identity: nil, challenge_sid: nil)
114
+ super(version)
115
+
116
+ # Marshaled Properties
117
+ @properties = {
118
+ 'sid' => payload['sid'],
119
+ 'account_sid' => payload['account_sid'],
120
+ 'service_sid' => payload['service_sid'],
121
+ 'entity_sid' => payload['entity_sid'],
122
+ 'identity' => payload['identity'],
123
+ 'challenge_sid' => payload['challenge_sid'],
124
+ 'priority' => payload['priority'],
125
+ 'ttl' => payload['ttl'].to_i,
126
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
127
+ }
128
+ end
129
+
130
+ ##
131
+ # @return [String] A string that uniquely identifies this Notification.
132
+ def sid
133
+ @properties['sid']
134
+ end
135
+
136
+ ##
137
+ # @return [String] Account Sid.
138
+ def account_sid
139
+ @properties['account_sid']
140
+ end
141
+
142
+ ##
143
+ # @return [String] Service Sid.
144
+ def service_sid
145
+ @properties['service_sid']
146
+ end
147
+
148
+ ##
149
+ # @return [String] Entity Sid.
150
+ def entity_sid
151
+ @properties['entity_sid']
152
+ end
153
+
154
+ ##
155
+ # @return [String] Unique external identifier of the Entity
156
+ def identity
157
+ @properties['identity']
158
+ end
159
+
160
+ ##
161
+ # @return [String] Challenge Sid.
162
+ def challenge_sid
163
+ @properties['challenge_sid']
164
+ end
165
+
166
+ ##
167
+ # @return [String] The priority of the Notification.
168
+ def priority
169
+ @properties['priority']
170
+ end
171
+
172
+ ##
173
+ # @return [String] How long, in seconds, the Notification is valid.
174
+ def ttl
175
+ @properties['ttl']
176
+ end
177
+
178
+ ##
179
+ # @return [Time] The date this Notification was created
180
+ def date_created
181
+ @properties['date_created']
182
+ end
183
+
184
+ ##
185
+ # Provide a user friendly representation
186
+ def to_s
187
+ "<Twilio.Verify.V2.NotificationInstance>"
188
+ end
189
+
190
+ ##
191
+ # Provide a detailed, user friendly representation
192
+ def inspect
193
+ "<Twilio.Verify.V2.NotificationInstance>"
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end
202
+ end
@@ -37,7 +37,8 @@ module Twilio
37
37
  # @param [String] friendly_name The friendly name of this Factor. It can be up to
38
38
  # 64 characters.
39
39
  # @param [new_factor.FactorTypes] factor_type The Type of this Factor. Currently
40
- # only `push` is supported
40
+ # `push` and `totp` are supported. For `totp` to work, you need to contact Twilio
41
+ # sales first to have the Verify TOTP feature enabled for your Twilio account.
41
42
  # @param [String] binding_alg The algorithm used when `factor_type` is `push`.
42
43
  # Algorithm supported: `ES256`
43
44
  # @param [String] binding_public_key The Ecdsa public key in PKIX, ASN.1 DER
@@ -58,12 +59,16 @@ module Twilio
58
59
  # Base32
59
60
  # @param [String] config_time_step Defines how often, in seconds, are TOTP codes
60
61
  # generated. i.e, a new TOTP code is generated every time_step seconds. Must be
61
- # between 20 and 60 seconds, inclusive. Defaults to 30 seconds
62
+ # between 20 and 60 seconds, inclusive. The default value is defined at the
63
+ # service level in the property totp.time_step. If not configured defaults to 30
64
+ # seconds
62
65
  # @param [String] config_skew The number of time-steps, past and future, that are
63
- # valid for validation of TOTP codes. Must be between 0 and 2, inclusive. Defaults
64
- # to 1
66
+ # valid for validation of TOTP codes. Must be between 0 and 2, inclusive. The
67
+ # default value is defined at the service level in the property totp.skew. If not
68
+ # configured defaults to 1
65
69
  # @param [String] config_code_length Number of digits for generated TOTP codes.
66
- # Must be between 3 and 8, inclusive. Defaults to 6
70
+ # Must be between 3 and 8, inclusive. The default value is defined at the service
71
+ # level in the property totp.code_length. If not configured defaults to 6
67
72
  # @param [new_factor.TotpAlgorithms] config_alg The algorithm used to derive the
68
73
  # TOTP codes. Can be `sha1`, `sha256` or `sha512`. Defaults to `sha1`
69
74
  # @return [NewFactorInstance] Created NewFactorInstance
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.51.0'
2
+ VERSION = '5.52.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.51.0
4
+ version: 5.52.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twilio API Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-07 00:00:00.000000000 Z
11
+ date: 2021-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -413,7 +413,7 @@ files:
413
413
  - lib/twilio-ruby/rest/events/v1.rb
414
414
  - lib/twilio-ruby/rest/events/v1/event_type.rb
415
415
  - lib/twilio-ruby/rest/events/v1/schema.rb
416
- - lib/twilio-ruby/rest/events/v1/schema/schema_version.rb
416
+ - lib/twilio-ruby/rest/events/v1/schema/version.rb
417
417
  - lib/twilio-ruby/rest/events/v1/sink.rb
418
418
  - lib/twilio-ruby/rest/events/v1/sink/sink_test.rb
419
419
  - lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb
@@ -691,6 +691,7 @@ files:
691
691
  - lib/twilio-ruby/rest/verify/v2/service/access_token.rb
692
692
  - lib/twilio-ruby/rest/verify/v2/service/entity.rb
693
693
  - lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb
694
+ - lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb
694
695
  - lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb
695
696
  - lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb
696
697
  - lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb