twilio-ruby 5.16.0 → 5.17.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 (34) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +22 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +5 -1
  5. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +1 -1
  6. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +1 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +3 -3
  8. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +2 -2
  9. data/lib/twilio-ruby/rest/authy.rb +9 -9
  10. data/lib/twilio-ruby/rest/authy/v1.rb +16 -16
  11. data/lib/twilio-ruby/rest/authy/v1/form.rb +18 -18
  12. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +6 -12
  13. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +6 -13
  14. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +25 -3
  15. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +25 -3
  16. data/lib/twilio-ruby/rest/preview.rb +13 -20
  17. data/lib/twilio-ruby/rest/preview/marketplace.rb +13 -13
  18. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +6 -3
  19. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +6 -3
  20. data/lib/twilio-ruby/rest/verify/v1/service/verification.rb +4 -1
  21. data/lib/twilio-ruby/rest/video.rb +9 -9
  22. data/lib/twilio-ruby/rest/video/v1.rb +16 -16
  23. data/lib/twilio-ruby/version.rb +1 -1
  24. data/spec/integration/authy/v1/form_spec.rb +1 -1
  25. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +5 -10
  26. data/spec/integration/authy/v1/service/entity/factor_spec.rb +3 -3
  27. data/spec/integration/chat/v2/service/channel/member_spec.rb +4 -0
  28. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +4 -0
  29. metadata +3 -10
  30. data/lib/twilio-ruby/rest/preview/authy.rb +0 -43
  31. data/lib/twilio-ruby/rest/preview/authy/service.rb +0 -364
  32. data/lib/twilio-ruby/rest/preview/authy/service/entity.rb +0 -326
  33. data/spec/integration/preview/authy/service/entity_spec.rb +0 -173
  34. data/spec/integration/preview/authy/service_spec.rb +0 -201
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 990fdb17dd39d71d342bee9cc7d71f0bd939214b
4
- data.tar.gz: af52a8ab2f0fa61c7b0885fdf823e87c5d799a94
2
+ SHA256:
3
+ metadata.gz: 76bee160e21650babe371c8f045b020200e802d65d9553ade40a9f27a0cb1454
4
+ data.tar.gz: 8a48441e1b442b85976a0a5b731a45bb7895be15be33b981d6a7bcfb8f2b729f
5
5
  SHA512:
6
- metadata.gz: fcda9a64dcc8b8d084aace47dd2c393007fa95c91d0ca1bc76d46ffb47778befc475da8863f7ec3b6cf4b8507e2b858fd2ceee58205fee20af75c8346fb9eb3b
7
- data.tar.gz: '09227a35d7584c5fab94983896117435fb15e1adc42372093f308b517f7d25abc91f2cfcbc128015b0fe6d0f3188beda79176e70fe8e8b47e3e5f1b0baadc2b1'
6
+ metadata.gz: 1c01b2cd4e9afba17aaebae337eabbd928d1de846de76373e2062d5b2796bccdb71267ba8164e2c3b65a0018987e11f12216022c8eac4ab42ce33447187cc17b
7
+ data.tar.gz: 755535e5ba8b07e7310fffc001b5d746f4a98d60cb64ab090438e291fa4b48f27b2a46c0e1faefb4016dda299989a72068d50731acb8de5ff1f6bee31a1f53d7
data/CHANGES.md CHANGED
@@ -1,6 +1,28 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2018-11-30] Version 5.17.0
5
+ ----------------------------
6
+ **Api**
7
+ - Add `interactive_data` optional param to Messages create request
8
+
9
+ **Authy**
10
+ - Required authentication for `/v1/Forms/{type}` endpoint **(breaking change)**
11
+ - Removed `Challenge.reason` to `Challenge.responded_reason`
12
+ - Removed `verification_sid` from Challenge responses
13
+ - Removed `config` param from the Factor creation
14
+ - Replaced all occurrences of `FactorType` and `FormType` in favor of a unified `Type` **(breaking change)**
15
+
16
+ **Chat**
17
+ - Add Member attributes
18
+
19
+ **Preview**
20
+ - Removed `Authy` version from `preview` subdomain in favor to `authy` subdomain. **(breaking change)**
21
+
22
+ **Verify**
23
+ - Add `CustomCode` optional parameter on Verication creation.
24
+
25
+
4
26
  [2018-11-16] Version 5.16.0
