twilio-ruby 7.8.8 → 7.9.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
  SHA1:
3
- metadata.gz: 2b11058a2f22cd95283f218eb0ead8ea6b142992
4
- data.tar.gz: d51db32ebc6312550f6ed59fbe6d58b9fe1cc8a2
3
+ metadata.gz: 7d7b336bf9b2991bc49c17ca8c21bf48d30404a3
4
+ data.tar.gz: ebfe33678601bcffdea47d8d9ba87986ba076a57
5
5
  SHA512:
6
- metadata.gz: a2c86f3c669803955244b87d44a7ef30baad9226eb6d065c7c98762a99b3ec43b403bb5e034e8cb1774fd76970a5192ac7051ee233162b77341100ea8c85bcaa
7
- data.tar.gz: 1852bb1350df711ca233eb055277b20613b71b99bd9bcb4420d2ca89c43656deb8982b4cb9838b778b9344e564911f3ef2ad52d0f467db17f17de5646de8dc1c
6
+ metadata.gz: 15e023044c5b7f71d47ca46f950be16a9bf92f9953d7934b8b6e57fcaf70a6119d9130642267e1387330ad57cc8f7bfee405c148e32ce48ace22a45abc9d70e2
7
+ data.tar.gz: 5038a92dd9a0d1f862d9778854347fe32e539966bee7cdc8d975f366df059543548369fd6dc70f9a1966be5ca5d63d0e09ecee86c88e5405f80a52fec41a8e40
@@ -17,7 +17,7 @@ jobs:
17
17
  timeout-minutes: 20
18
18
  strategy:
19
19
  matrix:
20
- ruby: [ '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', 'jruby-9.3', 'jruby-9.4' ]
20
+ ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', 'jruby-9.3', 'jruby-9.4' ]
21
21
  steps:
22
22
  - name: Checkout twilio-ruby
23
23
  uses: actions/checkout@v3
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ docs/_build
19
19
 
20
20
 
21
21
  coverage
