twilio-ruby 7.11.2 → 7.12.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-deploy.yml +13 -1
  3. data/CHANGES.md +272 -0
  4. data/Gemfile.lock +2 -2
  5. data/README.md +2 -2
  6. data/githooks/pre-commit +11 -0
  7. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +4 -4
  8. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +2 -2
  9. data/lib/twilio-ruby/rest/content/v1/content.rb +2 -2
  10. data/lib/twilio-ruby/rest/conversations/v2/action.rb +9 -2
  11. data/lib/twilio-ruby/rest/conversations/v2/communication.rb +4 -1
  12. data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +14 -0
  13. data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +133 -12
  14. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +1 -1
  15. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +1 -1
  16. data/lib/twilio-ruby/rest/insights/v3/custom_field_mapping.rb +774 -0
  17. data/lib/twilio-ruby/rest/{numbers/v1/voice_verification_check.rb → insights/v3/custom_field_mappings_capacity.rb} +44 -48
  18. data/lib/twilio-ruby/rest/insights/v3.rb +22 -0
  19. data/lib/twilio-ruby/rest/intelligence/v3/rule_execution.rb +33 -1
  20. data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +5 -5
  21. data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +3 -3
  22. data/lib/twilio-ruby/rest/memory/v1/observation.rb +9 -9
  23. data/lib/twilio-ruby/rest/memory/v1/revision.rb +1 -1
  24. data/lib/twilio-ruby/rest/memory/v1/store.rb +3 -3
  25. data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +3 -3
  26. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +30 -2
  27. data/lib/twilio-ruby/rest/numbers/v1/sms_verification.rb +30 -6
  28. data/lib/twilio-ruby/rest/numbers/v1/sms_verification_check.rb +30 -6
  29. data/lib/twilio-ruby/rest/numbers/v1/voice_verification.rb +45 -6
  30. data/lib/twilio-ruby/rest/numbers/v1.rb +0 -6
  31. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +40 -0
  32. data/lib/twilio-ruby/rest/routes/v3/iso_country_code.rb +402 -0
  33. data/lib/twilio-ruby/rest/routes/v3.rb +43 -0
  34. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +1 -1
  35. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +1 -1
  36. data/lib/twilio-ruby/rest/voice/v2/recording_account_default_configuration.rb +547 -0
  37. data/lib/twilio-ruby/rest/voice/v2.rb +6 -0
  38. data/lib/twilio-ruby/twiml/voice_response.rb +12 -6
  39. data/lib/twilio-ruby/version.rb +1 -1
  40. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4972b2e50e8c249c2d1363eda7d1ef843f042ff384c69bc6d1750074d770a9b
4
- data.tar.gz: c8a9a2fecaecd06a3b52dcbc56ff98b53e27b88447feeed5fc3fe8cde2677e67
3
+ metadata.gz: de45c2f4e640d77d1ef3ce66c59c270c8c76a7bf60802a5168c0431f72ab3eb1
4
+ data.tar.gz: 319065808ccb2132bc019d456490657bd25a07adcfa783f1b0815ea01b9e512e
5
5
  SHA512:
6
- metadata.gz: a8de116b65103df280495f5a3f0a796053124899bcbc92a0bfe2a73045ccbcd803cf79c2cbe5276173cfa094ba7793d90e17ba950d3236c601a6b89e28846edf
7
- data.tar.gz: 8aec018fb3f7037a632125a49c9f744422d39cb0c3beddc6aeb2f4abb19b63c569c4dd890abbc43c6d247fa77c530ff79ca48159fbc5cac59c6044527781aac1
6
+ metadata.gz: f4eca7472b55d315dcf30b819e04754760fb49250151fb72912db9199502325b910b544464a788277c4aa0974c49872fdba45c6f0af96e52396341d0ce1356c2
7
+ data.tar.gz: 5c7a1776e780a85d5ecfd9b2b928122baad0cd7ba3ee100cec889ba84a49b68970b38be01f1f72aa491f5fd36e7224cd9e792b5e64986d6eeb09bfe9c04f738a
@@ -49,7 +49,19 @@ jobs:
49
49
  - run: bundle exec rake install
50
50
 
51
51
  - name: Run linter