5
27
  ----------------------------
6
28
  **Messaging**
data/README.md CHANGED
@@ -27,13 +27,13 @@ in-line code documentation here in the library.
27
27
  To install using [Bundler][bundler] grab the latest stable version:
28
28
 
29
29
  ```ruby
30
- gem 'twilio-ruby', '~> 5.16.0'
30
+ gem 'twilio-ruby', '~> 5.17.0'
31
31
  ```
32
32
 
33
33
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
34
34
 
35
35
  ```bash
36
- gem install twilio-ruby -v 5.16.0
36
+ gem install twilio-ruby -v 5.17.0
37
37
  ```
38
38
 
39
39
  To build and install the development branch yourself from the latest source:
@@ -74,6 +74,9 @@ module Twilio
74
74
  # @param [message.ContentRetention] content_retention The content_retention
75
75
  # @param [message.AddressRetention] address_retention The address_retention
76
76
  # @param [Boolean] smart_encoded The smart_encoded
77
+ # @param [String] interactive_data A JSON string that represents interactive
78
+ # message which is a category of messages including list picker, time picker, and
79
+ # an Apple Pay request.
77
80
  # @param [String] from A Twilio phone number (in
78
81
  # [E.164](https://www.twilio.com/docs/glossary/what-e164) format), [alphanumeric
79
82
  # sender
@@ -104,7 +107,7 @@ module Twilio
104
107
  # You may include up to 10 MediaUrls per message. *Sending images via SMS is
105
108
  # currently only possible in the US and Canada*
106
109
  # @return [MessageInstance] Newly created MessageInstance
107
- def create(to: nil, status_callback: :unset, application_sid: :unset, max_price: :unset, provide_feedback: :unset, validity_period: :unset, max_rate: :unset, force_delivery: :unset, provider_sid: :unset, content_retention: :unset, address_retention: :unset, smart_encoded: :unset, from: :unset, messaging_service_sid: :unset, body: :unset, media_url: :unset)
110
+ def create(to: nil, status_callback: :unset, application_sid: :unset, max_price: :unset, provide_feedback: :unset, validity_period: :unset, max_rate: :unset, force_delivery: :unset, provider_sid: :unset, content_retention: :unset, address_retention: :unset, smart_encoded: :unset, interactive_data: :unset, from: :unset, messaging_service_sid: :unset, body: :unset, media_url: :unset)
108
111
  data = Twilio::Values.of({
109
112
  'To' => to,
110
113
  'From' => from,
@@ -122,6 +125,7 @@ module Twilio
122
125
  'ContentRetention' => content_retention,
123
126
  'AddressRetention' => address_retention,
124
127
  'SmartEncoded' => smart_encoded,
128
+ 'InteractiveData' => interactive_data,
125
129
  })
126
130
 