22
+ vendor/bundle
data/CHANGES.md CHANGED
@@ -1,6 +1,26 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2025-12-17] Version 7.9.0
5
+ --------------------------
6
+ **Library - Chore**
7
+ - [PR #771](https://github.com/twilio/twilio-ruby/pull/771): Patch support method. Thanks to [@manisha1997](https://github.com/manisha1997)!
8
+ - [PR #766](https://github.com/twilio/twilio-ruby/pull/766): Support all status codes for delete. Thanks to [@manisha1997](https://github.com/manisha1997)!
9
+ - [PR #769](https://github.com/twilio/twilio-ruby/pull/769): URL query percent encoded. Thanks to [@manisha1997](https://github.com/manisha1997)!
10
+
11
+ **Library - Fix**
12
+ - [PR #770](https://github.com/twilio/twilio-ruby/pull/770): bug fix. Thanks to [@manisha1997](https://github.com/manisha1997)!
13
+
14
+ **Trunking**
15
+ - Corrected the type used for phone number capabilities when accessed through a Trunk. **(breaking change)**
16
+ - Corrected the type used for phone number capabilities when accessed through a Trunk. **(breaking change)**
17
+
18
+ **Trusthub**
19
+ - Added new parameters in in toll-free initialize api payload.
20
+ - Remove the invalid status transition to Draft from the examples
21
+ - Change the value of email to a valid one in the examples.
22
+
23
+
4
24
  [2025-12-03] Version 7.8.8
5
25
  --------------------------
6
26
  **Library - Fix**
data/README.md CHANGED
@@ -39,13 +39,13 @@ This library supports the following Ruby implementations:
39
39
  To install using [Bundler][bundler] grab the latest stable version:
40
40
 
41
41
  ```ruby
42
- gem 'twilio-ruby', '~> 7.8.8'
42
+ gem 'twilio-ruby', '~> 7.9.0'
43
43
  ```
44
44
 
45
45
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
46
46
 
47
47
  ```bash
48
- gem install twilio-ruby -v 7.8.8
48
+ gem install twilio-ruby -v 7.9.0
49
49
  ```
50
50
 
51
51
  To build and install the development branch yourself from the latest source:
@@ -27,15 +27,10 @@ module Twilio
27
27
  @username = username || Twilio.account_sid
28
28
  @password = password || Twilio.auth_token
29
29
  @region = region || Twilio.region
30
- if (region.nil? && !Twilio.edge.nil?) || (!region.nil? && Twilio.edge.nil?)
31
- # rubocop:disable Layout/LineLength
32
- warn '[DEPRECATION] For regional processing, DNS is of format product.<edge>.<region>.twilio.com;otherwise use product.twilio.com.'
33
- end
34
30
  if Twilio.edge
35
31
  @edge = Twilio.edge
36
32
  elsif @region && @@region_mappings[region]
37
33
  warn '[DEPRECATION] Setting default `Edge` for the provided `region`.'
38
- # rubocop:enable Layout/LineLength
39
34
  @edge = @@region_mappings[region]
40
35
  end
41
36
  @account_sid = account_sid || @username
@@ -101,6 +96,11 @@ module Twilio
101
96
  ##
102
97
  # Build the final request uri
103
98
  def build_uri(uri)
99
+ if (@region.nil? && !@edge.nil?) || (!@region.nil? && @edge.nil?)
100
+ # rubocop:disable Layout/LineLength
101
+ warn '[DEPRECATION] For regional processing, DNS is of format product.<edge>.<region>.twilio.com;otherwise use product.twilio.com.'
102
+ # rubocop:enable Layout/LineLength
103
+ end
104
104
  if @edge.nil? && @region && @@region_mappings[@region]
105
105
  warn '[DEPRECATION] Setting default `Edge` for the provided `region`.'
106
106
  @edge = @@region_mappings[@region]
@@ -94,7 +94,7 @@ module Twilio
94
94
  response.body
95
95
  end
96
96
 
97
- def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
97
+ def patch(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
98
98
  response = request(
99
99
  method,
100
100
  uri,
@@ -106,10 +106,28 @@ module Twilio
106
106
  )
107
107
 
108
108
  if response.status_code < 200 || response.status_code >= 300
109
+ raise exception(response, 'Unable to patch record')
110
+ end
111
+
112
+ response.body
113
+ end
114
+
115
+ def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil)
116
+ response = request(
117
+ method,
118
+ uri,
119
+ params,
120
+ data,
121
+ headers,
122
+ auth,
123
+ timeout
124
+ )
125
+
126
+ if response.status_code < 200 || response.status_code >= 400
109
127
  raise exception(response, 'Unable to delete record')
110
128
  end
111
129
 
112
- response.status_code == 204
130
+ response.status_code >= 200 && response.status_code < 400
113
131
  end
114
132
 
115
133
  def read_limits(limit = nil, page_size = nil)
@@ -40,7 +40,7 @@ module Twilio
40
40
  # @param [String] region The state or region of the new address.
41
41
  # @param [String] postal_code The postal code of the new address.
42
42
  # @param [String] iso_country The ISO country code of the new address.
43
- # @param [String] friendly_name A descriptive string that you create to describe the new address. It can be up to 64 characters long.
43
+ # @param [String] friendly_name A descriptive string that you create to describe the new address. It can be up to 64 characters long for Regulatory Compliance addresses and 32 characters long for Emergency addresses.
44
44
  # @param [Boolean] emergency_enabled Whether to enable emergency calling on the new address. Can be: `true` or `false`.
45
45
  # @param [Boolean] auto_correct_address Whether we should automatically correct the address. Can be: `true` or `false` and the default is `true`. If empty or `true`, we will correct the address you provide if necessary. If `false`, we won't alter the address you provide.
46
46
  # @param [String] street_secondary The additional number and street address of the address.
@@ -0,0 +1,250 @@
1
+ ##
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # Twilio - Messaging
8
+ # This is the public Twilio REST API.
9
+ #
10
+ # NOTE: This class is auto generated by OpenAPI Generator.
11
+ # https://openapi-generator.tech
12
+ # Do not edit the class manually.
13
+ #
14
+
15
+
16
+ module Twilio
17
+ module REST
18
+ class Messaging < MessagingBase
19
+ class V2 < Version
20
+ class DomainCertsList < ListResource
21
+
22
+ ##
23
+ # Initialize the DomainCertsList
24
+ # @param [Version] version Version that contains the resource
25
+ # @return [DomainCertsList] DomainCertsList
26
+ def initialize(version)
27
+ super(version)
28
+ # Path Solution
29
+ @solution = { }
30
+
31
+
32
+ end
33
+
34
+
35
+
36
+ # Provide a user friendly representation
37
+ def to_s
38
+ '#<Twilio.Messaging.V2.DomainCertsList>'
39
+ end
40
+ end
41
+
42
+
43
+ class DomainCertsContext < InstanceContext
44
+ ##
45
+ # Initialize the DomainCertsContext
46
+ # @param [Version] version Version that contains the resource
47
+ # @param [String] domain_sid Unique string used to identify the domain that this certificate should be associated with.
48
+ # @return [DomainCertsContext] DomainCertsContext
49
+ def initialize(version, domain_sid)
50
+ super(version)
51
+
52
+ # Path Solution
53
+ @solution = { domain_sid: domain_sid, }
54
+ @uri = "/LinkShortening/Domains/#{@solution[:domain_sid]}/Certificate"
55
+
56
+
57
+ end
58
+ ##
59
+ # Fetch the DomainCertsInstance
60
+ # @return [DomainCertsInstance] Fetched DomainCertsInstance
61
+ def fetch
62
+
63
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
64
+
65
+
66
+
67
+
68
+
69
+ payload = @version.fetch('GET', @uri, headers: headers)
70
+ DomainCertsInstance.new(
71
+ @version,
72
+ payload,
73
+ domain_sid: @solution[:domain_sid],
74
+ )
75
+ end
76
+
77
+
78
+ ##
79
+ # Provide a user friendly representation
80
+ def to_s
81
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
82
+ "#<Twilio.Messaging.V2.DomainCertsContext #{context}>"
83
+ end
84
+
85
+ ##
86
+ # Provide a detailed, user friendly representation
87
+ def inspect
88
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
89
+ "#<Twilio.Messaging.V2.DomainCertsContext #{context}>"
90
+ end
91
+ end
92
+
93
+ class DomainCertsPage < Page
94
+ ##
95
+ # Initialize the DomainCertsPage
96
+ # @param [Version] version Version that contains the resource
97
+ # @param [Response] response Response from the API
98
+ # @param [Hash] solution Path solution for the resource
99
+ # @return [DomainCertsPage] DomainCertsPage
100
+ def initialize(version, response, solution)
101
+ super(version, response)
102
+
103
+ # Path Solution
104
+ @solution = solution
105
+ end
106
+
107
+ ##
108
+ # Build an instance of DomainCertsInstance
109
+ # @param [Hash] payload Payload response from the API
110
+ # @return [DomainCertsInstance] DomainCertsInstance
111
+ def get_instance(payload)
112
+ DomainCertsInstance.new(@version, payload)
113
+ end
114
+
115
+ ##
116
+ # Provide a user friendly representation
117
+ def to_s
118
+ '<Twilio.Messaging.V2.DomainCertsPage>'
119
+ end
120
+ end
121
+ class DomainCertsInstance < InstanceResource
122
+ ##
123
+ # Initialize the DomainCertsInstance
124
+ # @param [Version] version Version that contains the resource
125
+ # @param [Hash] payload payload that contains response from Twilio
126
+ # @param [String] account_sid The SID of the
127
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this DomainCerts
128
+ # resource.
129
+ # @param [String] sid The SID of the Call resource to fetch.
130
+ # @return [DomainCertsInstance] DomainCertsInstance
131
+ def initialize(version, payload , domain_sid: nil)
132
+ super(version)
133
+
134
+ # Marshaled Properties
135
+ @properties = {
136
+ 'domain_sid' => payload['domain_sid'],
137
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
138
+ 'date_expires' => Twilio.deserialize_iso8601_datetime(payload['date_expires']),
139
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
140
+ 'domain_name' => payload['domain_name'],
141
+ 'certificate_sid' => payload['certificate_sid'],
142
+ 'managed' => payload['managed'],
143
+ 'requesting' => payload['requesting'],
144
+ 'url' => payload['url'],
145
+ 'cert_in_validation' => payload['cert_in_validation'],
146
+ }
147
+
148
+ # Context
149
+ @instance_context = nil
150
+ @params = { 'domain_sid' => domain_sid || @properties['domain_sid'] , }
151
+ end
152
+
153
+ ##
154
+ # Generate an instance context for the instance, the context is capable of
155
+ # performing various actions. All instance actions are proxied to the context
156
+ # @return [DomainCertsContext] CallContext for this CallInstance
157
+ def context
158
+ unless @instance_context
159
+ @instance_context = DomainCertsContext.new(@version , @params['domain_sid'])
160
+ end
161
+ @instance_context
162
+ end
163
+
164
+ ##
165
+ # @return [String] The unique string that we created to identify the Domain resource.
166
+ def domain_sid
167
+ @properties['domain_sid']
168
+ end
169
+
170
+ ##
171
+ # @return [Time] Date that this Domain was last updated.
172
+ def date_updated
173
+ @properties['date_updated']
174
+ end
175
+
176
+ ##
177
+ # @return [Time] Date that the private certificate associated with this domain expires. You will need to update the certificate before that date to ensure your shortened links will continue to work.
178
+ def date_expires
179
+ @properties['date_expires']
180
+ end
181
+
182
+ ##
183
+ # @return [Time] Date that this Domain was registered to the Twilio platform to create a new Domain object.
184
+ def date_created
185
+ @properties['date_created']
186
+ end
187
+
188
+ ##
189
+ # @return [String] Full url path for this domain.
190
+ def domain_name
191
+ @properties['domain_name']
192
+ end
193
+
194
+ ##
195
+ # @return [String] The unique string that we created to identify this Certificate resource.
196
+ def certificate_sid
197
+ @properties['certificate_sid']
198
+ end
199
+
200
+ ##
201
+ # @return [Boolean] Boolean field that indicates whether the certificate is managed by Twilio or uploaded by the customer.
202
+ def managed
203
+ @properties['managed']
204
+ end
205
+
206
+ ##
207
+ # @return [Boolean] Boolean field that indicates whether a Twilio managed cert request is in progress or completed. True indicates a request is in progress and false indicates the request has completed or not requested yet.
208
+ def requesting
209
+ @properties['requesting']
210
+ end
211
+
212
+ ##
213
+ # @return [String]
214
+ def url
215
+ @properties['url']
216
+ end
217
+
218
+ ##
219
+ # @return [Hash] Optional JSON field describing the status and upload date of a new certificate in the process of validation
220
+ def cert_in_validation
221
+ @properties['cert_in_validation']
222
+ end
223
+
224
+ ##
225
+ # Fetch the DomainCertsInstance
226
+ # @return [DomainCertsInstance] Fetched DomainCertsInstance
227
+ def fetch
228
+
229
+ context.fetch
230
+ end
231
+
232
+ ##
233
+ # Provide a user friendly representation
234
+ def to_s
235
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
236
+ "<Twilio.Messaging.V2.DomainCertsInstance #{values}>"
237
+ end
238
+
239
+ ##
240
+ # Provide a detailed, user friendly representation
241
+ def inspect
242
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
243
+ "<Twilio.Messaging.V2.DomainCertsInstance #{values}>"
244
+ end
245
+ end
246
+
247
+ end
248
+ end
249
+ end
250
+ end
@@ -22,6 +22,7 @@ module Twilio
22
22
  super
23
23
  @version = 'v2'
24
24
  @channels_senders = nil
25
+ @domain_certs = nil
25
26
  @typing_indicator = nil
26
27
  end
27
28
 
@@ -40,6 +41,20 @@ module Twilio
40
41
  end
41
42
  end
42
43
  ##
44
+ # @param [String] domain_sid Unique string used to identify the domain that this certificate should be associated with.
45
+ # @return [Twilio::REST::Messaging::V2::DomainCertsContext] if domainSid was passed.
46
+ # @return [Twilio::REST::Messaging::V2::DomainCertsList]
47
+ def domain_certs(domain_sid=:unset)
48
+ if domain_sid.nil?
49
+ raise ArgumentError, 'domain_sid cannot be nil'
50
+ end
51
+ if domain_sid == :unset
52
+ @domain_certs ||= DomainCertsList.new self
53
+ else
54
+ DomainCertsContext.new(self, domain_sid)
55
+ end
56
+ end
57
+ ##
43
58
  # @return [Twilio::REST::Messaging::V2::TypingIndicatorList]
44
59
  def typing_indicator
45
60
  @typing_indicator ||= TypingIndicatorList.new self
@@ -39,8 +39,8 @@ module Twilio
39
39
  # @param [String] size Number of items per page
40
40
  # @param [String] port_in_request_sid Filter by Port in request SID, supports multiple values separated by comma
41
41
  # @param [String] port_in_request_status Filter by Port In request status
42
- # @param [Time] created_before Find all created before a certain date
43
- # @param [Time] created_after Find all created after a certain date
42
+ # @param [String] created_before Find all created before a certain date
43
+ # @param [String] created_after Find all created after a certain date
44
44
  # @param [Integer] limit Upper limit for the number of records to return. stream()
45
45
  # guarantees to never return more than limit. Default is no limit
46
46
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -69,8 +69,8 @@ module Twilio
69
69
  # @param [String] size Number of items per page
70
70
  # @param [String] port_in_request_sid Filter by Port in request SID, supports multiple values separated by comma
71
71
  # @param [String] port_in_request_status Filter by Port In request status
72
- # @param [Time] created_before Find all created before a certain date
73
- # @param [Time] created_after Find all created after a certain date
72
+ # @param [String] created_before Find all created before a certain date
73
+ # @param [String] created_after Find all created after a certain date
74
74
  # @param [Integer] limit Upper limit for the number of records to return. stream()
75
75
  # guarantees to never return more than limit. Default is no limit
76
76
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -114,8 +114,8 @@ module Twilio
114
114
  # @param [String] size Number of items per page
115
115
  # @param [String] port_in_request_sid Filter by Port in request SID, supports multiple values separated by comma
116
116
  # @param [String] port_in_request_status Filter by Port In request status
117
- # @param [Time] created_before Find all created before a certain date
118
- # @param [Time] created_after Find all created after a certain date
117
+ # @param [String] created_before Find all created before a certain date
118
+ # @param [String] created_after Find all created after a certain date
119
119
  # @param [String] page_token PageToken provided by the API
120
120
  # @param [Integer] page_number Page Number, this value is simply for client state
121
121
  # @param [Integer] page_size Number of records to return, defaults to 50
@@ -126,8 +126,8 @@ module Twilio
126
126
  'Size' => size,
127
127
  'PortInRequestSid' => port_in_request_sid,
128
128
  'PortInRequestStatus' => port_in_request_status,
129
- 'CreatedBefore' => Twilio.serialize_iso8601_datetime(created_before),
130
- 'CreatedAfter' => Twilio.serialize_iso8601_datetime(created_after),
129
+ 'CreatedBefore' => created_before,
130
+ 'CreatedAfter' => created_after,
131
131
  'PageToken' => page_token,
132
132
  'Page' => page_number,
133
133
  'PageSize' => page_size,
@@ -331,7 +331,7 @@ module Twilio
331
331
  end
332
332
 
333
333
  ##
334
- # @return [Hash] The set of Boolean properties that indicate whether a phone number can receive calls or messages. Capabilities are `Voice`, `SMS`, and `MMS` and each capability can be: `true` or `false`.
334
+ # @return [TrunkingV1TrunkPhoneNumberCapabilities]
335
335
  def capabilities
336
336
  @properties['capabilities']
337
337
  end
@@ -56,6 +56,18 @@ module Twilio
56
56
  # @param [String] business_contact_phone The phone number of the contact for the business or organization using the Tollfree number.
57
57
  # @param [String] theme_set_id Theme id for styling the inquiry form.
58
58
  # @param [Boolean] skip_messaging_use_case Skip the messaging use case screen of the inquiry form.
59
+ # @param [String] business_registration_number The Business Registration Number of the business or organization.
60
+ # @param [String] business_registration_authority The Business Registration Authority of the business or organization.
61
+ # @param [String] business_registration_country The Business Registration Country of the business or organization.
62
+ # @param [BusinessType] business_type
63
+ # @param [String] doing_business_as Trade name, sub entity, or downstream business name of business being submitted for verification.
64
+ # @param [String] opt_in_confirmation_message The confirmation message sent to users when they opt in to receive messages.
65
+ # @param [String] help_message_sample A sample help message provided to users.
66
+ # @param [String] privacy_policy_url The URL to the privacy policy for the business or organization.
67
+ # @param [String] terms_and_conditions_url The URL to the terms and conditions for the business or organization.
68
+ # @param [Boolean] age_gated_content Indicates if the content is age gated.
69
+ # @param [String] external_reference_id A legally recognized business registration number.
70
+ # @param [Array[String]] opt_in_keywords List of keywords that users can text in to opt in to receive messages.
59
71
  # @return [ComplianceTollfreeInquiriesInstance] Created ComplianceTollfreeInquiriesInstance
60
72
  def create(
61
73
  tollfree_phone_number: nil,
@@ -81,7 +93,19 @@ module Twilio
81
93
  business_contact_email: :unset,
82
94
  business_contact_phone: :unset,
83
95
  theme_set_id: :unset,
84
- skip_messaging_use_case: :unset
96
+ skip_messaging_use_case: :unset,
97
+ business_registration_number: :unset,
98
+ business_registration_authority: :unset,
99
+ business_registration_country: :unset,
100
+ business_type: :unset,
101
+ doing_business_as: :unset,
102
+ opt_in_confirmation_message: :unset,
103
+ help_message_sample: :unset,
104
+ privacy_policy_url: :unset,
105
+ terms_and_conditions_url: :unset,
106
+ age_gated_content: :unset,
107
+ external_reference_id: :unset,
108
+ opt_in_keywords: :unset
85
109
  )
86
110
 
87
111
  data = Twilio::Values.of({
@@ -109,6 +133,18 @@ module Twilio
109
133
  'BusinessContactPhone' => business_contact_phone,
110
134
  'ThemeSetId' => theme_set_id,
111
135
  'SkipMessagingUseCase' => skip_messaging_use_case,
136
+ 'BusinessRegistrationNumber' => business_registration_number,
137
+ 'BusinessRegistrationAuthority' => business_registration_authority,
138
+ 'BusinessRegistrationCountry' => business_registration_country,
139
+ 'BusinessType' => business_type,
140
+ 'DoingBusinessAs' => doing_business_as,
141
+ 'OptInConfirmationMessage' => opt_in_confirmation_message,
142
+ 'HelpMessageSample' => help_message_sample,
143
+ 'PrivacyPolicyUrl' => privacy_policy_url,
144
+ 'TermsAndConditionsUrl' => terms_and_conditions_url,
145
+ 'AgeGatedContent' => age_gated_content,
146
+ 'ExternalReferenceId' => external_reference_id,
147
+ 'OptInKeywords' => Twilio.serialize_list(opt_in_keywords) { |e| e },
112
148
  })
113
149
 
114
150
  headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '7.8.8'
2
+ VERSION = '7.9.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: 7.8.8
4
+ version: 7.9.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: 2025-12-03 00:00:00.000000000 Z
11
+ date: 2025-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -610,6 +610,7 @@ files:
610
610
  - lib/twilio-ruby/rest/messaging/v1/usecase.rb
611
611
  - lib/twilio-ruby/rest/messaging/v2.rb
612
612
  - lib/twilio-ruby/rest/messaging/v2/channels_sender.rb
613
+ - lib/twilio-ruby/rest/messaging/v2/domain_certs.rb
613
614
  - lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb
614
615
  - lib/twilio-ruby/rest/messaging_base.rb
615
616
  - lib/twilio-ruby/rest/monitor.rb