52
- run: bundle exec rubocop -d --cache true --parallel
52
+ # rubocop's ConfigStore path cache (config_store.rb) does a non-atomic
53
+ # `@path_cache[dir] ||= ...` read-modify-write. --parallel runs worker
54
+ # threads via Parallel.in_threads, and on JRuby (no GIL, true parallel
55
+ # threads) that race can hand a thread a nil config path, crashing with
56
+ # "no implicit conversion of nil into String" in File.absolute_path.
57
+ # CRuby's GIL happens to serialize the Hash access enough to avoid it.
58
+ # Run JRuby serially and uncached to sidestep the race.
59
+ run: |
60
+ if [[ "${{ matrix.ruby }}" == jruby-* ]]; then
61
+ bundle exec rubocop -d
62
+ else
63
+ bundle exec rubocop -d --cache true --parallel
64
+ fi
53
65
  if: ${{ matrix.ruby != '2.4'}}
54
66
 
55
67
  - name: Run Unit Tests
data/CHANGES.md CHANGED
@@ -1,5 +1,277 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
+ [2026-10-12] Version 7.12.0
4
+ ---------------------------
5
+ **Audiences**
6
+ - ## 2026-10-06
7
+ - Minor updates (formatting, metadata)
8
+ - ## 2026-10-05
9
+ - Minor updates (formatting, metadata)
10
+ - ## 2026-10-02
11
+ - **Added 1 new path(s)**:
12
+ - `/preview/Cohorts/{cohortId}/Operations` (AdminListCohortOperations)
13
+ - ## 2026-10-01
14
+ - **Content updates**:
15
+ - Updated description for `AdminListSnapshotOperations`
16
+ - ## 2026-09-28
17
+ - **Content updates**:
18
+ - Updated description for `AdminListCohortSnapshots`
19
+ - Updated description for `AdminFetchCohortSnapshot`
20
+ - Updated schema description for `Criteria`
21
+ - Added properties to `OperationPayload`: cohortId
22
+ - Removed properties from `OperationPayload`: audienceId
23
+ - Updated schema description for `OperationResult`
24
+ - Added properties to `OperationResult`: cohortId
25
+ - Removed properties from `OperationResult`: audienceId
26
+ - Updated schema description for `Record`
27
+ - Updated schema description for `Cohort`
28
+ - ...and 3 more changes
29
+ - ## 2026-10-01
30
+ - Minor updates (formatting, metadata)
31
+ - ## 2026-09-28
32
+ - **Content updates**:
33
+ - Updated schema description for `CohortOperationResult`
34
+ - Updated schema description for `PartitionCount`
35
+
36
+ **Conversations**
37
+ - Add PATCH /v2/Imports/{id} to cancel an import, and the `CANCELED` import status (dev-us1 and stage-us1)
38
+ - Add Imports endpoints for 1console (private visibility, dev-us1 and stage-us1)
39
+ - Add `traitExtractionStrategyIds` and `observationExtractionStrategyIds` to the Conversations v2 Admin Configuration schema.
40
+ - Align the Conversations v2 Capabilities list and create contracts with the backend `domainId` field.
41
+
42
+ **Data-ingress**
43
+ - ## 2026-10-01
44
+ - Minor updates (formatting, metadata)
45
+ - ## 2026-09-17
46
+ - Add support for Hubspot connector
47
+ - ## 2026-10-01
48
+ - Minor updates (formatting, metadata)
49
+ - ## 2026-09-17
50
+ - Add support for Hubspot connector
51
+
52
+ **Events**
53
+ - Remove the Replays API (`/v1/Replays`, beta feature `api.eventstreams.replay`); the feature was never GA and is being sunset **(breaking change)**
54
+
55
+ **Knowledge**
56
+ - ## 2026-09-24
57
+ - **Routing updates**:
58
+ - Changed `downstreamServiceName` from `memora-domain` to `enterprise-knowledge-domain` for all operations
59
+
60
+ **Memory**
61
+ - ## 2026-09-30
62
+ - The `source` field on observations and conversation summaries, and the `source` filter
63
+ - on `ListProfileObservations`, now also accept forward slashes (`/`). The pattern is
64
+ - `^[a-zA-Z0-9 _./-]+$`. This is additive and backwards compatible: every previously
65
+ - valid value is still accepted.
66
+ - `UpdateStore`, `UpdateTraitGroup`, and `UpdateDataMapping` now require a body with at least one property. An empty `{}` gets a 400.
67
+
68
+ **Messaging**
69
+ - Add opt-out configuration admin endpoints (`GET/PUT/DELETE /v1/Accounts/{AccountSid}/OptOuts/{OptOutSid}/...`) to the messaging admin-api (dev-us1 and stage-us1 only)
70
+ - Add create opt-out configuration endpoint (`POST /v1/Accounts/{AccountSid}/OptOuts`) to the messaging admin-api (dev-us1 and stage-us1 only)
71
+ - Add update messaging service endpoint (`PUT /v1/Accounts/{AccountSid}/Services/{MessagingServiceSid}`) to the messaging admin-api (dev-us1 and stage-us1 only)
72
+ - Enable messaging service add-ons, update messaging service, and opt-out configuration admin endpoints in prod-us1 and prod-ie1
73
+ - Add WhatsApp display name change support to Sender API: `pending_display_name`, `pending_display_name_status` and `pending_display_name_status_date` on fetch, and `display_name_status` on update and partial update
74
+
75
+ **Routes**
76
+ - Set SDK and docs visibility of `GET`/`POST` `/v3/ShortCodes/{isoCountryCode}/{shortCode}` to `public`, maturity to `ga`
77
+
78
+
79
+ [2026-09-28] Version 7.11.3
80
+ ---------------------------
81
+ **Library - Fix**
82
+ - [PR #809](https://github.com/twilio/twilio-ruby/pull/809): validate webhook signatures on percent-encoded request paths. Thanks to [@manisha1997](https://github.com/manisha1997)!
83
+
84
+ **Twiml**
85
+ - Add `audio_format` and `sample_rate` to Stream for HDCodec
86
+
87
+ **Api**
88
+ - # API Changes
89
+ - ## 2026-09-22
90
+ - Simplified the `criteria` field description.
91
+ - ## 2026-09-18
92
+ - Moved `readOnly` on the snapshot count fields (`profileCount`, `partitionCount`) from the shared schema to the response usage sites, so the counts stay read-only in responses (no change for API consumers).
93
+ - ## 2026-09-17
94
+ - Renamed 3 `Get*` operations to `Fetch*` to match the operationId standard: `FetchCohort`, `FetchSnapshot`, `FetchOperation`.
95
+ - Removed the unused `ExpressionId` schema and made the operation error example cohort-native, so no `aud_` identifiers remain in the spec.
96
+ - Kept `libraryVisibility: hidden` across the whole surface (info, path items, and operations).
97
+ - ## 2026-09-08
98
+ - Removed the deprecated header-based-versioning unified specs, consolidating audiences onto the path-based `api.twilio.com/v1` surface.
99
+ - ## 2026-08-31
100
+ - Published the unified audiences spec at `api.twilio.com/v1`.
101
+ - ## 2026-08-26
102
+ - Fixed the Cohort operation response mapping in the unified audiences API.
103
+ - ## 2026-08-19
104
+ - Migrated the unified audiences spec to the Cohort surface (Audiences renamed to Cohorts).
105
+ - Switched `downstreamServiceName` to `audiences-domain`.
106
+ - ## 2026-08-05
107
+ - Added the `api.unified.version.preview` beta feature.
108
+ - Made the unified APIs available in prod us1.
109
+ - ## 2026-07-30
110
+ - Fixed example values.
111
+ - ## 2026-07-29
112
+ - Added the initial version of the audiences API to the unified APIs.
113
+ - ## 2026-07-20
114
+ - Deployed the audiences-domain OAS to the dev edge.
115
+ - ## 2026-07-06
116
+ - Added the prod-us1 realm to the audiences public API.
117
+ - ## 2026-06-23
118
+ - Changed the `storeType` enum from `MEMORA` to `TWILIO`.
119
+ - ## 2026-05-04
120
+ - Added the stage-us1 realm and `x-rate-limit` to the audiences API.
121
+ - ## 2026-04-08
122
+ - Added the initial audiences endpoints.
123
+ - Add `TwimlProcessStatusCallbackEvents` parameter to CreateTwimlProcess endpoint
124
+ - Add `twiml_process` resource alongside `twiml_session` (`twiml_session` is deprecated and will be removed in a future release)
125
+
126
+ **Audiences**
127
+ - ## 2026-09-14
128
+ - Minor updates (formatting, metadata)
129
+ - ## 2026-09-11
130
+ - **Content updates**:
131
+ - Updated summary for `AdminFetchRecord`
132
+ - Updated summary for `AdminFetchCohort`
133
+ - Updated summary for `AdminFetchCohortSnapshot`
134
+ - Updated summary for `AdminFetchCohortOperation`
135
+ - Updated schema description for `ResourceLabels`
136
+ - ## 2026-09-22
137
+ - **Content updates**:
138
+ - Updated schema description for `Criteria`
139
+ - ## 2026-09-18
140
+ - Minor updates (formatting, metadata)
141
+ - ## 2026-09-17
142
+ - Minor updates (formatting, metadata)
143
+ - ## 2026-09-17
144
+ - **Content updates**:
145
+ - Updated description for `CreateCohort`
146
+ - Updated description for `ListCohortSnapshots`
147
+ - Updated description for `CreateCohortSnapshot`
148
+ - Updated description for `FetchCohortSnapshot`
149
+ - Updated description for `ListCohortSnapshotProfiles`
150
+ - Updated schema description for `Criteria`
151
+ - Updated schema description for `Cohort`
152
+ - Updated schema description for `CohortSnapshot`
153
+ - Updated schema description for `CohortOperationResult`
154
+ - Updated schema description for `CohortOperation`
155
+ - ## 2026-09-15
156
+ - Minor updates (formatting, metadata)
157
+ - ## 2026-09-14
158
+ - **Content updates**:
159
+ - Updated summary for `FetchCohort`
160
+ - Updated summary for `FetchCohortSnapshot`
161
+ - Updated summary for `FetchCohortOperation`
162
+ - Updated schema description for `ResourceLabels`
163
+
164
+ **Capabilities**
165
+ - Add a feature-gated preview endpoint to create Capabilities.
166
+
167
+ **Conversations**
168
+ - Add the feature-gated Capabilities list and create endpoints to Conversations v2.
169
+
170
+ **Data-ingress**
171
+ - ## 2026-09-07
172
+ - Minor updates (formatting, metadata)
173
+ - ## 2026-09-09
174
+ - **Added 16 new path(s)**:
175
+ - `/v1/DataSyncs/{syncId}` (FetchDataSync)
176
+ - `/v1/CloudAppSources/{sourceId}/Objects` (ListCloudAppObjects)
177
+ - `/v1/WarehouseSources/{sourceId}/Preview` (CreateWarehousePreview)
178
+ - `/v1/WarehouseSources/{sourceId}/Preview/{operationId}` (FetchWarehousePreview)
179
+ - `/v1/DataSample/{operationId}` (FetchDataSample)
180
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
181
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
182
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets/{datasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
183
+ - `/v1/ControlPlane/WarehouseSources/{sourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
184
+ - `/v1/ControlPlane/WarehouseSources/{sourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
185
+ - ...and 6 more paths
186
+ - **Removed 31 path(s)**:
187
+ - `/v1/DataSyncs/{SyncId}` (FetchDataSync)
188
+ - `/v1/CloudAppSources/{SourceId}/Objects` (ListCloudAppObjects)
189
+ - `/v1/WarehouseSources/{SourceId}/Preview` (CreateWarehousePreview)
190
+ - `/v1/WarehouseSources/{SourceId}/Preview/{OperationId}` (FetchWarehousePreview)
191
+ - `/v1/DataSample/{OperationId}` (FetchDataSample)
192
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
193
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
194
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets/{DatasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
195
+ - `/v1/ControlPlane/WarehouseSources/{SourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
196
+ - `/v1/ControlPlane/WarehouseSources/{SourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
197
+ - ...and 21 more paths
198
+
199
+ **Destinations**
200
+ - ## 2026-09-24
201
+ - **Content updates**:
202
+ - Removed `GET` from the `method` enum on the `webhook` destination type's config options
203
+ - ## 2026-09-22
204
+ - **Content updates**:
205
+ - Added `CDP` to the `categories` enum on `DestinationType`
206
+ - ## 2026-09-14
207
+ - Enable admin APIs for stage-us1 and prod-ie1 realms
208
+ - ## 2026-09-11
209
+ - **Content updates**:
210
+ - Updated description for `CreateDestination`
211
+ - Updated description for `UpdateDestination`
212
+ - Updated description for `DeleteDestination`
213
+ - Updated schema description for `CredentialInput`
214
+ - Updated schema description for `DestinationCredentialOptions`
215
+ - ## 2026-09-11
216
+ - **Content updates**:
217
+ - Updated description for `ListDestinationTypes`
218
+ - Updated description for `GetDestinationType`
219
+ - Updated description for `CreateDestination`
220
+ - Updated description for `UpdateDestination`
221
+ - ## 2026-09-10
222
+ - Made `ListDestinationTypes` and `GetDestinationType` unauthenticated (`security: []`).
223
+ - Removed `iamOperation`, `addAuthorizationHeader`, and `betaFeature` from these operations.
224
+
225
+ **Iam**
226
+ - Removed user_context from the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload; the login email is read from authentication_context.methods
227
+ - Replaced acr and completed_factors with authentication_context (acr, amr, methods) on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
228
+ - Made request_context and request_context.ip_address required on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
229
+
230
+ **Intelligence**
231
+ - Added optional `rule.operators[]` parameter override field to `POST /v3/RuleExecutions
232
+ - Change Summary in `POST /v3/RuleExecutions`
233
+
234
+ **Knowledge**
235
+ - ## 2026-09-23
236
+ - **Content updates**:
237
+ - Added properties to `WebSourceDetails`: errors
238
+ - **Routing updates**:
239
+ - Changed `downstreamServiceName` from `memora-domain` to `enterprise-knowledge-domain` for all operations
240
+
241
+ **Memory**
242
+ - ## 2026-09-18
243
+ - **Added 2 new path(s)**:
244
+ - `/v1/ControlPlane/TraitExtractionStrategies` (AdminListTraitExtractionStrategies)
245
+ - `/v1/ControlPlane/TraitExtractionStrategies/{traitStrategyId}` (AdminFetchTraitExtractionStrategy)
246
+ - ## 2026-09-03
247
+ - No path changes (schema description only)
248
+ - Clarified the `DataMappingCore` description: the PATCH body requires at least one field.
249
+ - ## 2026-09-10
250
+ - **Added 2 new path(s)** for Observation Extraction Strategies:
251
+ - `/v1/ControlPlane/ObservationExtractionStrategies` (ListObservationExtractionStrategies, CreateObservationExtractionStrategy)
252
+ - `/v1/ControlPlane/ObservationExtractionStrategies/{observationExtractionStrategyId}` (FetchObservationExtractionStrategy, UpdateObservationExtractionStrategy, DeleteObservationExtractionStrategy)
253
+ - **Content updates**:
254
+ - Updated `CreateObservationExtractionStrategyInput` description to document that at least one of `allowedCategories`/`prohibitedCategories` must be provided with a non-empty list
255
+ - ## 2026-09-07
256
+ - **Added 1 new path(s)** for Profile:
257
+ - `/v1/Stores/{storeId}/Profiles/BulkDeletions` (CreateProfilesBulkDeletion)
258
+ - ## 2026-09-03
259
+ - `UpdateStore`, `UpdateTraitGroup`, `UpdateDataMapping`, and `UpdateTraitExtractionStrategy` now require a body with at least one property. An empty `{}` gets a 400.
260
+
261
+ **Routes**
262
+ - Add `GET`/`POST` `/v3/ShortCodes/{isoCountryCode}/{shortCode}` to assign and fetch the Inbound Processing Region for short codes
263
+
264
+ **Verify**
265
+ - Add `aaguid` and `date_last_approved` to passkeys factors `metadata`.
266
+
267
+ **Voice**
268
+ - Add typed Recording AccountDefaultConfiguration public API endpoints.
269
+
270
+ **Webhooks**
271
+ - ## 2026-09-24
272
+ - **Changed**: `GET /v1/Webhooks/Settings` now documents each item as the full `Setting` rather than `SettingSummary`, adding `auth`, `signature`, `connection` and `edgeZones` to the list response. The service already returned these fields; only the schema understated them. Additive for consumers — no field is removed or renamed. The now-unreferenced `SettingSummary` schema is removed.
273
+
274
+
3
275
  [2026-09-09] Version 7.11.2
4
276
  ---------------------------
5
277
  **Library - Chore**
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- twilio-ruby (7.11.2)
4
+ twilio-ruby (7.12.0)
5
5
  faraday (>= 2.0, < 3.0)
6
6
  jwt (>= 1.5, < 4.0)
7
7
  nokogiri (>= 1.6, < 2.0)
@@ -144,7 +144,7 @@ CHECKSUMS
144
144
  rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
145
145
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
146
146
  simplecov (1.0.3) sha256=38ef0514f16ae7562f0d0f4df02610071115103d301b6de7dacbcc000082e39b
147
- twilio-ruby (7.11.2)
147
+ twilio-ruby (7.12.0)
148
148
  unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
149
149
  unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
150
150
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
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.11.2'
42
+ gem 'twilio-ruby', '~> 7.12.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.11.2
48
+ gem install twilio-ruby -v 7.12.0
49
49
  ```
50
50
 
51
51
  To build and install the development branch yourself from the latest source:
data/githooks/pre-commit CHANGED
@@ -1 +1,12 @@
1
+ if git diff --cached --name-only | grep -q '^Gemfile\.lock$'; then
2
+ if grep -qE 'https://[^[:space:]]+/artifactory/api/gems/[^/[:space:]]+/?' Gemfile.lock; then
3
+ # A committed lockfile must only reference public registry hosts (enforced in CI by
4
+ # gems-lockfile-hygiene) - rewrite before it lands in the commit.
5
+ sed -E -i.bak 's#https://[^[:space:]]+/artifactory/api/gems/[^/[:space:]]+/?#https://rubygems.org/#' Gemfile.lock
6
+ rm -f Gemfile.lock.bak
7
+ git add Gemfile.lock
8
+ echo "pre-commit: rewrote internal registry URLs in Gemfile.lock to rubygems.org"
9
+ fi
10
+ fi
11
+
1
12
  make test
@@ -45,7 +45,7 @@ module Twilio
45
45
  # @param [Date] date_updated_before Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
46
46
  # @param [Date] date_updated_after Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
47
47
  # @param [String] friendly_name The string that identifies the Conference resources to read.
48
- # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`.
48
+ # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`. Starting from September 30th, 2026, the default is `in-progress`. To read completed conferences, set `Status` to `completed`.
49
49
  # @param [Integer] limit Upper limit for the number of records to return. stream()
50
50
  # guarantees to never return more than limit. Default is no limit
51
51
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -79,7 +79,7 @@ module Twilio
79
79
  # @param [Date] date_updated_before Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
80
80
  # @param [Date] date_updated_after Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
81
81
  # @param [String] friendly_name The string that identifies the Conference resources to read.
82
- # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`.
82
+ # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`. Starting from September 30th, 2026, the default is `in-progress`. To read completed conferences, set `Status` to `completed`.
83
83
  # @param [Integer] limit Upper limit for the number of records to return. stream()
84
84
  # guarantees to never return more than limit. Default is no limit
85
85
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -117,7 +117,7 @@ module Twilio
117
117
  # @param [Date] date_updated_before Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
118
118
  # @param [Date] date_updated_after Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
119
119
  # @param [String] friendly_name The string that identifies the Conference resources to read.
120
- # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`.
120
+ # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`. Starting from September 30th, 2026, the default is `in-progress`. To read completed conferences, set `Status` to `completed`.
121
121
  # @param [Integer] limit Upper limit for the number of records to return. stream()
122
122
  # guarantees to never return more than limit. Default is no limit
123
123
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -174,7 +174,7 @@ module Twilio
174
174
  # @param [Date] date_updated_before Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
175
175
  # @param [Date] date_updated_after Only include conferences that were last updated on this date. Specify a date as `YYYY-MM-DD` in UTC, for example: `2009-07-06`, to read only conferences that were last updated on this date. You can also specify an inequality, such as `DateUpdated<=YYYY-MM-DD`, to read conferences that were last updated on or before midnight of this date, and `DateUpdated>=YYYY-MM-DD` to read conferences that were last updated on or after midnight of this date.
176
176
  # @param [String] friendly_name The string that identifies the Conference resources to read.
177
- # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`.
177
+ # @param [Status] status The status of the resources to read. Can be: `init`, `in-progress`, or `completed`. Starting from September 30th, 2026, the default is `in-progress`. To read completed conferences, set `Status` to `completed`.
178
178
  # @param [String] page_token PageToken provided by the API
179
179
  # @param [Integer] page_number Page Number, this value is simply for client state
180
180
  # @param [Integer] page_size Number of records to return, defaults to 50
@@ -53,7 +53,7 @@ module Twilio
53
53
  # @param [Time] send_at The time that Twilio will send the message. Must be in ISO 8601 format.
54
54
  # @param [Boolean] send_as_mms If set to `true`, Twilio delivers the message as a single MMS message, regardless of the presence of media.
55
55
  # @param [String] content_variables For [Content Editor/API](https://www.twilio.com/docs/content) only: Key-value pairs of [Template variables](https://www.twilio.com/docs/content/using-variables-with-content-api) and their substitution values. `content_sid` parameter must also be provided. If values are not defined in the `content_variables` parameter, the [Template's default placeholder values](https://www.twilio.com/docs/content/content-api-resources#create-templates) are used.
56
- # @param [String] message_intent
56
+ # @param [String] message_intent Specifies the purpose or use case of the outbound communication. This parameter is used by Twilio's [Traffic Shaping](https://www.twilio.com/docs/messaging/features/traffic-shaping) and [Compliance Toolkit](https://www.twilio.com/docs/messaging/features/compliance-toolkit) products. Possible values include: `otp`, `notifications`, `marketing`, `fraud`, `security`, `customercare`, `delivery`, `education`, `polling`, `announcements`, and `events`.
57
57
  # @param [RiskCheck] risk_check
58
58
  # @param [String] from The sender's Twilio phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), [Wireless SIM](https://www.twilio.com/docs/iot/wireless/programmable-wireless-send-machine-machine-sms-commands), [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), or [channel address](https://www.twilio.com/docs/messaging/channels) (e.g., `whatsapp:+15554449999`). The value of the `from` parameter must be a sender that is hosted within Twilio and belongs to the Account creating the Message. If you are using `messaging_service_sid`, this parameter can be empty (Twilio assigns a `from` value from the Messaging Service's Sender Pool) or you can provide a specific sender from your Sender Pool.
59
59
  # @param [String] fallback_from A fallback SMS sender to use when the recipient cannot be reached over RCS. This parameter may only be used when also providing a [Messaging Service](https://twilio.com/docs/messaging/services) containing an RCS sender. The fallback SMS sender must be either a Twilio phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), or [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), hosted within Twilio and belong to the Account creating the Message.
@@ -154,7 +154,7 @@ module Twilio
154
154
  # @param [Time] send_at The time that Twilio will send the message. Must be in ISO 8601 format.
155
155
  # @param [Boolean] send_as_mms If set to `true`, Twilio delivers the message as a single MMS message, regardless of the presence of media.
156
156
  # @param [String] content_variables For [Content Editor/API](https://www.twilio.com/docs/content) only: Key-value pairs of [Template variables](https://www.twilio.com/docs/content/using-variables-with-content-api) and their substitution values. `content_sid` parameter must also be provided. If values are not defined in the `content_variables` parameter, the [Template's default placeholder values](https://www.twilio.com/docs/content/content-api-resources#create-templates) are used.
157
- # @param [String] message_intent
157
+ # @param [String] message_intent Specifies the purpose or use case of the outbound communication. This parameter is used by Twilio's [Traffic Shaping](https://www.twilio.com/docs/messaging/features/traffic-shaping) and [Compliance Toolkit](https://www.twilio.com/docs/messaging/features/compliance-toolkit) products. Possible values include: `otp`, `notifications`, `marketing`, `fraud`, `security`, `customercare`, `delivery`, `education`, `polling`, `announcements`, and `events`.
158
158
  # @param [RiskCheck] risk_check
159
159
  # @param [String] from The sender's Twilio phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), [Wireless SIM](https://www.twilio.com/docs/iot/wireless/programmable-wireless-send-machine-machine-sms-commands), [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), or [channel address](https://www.twilio.com/docs/messaging/channels) (e.g., `whatsapp:+15554449999`). The value of the `from` parameter must be a sender that is hosted within Twilio and belongs to the Account creating the Message. If you are using `messaging_service_sid`, this parameter can be empty (Twilio assigns a `from` value from the Messaging Service's Sender Pool) or you can provide a specific sender from your Sender Pool.
160
160
  # @param [String] fallback_from A fallback SMS sender to use when the recipient cannot be reached over RCS. This parameter may only be used when also providing a [Messaging Service](https://twilio.com/docs/messaging/services) containing an RCS sender. The fallback SMS sender must be either a Twilio phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), or [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), hosted within Twilio and belong to the Account creating the Message.
@@ -492,7 +492,7 @@ module Twilio
492
492
  {
493
493
  "id": @id,
494
494
  "title": @title,
495
- "timeSlots": @time_slots,
495
+ "time_slots": @time_slots,
496
496
  }.to_json(options)
497
497
  end
498
498
  end
@@ -1114,7 +1114,7 @@ module Twilio
1114
1114
  {
1115
1115
  "id": @id,
1116
1116
  "title": @title,
1117
- "timeSlots": @time_slots,
1117
+ "time_slots": @time_slots,
1118
1118
  }.to_json(options)
1119
1119
  end
1120
1120
  end
@@ -353,6 +353,7 @@ module Twilio
353
353
  'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
354
354
  'updated_at' => Twilio.deserialize_iso8601_datetime(payload['updated_at']),
355
355
  'completed_at' => Twilio.deserialize_iso8601_datetime(payload['completed_at']),
356
+ 'failure_reason' => payload['failure_reason'],
356
357
  }
357
358
 
358
359
  # Context
@@ -378,7 +379,7 @@ module Twilio
378
379
  end
379
380
 
380
381
  ##
381
- # @return [String] The type of action. Accepted values: SEND_MESSAGE.
382
+ # @return [String] The type of action: action-send-message or action-start-flow.
382
383
  def type
383
384
  @properties['type']
384
385
  end
@@ -396,7 +397,7 @@ module Twilio
396
397
  end
397
398
 
398
399
  ##
399
- # @return [Hash<String, String>] Named identifiers from downstream. For SEND_MESSAGE: - messageSid: The downstream message SID (present when PENDING or COMPLETED) - communicationId: The Communication ID (present when COMPLETED)
400
+ # @return [Hash<String, String>] Named identifiers from downstream. For SEND_MESSAGE: - messageSid: The downstream message SID (present when PENDING or COMPLETED) - communicationId: The Communication ID (present when COMPLETED) For START_FLOW: - executionSid: The Studio Flow execution SID (present when COMPLETED)
400
401
  def related
401
402
  @properties['related']
402
403
  end
@@ -419,6 +420,12 @@ module Twilio
419
420
  @properties['completed_at']
420
421
  end
421
422
 
423
+ ##
424
+ # @return [String] Human-readable failure reason. Null unless status is FAILED.
425
+ def failure_reason
426
+ @properties['failure_reason']
427
+ end
428
+
422
429
  ##
423
430
  # Fetch the ActionInstance
424
431
  # @return [ActionInstance] Fetched ActionInstance
@@ -83,13 +83,15 @@ module Twilio
83
83
  # @param [author]: [CommunicationList.CreateCommunicationInConversationRequestAuthor]
84
84
  # @param [content]: [CommunicationList.CreateCommunicationInConversationRequestContent]
85
85
  # @param [channel_id]: [String]
86
+ # @param [resource_id]: [String] External resource identifier for this Communication (e.g. MessageSid for SMS/RCS/WhatsApp, TranscriptionSid + MessageIndex for Voice). If a Communication with the same resourceId already exists in the Conversation, it is updated instead of a new one being created.
86
87
  # @param [recipients]: [Array<CommunicationList.CreateCommunicationInConversationRequestRecipients>]
87
88
  # @param [occurred_at]: [Time] Timestamp when this Communication occurred. If omitted, the server uses the current time.
88
- attr_accessor :author, :content, :channel_id, :recipients, :occurred_at
89
+ attr_accessor :author, :content, :channel_id, :resource_id, :recipients, :occurred_at
89
90
  def initialize(payload)
90
91
  @author = payload["author"]
91
92
  @content = payload["content"]
92
93
  @channel_id = payload["channel_id"]
94
+ @resource_id = payload["resource_id"]
93
95
  @recipients = payload["recipients"]
94
96
  @occurred_at = payload["occurred_at"]
95
97
  end
@@ -98,6 +100,7 @@ module Twilio
98
100
  "author": @author,
99
101
  "content": @content,
100
102
  "channelId": @channel_id,
103
+ "resourceId": @resource_id,
101
104
  "recipients": @recipients,
102
105
  "occurredAt": @occurred_at,
103
106
  }.to_json(options)
@@ -1584,6 +1584,8 @@ module Twilio
1584
1584
  'channel_settings' => payload['channel_settings'],
1585
1585
  'status_callbacks' => payload['status_callbacks'],
1586
1586
  'intelligence_configuration_ids' => payload['intelligence_configuration_ids'],
1587
+ 'trait_extraction_strategy_ids' => payload['trait_extraction_strategy_ids'],
1588
+ 'observation_extraction_strategy_ids' => payload['observation_extraction_strategy_ids'],
1587
1589
  'memory_extraction_enabled' => payload['memory_extraction_enabled'],
1588
1590
  'conversations_v1_bridge' => payload['conversations_v1_bridge'],
1589
1591
  'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
@@ -1667,6 +1669,18 @@ module Twilio
1667
1669
  @properties['intelligence_configuration_ids']
1668
1670
  end
1669
1671
 
1672
+ ##
1673
+ # @return [Array<String>] A list of Trait Extraction Strategy IDs.
1674
+ def trait_extraction_strategy_ids
1675
+ @properties['trait_extraction_strategy_ids']
1676
+ end
1677
+
1678
+ ##
1679
+ # @return [Array<String>] A list of Observation Extraction Strategy IDs.
1680
+ def observation_extraction_strategy_ids
1681
+ @properties['observation_extraction_strategy_ids']
1682
+ end
1683
+
1670
1684
  ##
1671
1685
  # @return [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
1672
1686
  def memory_extraction_enabled