127
131
  payload = @version.create(
@@ -56,7 +56,7 @@ module Twilio
56
56
 
57
57
  ##
58
58
  # Access the ip_access_control_lists
59
- # @param [String] sid The ip-access-control-list Sid that uniquely identifies this
59
+ # @param [String] sid The IpAccessControlList Sid that uniquely identifies this
60
60
  # resource
61
61
  # @return [IpAccessControlListList]
62
62
  # @return [IpAccessControlListContext] if sid was passed.
@@ -113,7 +113,7 @@ module Twilio
113
113
  # Retrieve a single page of CredentialListInstance records from the API.
114
114
  # Request is executed immediately.
115
115
  # @param [String] friendly_name A human readable descriptive text that describes
116
- # the IpAccessControlList, up to 64 characters long.
116
+ # the CredentialList, up to 64 characters long.
117
117
  # @return [CredentialListInstance] Newly created CredentialListInstance
118
118
  def create(friendly_name: nil)
119
119
  data = Twilio::Values.of({'FriendlyName' => friendly_name, })
@@ -117,7 +117,7 @@ module Twilio
117
117
  # @param [String] username The username that will be passed when authenticating
118
118
  # SIP requests. The username should be sent in response to Twilio’s challenge of
119
119
  # the initial INVITE. It can be up to 32 characters long.
120
- # @param [String] password The password that the username will use when when
120
+ # @param [String] password The password that the username will use when
121
121
  # authenticating SIP requests. The password must be a minimum of 12 characters,
122
122
  # contain at least 1 digit, and have mixed case. (eg “IWasAtSignal2018”)
123
123
  # @return [CredentialInstance] Newly created CredentialInstance
@@ -218,7 +218,7 @@ module Twilio
218
218
 
219
219
  ##
220
220
  # Update the CredentialInstance
221
- # @param [String] password The password that the username will use when when
221
+ # @param [String] password The password that the username will use when
222
222
  # authenticating SIP requests. The password must be a minimum of 12 characters,
223
223
  # contain at least 1 digit, and have mixed case. (eg “IWasAtSignal2018”)
224
224
  # @return [CredentialInstance] Updated CredentialInstance
@@ -355,7 +355,7 @@ module Twilio
355
355
 
356
356
  ##
357
357
  # Update the CredentialInstance
358
- # @param [String] password The password that the username will use when when
358
+ # @param [String] password The password that the username will use when
359
359
  # authenticating SIP requests. The password must be a minimum of 12 characters,
360
360
  # contain at least 1 digit, and have mixed case. (eg “IWasAtSignal2018”)
361
361
  # @return [CredentialInstance] Updated CredentialInstance
@@ -168,7 +168,7 @@ module Twilio
168
168
  # Initialize the IpAccessControlListContext
169
169
  # @param [Version] version Version that contains the resource
170
170
  # @param [String] account_sid The account_sid
171
- # @param [String] sid The ip-access-control-list Sid that uniquely identifies this
171
+ # @param [String] sid The IpAccessControlList Sid that uniquely identifies this
172
172
  # resource
173
173
  # @return [IpAccessControlListContext] IpAccessControlListContext
174
174
  def initialize(version, account_sid, sid)
@@ -268,7 +268,7 @@ module Twilio
268
268
  # @param [Hash] payload payload that contains response from Twilio
269
269
  # @param [String] account_sid A 34 character string that uniquely identifies this
270
270
  # resource.
271
- # @param [String] sid The ip-access-control-list Sid that uniquely identifies this
271
+ # @param [String] sid The IpAccessControlList Sid that uniquely identifies this
272
272
  # resource
273
273
  # @return [IpAccessControlListInstance] IpAccessControlListInstance
274
274
  def initialize(version, payload, account_sid: nil, sid: nil)
@@ -28,6 +28,15 @@ module Twilio
28
28
  @v1 ||= V1.new self
29
29
  end
30
30
 
31
+ ##
32
+ # @param [form.FormTypes] type The Type of this Form. One of `form-app-push`,
33
+ # `form-sms` or `form-totp`.
34
+ # @return [Twilio::REST::Authy::V1::FormInstance] if type was passed.
35
+ # @return [Twilio::REST::Authy::V1::FormList]
36
+ def forms(type=:unset)
37
+ self.v1.forms(type)
38
+ end
39
+
31
40
  ##
32
41
  # @param [String] sid A 34 character string that uniquely identifies this Service.
33
42
  # @return [Twilio::REST::Authy::V1::ServiceInstance] if sid was passed.
@@ -36,15 +45,6 @@ module Twilio
36
45
  self.v1.services(sid)
37
46
  end
38
47
 
39
- ##
40
- # @param [form.FormType] form_type The Form Type of this Form. One of
41
- # `form-app-push`, `form-sms` or `form-totp`.
42
- # @return [Twilio::REST::Authy::V1::FormInstance] if form_type was passed.
43
- # @return [Twilio::REST::Authy::V1::FormList]
44
- def forms(form_type=:unset)
45
- self.v1.forms(form_type)
46
- end
47
-
48
48
  ##
49
49
  # Provide a user friendly representation
50
50
  def to_s
@@ -15,8 +15,23 @@ module Twilio
15
15
  def initialize(domain)
16
16
  super
17
17
  @version = 'v1'
18
- @services = nil
19
18
  @forms = nil
19
+ @services = nil
20
+ end
21
+
22
+ ##
23
+ # @param [form.FormTypes] type The Type of this Form. One of `form-app-push`,
24
+ # `form-sms` or `form-totp`.
25
+ # @return [Twilio::REST::Authy::V1::FormContext] if type was passed.
26
+ # @return [Twilio::REST::Authy::V1::FormList]
27
+ def forms(type=:unset)
28
+ if type.nil?
29
+ raise ArgumentError, 'type cannot be nil'
30
+ elsif type == :unset
31
+ @forms ||= FormList.new self
32
+ else
33
+ FormContext.new(self, type)
34
+ end
20
35
  end
21
36
 
22
37
  ##
@@ -33,21 +48,6 @@ module Twilio
33
48
  end
34
49
  end
35
50
 
36
- ##
37
- # @param [form.FormType] form_type The Form Type of this Form. One of
38
- # `form-app-push`, `form-sms` or `form-totp`.
39
- # @return [Twilio::REST::Authy::V1::FormContext] if form_type was passed.
40
- # @return [Twilio::REST::Authy::V1::FormList]
41
- def forms(form_type=:unset)
42
- if form_type.nil?
43
- raise ArgumentError, 'form_type cannot be nil'
44
- elsif form_type == :unset
45
- @forms ||= FormList.new self
46
- else
47
- FormContext.new(self, form_type)
48
- end
49
- end
50
-
51
51
  ##
52
52
  # Provide a user friendly representation
53
53
  def to_s
@@ -68,15 +68,15 @@ module Twilio
68
68
  ##
69
69
  # Initialize the FormContext
70
70
  # @param [Version] version Version that contains the resource
71
- # @param [form.FormType] form_type The Form Type of this Form. One of
72
- # `form-app-push`, `form-sms` or `form-totp`.
71
+ # @param [form.FormTypes] type The Type of this Form. One of `form-app-push`,
72
+ # `form-sms` or `form-totp`.
73
73
  # @return [FormContext] FormContext
74
- def initialize(version, form_type)
74
+ def initialize(version, type)
75
75
  super(version)
76
76
 
77
77
  # Path Solution
78
- @solution = {form_type: form_type, }
79
- @uri = "/Forms/#{@solution[:form_type]}"
78
+ @solution = {type: type, }
79
+ @uri = "/Forms/#{@solution[:type]}"
80
80
  end
81
81
 
82
82
  ##
@@ -91,7 +91,7 @@ module Twilio
91
91
  params,
92
92
  )
93
93
 
94
- FormInstance.new(@version, payload, form_type: @solution[:form_type], )
94
+ FormInstance.new(@version, payload, type: @solution[:type], )
95
95
  end
96
96
 
97
97
  ##
@@ -109,15 +109,15 @@ module Twilio
109
109
  # Initialize the FormInstance
110
110
  # @param [Version] version Version that contains the resource
111
111
  # @param [Hash] payload payload that contains response from Twilio
112
- # @param [form.FormType] form_type The Form Type of this Form. One of
113
- # `form-app-push`, `form-sms` or `form-totp`.
112
+ # @param [form.FormTypes] type The Type of this Form. One of `form-app-push`,
113
+ # `form-sms` or `form-totp`.
114
114
  # @return [FormInstance] FormInstance
115
- def initialize(version, payload, form_type: nil)
115
+ def initialize(version, payload, type: nil)
116
116
  super(version)
117
117
 
118
118
  # Marshaled Properties
119
119
  @properties = {
120
- 'form_type' => payload['form_type'],
120
+ 'type' => payload['type'],
121
121
  'forms' => payload['forms'],
122
122
  'form_meta' => payload['form_meta'],
123
123
  'url' => payload['url'],
@@ -125,7 +125,7 @@ module Twilio
125
125
 
126
126
  # Context
127
127
  @instance_context = nil
128
- @params = {'form_type' => form_type || @properties['form_type'], }
128
+ @params = {'type' => type || @properties['type'], }
129
129
  end
130
130
 
131
131
  ##
@@ -134,31 +134,31 @@ module Twilio
134
134
  # @return [FormContext] FormContext for this FormInstance
135
135
  def context
136
136
  unless @instance_context
137
- @instance_context = FormContext.new(@version, @params['form_type'], )
137
+ @instance_context = FormContext.new(@version, @params['type'], )
138
138
  end
139
139
  @instance_context
140
140
  end
141
141
 
142
142
  ##
143
- # @return [form.FormType] The Form Type of this Form
144
- def form_type
145
- @properties['form_type']
143
+ # @return [form.FormTypes] The Type of this Form
144
+ def type
145
+ @properties['type']
146
146
  end
147
147
 
148
148
  ##
149
- # @return [Hash] Object that contains the available forms for this form type.
149
+ # @return [Hash] Object that contains the available forms for this type.
150
150
  def forms
151
151
  @properties['forms']
152
152
  end
153
153
 
154
154
  ##
155
- # @return [Hash] Additional information for the available forms for this form type.
155
+ # @return [Hash] Additional information for the available forms for this type.
156
156
  def form_meta
157
157
  @properties['form_meta']
158
158
  end
159
159
 
160
160
  ##
161
- # @return [String] The URL to access the forms for this form type.
161
+ # @return [String] The URL to access the forms for this type.
162
162
  def url
163
163
  @properties['url']
164
164
  end
@@ -36,18 +36,12 @@ module Twilio
36
36
  # @param [String] binding A unique binding for this Factor that identifies it.
37
37
  # E.g. a phone number for `sms` factors. Required when creating a new Factor. This
38
38
  # value is never returned because it can contain customer secrets.
39
- # @param [String] factor_type The Type of this Factor. One of `app-push`, `sms`,
40
- # `totp`, etc.
41
39
  # @param [String] friendly_name The friendly name of this Factor
42
- # @param [String] config Optional configuration for the Factor
40
+ # @param [factor.FactorTypes] type The Type of this Factor. One of `app-push`,
41
+ # `sms`, `totp`, etc.
43
42
  # @return [FactorInstance] Newly created FactorInstance
44
- def create(binding: nil, factor_type: nil, friendly_name: nil, config: :unset)
45
- data = Twilio::Values.of({
46
- 'Binding' => binding,
47
- 'FactorType' => factor_type,
48
- 'FriendlyName' => friendly_name,
49
- 'Config' => config,
50
- })
43
+ def create(binding: nil, friendly_name: nil, type: nil)
44
+ data = Twilio::Values.of({'Binding' => binding, 'FriendlyName' => friendly_name, 'Type' => type, })
51
45
 
52
46
  payload = @version.create(
53
47
  'POST',
@@ -399,13 +393,13 @@ module Twilio
399
393
  end
400
394
 
401
395
  ##
402
- # @return [factor.FactorStatus] The Status of this Factor
396
+ # @return [factor.FactorStatuses] The Status of this Factor
403
397
  def status
404
398
  @properties['status']
405
399
  end
406
400
 
407
401
  ##
408
- # @return [String] The Type of this Factor
402
+ # @return [factor.FactorTypes] The Type of this Factor
409
403
  def type
410
404
  @properties['type']
411
405
  end
@@ -221,9 +221,8 @@ module Twilio
221
221
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
222
222
  'date_responded' => Twilio.deserialize_iso8601_datetime(payload['date_responded']),
223
223
  'expiration_date' => Twilio.deserialize_iso8601_datetime(payload['expiration_date']),
224
- 'verification_sid' => payload['verification_sid'],
225
224
  'status' => payload['status'],
226
- 'reason' => payload['reason'],
225
+ 'responded_reason' => payload['responded_reason'],
227
226
  'details' => payload['details'],
228
227
  'hidden_details' => payload['hidden_details'],
229
228
  'type' => payload['type'],
@@ -318,21 +317,15 @@ module Twilio
318
317
  end
319
318
 
320
319
  ##
321
- # @return [String] Verification Sid.
322
- def verification_sid
323
- @properties['verification_sid']
324
- end
325
-
326
- ##
327
- # @return [challenge.ChallengeStatus] The Status of this Challenge
320
+ # @return [challenge.ChallengeStatuses] The Status of this Challenge
328
321
  def status
329
322
  @properties['status']
330
323
  end
331
324
 
332
325
  ##
333
- # @return [challenge.ChallengeReason] The Reason of this Challenge `status`
334
- def reason
335
- @properties['reason']
326
+ # @return [challenge.ChallengeReasons] The Reason of this Challenge `status`
327
+ def responded_reason
328
+ @properties['responded_reason']
336
329
  end
337
330
 
338
331
  ##
@@ -348,7 +341,7 @@ module Twilio
348
341
  end
349
342
 
350
343
  ##
351
- # @return [String] The Factor Type of this Challenge
344
+ # @return [challenge.FactorTypes] The Type of this Challenge
352
345
  def type
353
346
  @properties['type']
354
347
  end
@@ -55,8 +55,12 @@ module Twilio
55
55
  # Chat service if not specified. Note that this should only be used in cases
56
56
  # where a Member is being recreated from a backup/separate source and where a
57
57
  # Member was previously updated.
58
+ # @param [String] attributes An optional string metadata field you can use to
59
+ # store any data you wish. The string value must contain structurally valid JSON
60
+ # if specified. **Note** that if the attributes are not set "{}" will be
61
+ # returned.
58
62
  # @return [MemberInstance] Newly created MemberInstance
59
- def create(identity: nil, role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset)
63
+ def create(identity: nil, role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset, attributes: :unset)
60
64
  data = Twilio::Values.of({
61
65
  'Identity' => identity,
62
66
  'RoleSid' => role_sid,
@@ -64,6 +68,7 @@ module Twilio
64
68
  'LastConsumptionTimestamp' => Twilio.serialize_iso8601_datetime(last_consumption_timestamp),
65
69
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
66
70
  'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
71
+ 'Attributes' => attributes,
67
72
  })
68
73
 
69
74
  payload = @version.create(
@@ -287,14 +292,19 @@ module Twilio
287
292
  # Chat service if not specified. Note that this should only be used in cases
288
293
  # where a Member is being recreated from a backup/separate source and where a
289
294
  # Member was previously updated.
295
+ # @param [String] attributes An optional string metadata field you can use to
296
+ # store any data you wish. The string value must contain structurally valid JSON
297
+ # if specified. **Note** that if the attributes are not set "{}" will be
298
+ # returned.
290
299
  # @return [MemberInstance] Updated MemberInstance
291
- def update(role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset)
300
+ def update(role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset, attributes: :unset)
292
301
  data = Twilio::Values.of({
293
302
  'RoleSid' => role_sid,
294
303
  'LastConsumedMessageIndex' => last_consumed_message_index,
295
304
  'LastConsumptionTimestamp' => Twilio.serialize_iso8601_datetime(last_consumption_timestamp),
296
305
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
297
306
  'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
307
+ 'Attributes' => attributes,
298
308
  })
299
309
 
300
310
  payload = @version.update(
@@ -349,6 +359,7 @@ module Twilio
349
359
  'last_consumed_message_index' => payload['last_consumed_message_index'] == nil ? payload['last_consumed_message_index'] : payload['last_consumed_message_index'].to_i,
350
360
  'last_consumption_timestamp' => Twilio.deserialize_iso8601_datetime(payload['last_consumption_timestamp']),
351
361
  'url' => payload['url'],
362
+ 'attributes' => payload['attributes'],
352
363
  }
353
364
 
354
365
  # Context
@@ -442,6 +453,12 @@ module Twilio
442
453
  @properties['url']
443
454
  end
444
455
 
456
+ ##
457
+ # @return [String] An optional string metadata field you can use to store any data you wish.
458
+ def attributes
459
+ @properties['attributes']
460
+ end
461
+
445
462
  ##
446
463
  # Fetch a MemberInstance
447
464
  # @return [MemberInstance] Fetched MemberInstance
@@ -475,14 +492,19 @@ module Twilio
475
492
  # Chat service if not specified. Note that this should only be used in cases
476
493
  # where a Member is being recreated from a backup/separate source and where a
477
494
  # Member was previously updated.
495
+ # @param [String] attributes An optional string metadata field you can use to
496
+ # store any data you wish. The string value must contain structurally valid JSON
497
+ # if specified. **Note** that if the attributes are not set "{}" will be
498
+ # returned.
478
499
  # @return [MemberInstance] Updated MemberInstance
479
- def update(role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset)
500
+ def update(role_sid: :unset, last_consumed_message_index: :unset, last_consumption_timestamp: :unset, date_created: :unset, date_updated: :unset, attributes: :unset)
480
501
  context.update(
481
502
  role_sid: role_sid,
482
503
  last_consumed_message_index: last_consumed_message_index,
483
504
  last_consumption_timestamp: last_consumption_timestamp,
484
505
  date_created: date_created,
485
506
  date_updated: date_updated,
507
+ attributes: attributes,
486
508
  )
487
509
  end
488
510