twilio-ruby 7.11.2 → 7.11.3

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: e4972b2e50e8c249c2d1363eda7d1ef843f042ff384c69bc6d1750074d770a9b
4
- data.tar.gz: c8a9a2fecaecd06a3b52dcbc56ff98b53e27b88447feeed5fc3fe8cde2677e67
3
+ metadata.gz: 92782df8271f1b9a7f8ee80b10514048392c27dc6d58c3513e21a8fa2592a74e
4
+ data.tar.gz: 031343a9310ec971d5d015aaadd5df55ab781a9cacfd15b53dc6bf79b95fae05
5
5
  SHA512:
6
- metadata.gz: a8de116b65103df280495f5a3f0a796053124899bcbc92a0bfe2a73045ccbcd803cf79c2cbe5276173cfa094ba7793d90e17ba950d3236c601a6b89e28846edf
7
- data.tar.gz: 8aec018fb3f7037a632125a49c9f744422d39cb0c3beddc6aeb2f4abb19b63c569c4dd890abbc43c6d247fa77c530ff79ca48159fbc5cac59c6044527781aac1
6
+ metadata.gz: cdcf4946f4391697754789328369c248036fc05a7217ee4d60a4bad9ef2e61f6e0ec4fbcaddbca51b141d7d771ce1fefc55dcba49bd775af43521b8b73a86e28
7
+ data.tar.gz: 170130144ac18fbe7dc463683ea7ddea4494ba27fc329f29a801a44f317fb4c19ba9fbeb72d0d506c4c94d50efe239cc46e78c157c425de0200186662a7fbd59
@@ -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,201 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
+ [2026-09-28] Version 7.11.3
4
+ ---------------------------
5
+ **Library - Fix**
6
+ - [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)!
7
+
8
+ **Twiml**
9
+ - Add `audio_format` and `sample_rate` to Stream for HDCodec
10
+
11
+ **Api**
12
+ - # API Changes
13
+ - ## 2026-09-22
14
+ - Simplified the `criteria` field description.
15
+ - ## 2026-09-18
16
+ - 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).
17
+ - ## 2026-09-17
18
+ - Renamed 3 `Get*` operations to `Fetch*` to match the operationId standard: `FetchCohort`, `FetchSnapshot`, `FetchOperation`.
19
+ - Removed the unused `ExpressionId` schema and made the operation error example cohort-native, so no `aud_` identifiers remain in the spec.
20
+ - Kept `libraryVisibility: hidden` across the whole surface (info, path items, and operations).
21
+ - ## 2026-09-08
22
+ - Removed the deprecated header-based-versioning unified specs, consolidating audiences onto the path-based `api.twilio.com/v1` surface.
23
+ - ## 2026-08-31
24
+ - Published the unified audiences spec at `api.twilio.com/v1`.
25
+ - ## 2026-08-26
26
+ - Fixed the Cohort operation response mapping in the unified audiences API.
27
+ - ## 2026-08-19
28
+ - Migrated the unified audiences spec to the Cohort surface (Audiences renamed to Cohorts).
29
+ - Switched `downstreamServiceName` to `audiences-domain`.
30
+ - ## 2026-08-05
31
+ - Added the `api.unified.version.preview` beta feature.
32
+ - Made the unified APIs available in prod us1.
33
+ - ## 2026-07-30
34
+ - Fixed example values.
35
+ - ## 2026-07-29
36
+ - Added the initial version of the audiences API to the unified APIs.
37
+ - ## 2026-07-20
38
+ - Deployed the audiences-domain OAS to the dev edge.
39
+ - ## 2026-07-06
40
+ - Added the prod-us1 realm to the audiences public API.
41
+ - ## 2026-06-23
42
+ - Changed the `storeType` enum from `MEMORA` to `TWILIO`.
43
+ - ## 2026-05-04
44
+ - Added the stage-us1 realm and `x-rate-limit` to the audiences API.
45
+ - ## 2026-04-08
46
+ - Added the initial audiences endpoints.
47
+ - Add `TwimlProcessStatusCallbackEvents` parameter to CreateTwimlProcess endpoint
48
+ - Add `twiml_process` resource alongside `twiml_session` (`twiml_session` is deprecated and will be removed in a future release)
49
+
50
+ **Audiences**
51
+ - ## 2026-09-14
52
+ - Minor updates (formatting, metadata)
53
+ - ## 2026-09-11
54
+ - **Content updates**:
55
+ - Updated summary for `AdminFetchRecord`
56
+ - Updated summary for `AdminFetchCohort`
57
+ - Updated summary for `AdminFetchCohortSnapshot`
58
+ - Updated summary for `AdminFetchCohortOperation`
59
+ - Updated schema description for `ResourceLabels`
60
+ - ## 2026-09-22
61
+ - **Content updates**:
62
+ - Updated schema description for `Criteria`
63
+ - ## 2026-09-18
64
+ - Minor updates (formatting, metadata)
65
+ - ## 2026-09-17
66
+ - Minor updates (formatting, metadata)
67
+ - ## 2026-09-17
68
+ - **Content updates**:
69
+ - Updated description for `CreateCohort`
70
+ - Updated description for `ListCohortSnapshots`
71
+ - Updated description for `CreateCohortSnapshot`
72
+ - Updated description for `FetchCohortSnapshot`
73
+ - Updated description for `ListCohortSnapshotProfiles`
74
+ - Updated schema description for `Criteria`
75
+ - Updated schema description for `Cohort`
76
+ - Updated schema description for `CohortSnapshot`
77
+ - Updated schema description for `CohortOperationResult`
78
+ - Updated schema description for `CohortOperation`
79
+ - ## 2026-09-15
80
+ - Minor updates (formatting, metadata)
81
+ - ## 2026-09-14
82
+ - **Content updates**:
83
+ - Updated summary for `FetchCohort`
84
+ - Updated summary for `FetchCohortSnapshot`
85
+ - Updated summary for `FetchCohortOperation`
86
+ - Updated schema description for `ResourceLabels`
87
+
88
+ **Capabilities**
89
+ - Add a feature-gated preview endpoint to create Capabilities.
90
+
91
+ **Conversations**
92
+ - Add the feature-gated Capabilities list and create endpoints to Conversations v2.
93
+
94
+ **Data-ingress**
95
+ - ## 2026-09-07
96
+ - Minor updates (formatting, metadata)
97
+ - ## 2026-09-09
98
+ - **Added 16 new path(s)**:
99
+ - `/v1/DataSyncs/{syncId}` (FetchDataSync)
100
+ - `/v1/CloudAppSources/{sourceId}/Objects` (ListCloudAppObjects)
101
+ - `/v1/WarehouseSources/{sourceId}/Preview` (CreateWarehousePreview)
102
+ - `/v1/WarehouseSources/{sourceId}/Preview/{operationId}` (FetchWarehousePreview)
103
+ - `/v1/DataSample/{operationId}` (FetchDataSample)
104
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
105
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
106
+ - `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets/{datasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
107
+ - `/v1/ControlPlane/WarehouseSources/{sourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
108
+ - `/v1/ControlPlane/WarehouseSources/{sourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
109
+ - ...and 6 more paths
110
+ - **Removed 31 path(s)**:
111
+ - `/v1/DataSyncs/{SyncId}` (FetchDataSync)
112
+ - `/v1/CloudAppSources/{SourceId}/Objects` (ListCloudAppObjects)
113
+ - `/v1/WarehouseSources/{SourceId}/Preview` (CreateWarehousePreview)
114
+ - `/v1/WarehouseSources/{SourceId}/Preview/{OperationId}` (FetchWarehousePreview)
115
+ - `/v1/DataSample/{OperationId}` (FetchDataSample)
116
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
117
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
118
+ - `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets/{DatasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
119
+ - `/v1/ControlPlane/WarehouseSources/{SourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
120
+ - `/v1/ControlPlane/WarehouseSources/{SourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
121
+ - ...and 21 more paths
122
+
123
+ **Destinations**
124
+ - ## 2026-09-24
125
+ - **Content updates**:
126
+ - Removed `GET` from the `method` enum on the `webhook` destination type's config options
127
+ - ## 2026-09-22
128
+ - **Content updates**:
129
+ - Added `CDP` to the `categories` enum on `DestinationType`
130
+ - ## 2026-09-14
131
+ - Enable admin APIs for stage-us1 and prod-ie1 realms
132
+ - ## 2026-09-11
133
+ - **Content updates**:
134
+ - Updated description for `CreateDestination`
135
+ - Updated description for `UpdateDestination`
136
+ - Updated description for `DeleteDestination`
137
+ - Updated schema description for `CredentialInput`
138
+ - Updated schema description for `DestinationCredentialOptions`
139
+ - ## 2026-09-11
140
+ - **Content updates**:
141
+ - Updated description for `ListDestinationTypes`
142
+ - Updated description for `GetDestinationType`
143
+ - Updated description for `CreateDestination`
144
+ - Updated description for `UpdateDestination`
145
+ - ## 2026-09-10
146
+ - Made `ListDestinationTypes` and `GetDestinationType` unauthenticated (`security: []`).
147
+ - Removed `iamOperation`, `addAuthorizationHeader`, and `betaFeature` from these operations.
148
+
149
+ **Iam**
150
+ - Removed user_context from the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload; the login email is read from authentication_context.methods
151
+ - Replaced acr and completed_factors with authentication_context (acr, amr, methods) on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
152
+ - Made request_context and request_context.ip_address required on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
153
+
154
+ **Intelligence**
155
+ - Added optional `rule.operators[]` parameter override field to `POST /v3/RuleExecutions
156
+ - Change Summary in `POST /v3/RuleExecutions`
157
+
158
+ **Knowledge**
159
+ - ## 2026-09-23
160
+ - **Content updates**:
161
+ - Added properties to `WebSourceDetails`: errors
162
+ - **Routing updates**:
163
+ - Changed `downstreamServiceName` from `memora-domain` to `enterprise-knowledge-domain` for all operations
164
+
165
+ **Memory**
166
+ - ## 2026-09-18
167
+ - **Added 2 new path(s)**:
168
+ - `/v1/ControlPlane/TraitExtractionStrategies` (AdminListTraitExtractionStrategies)
169
+ - `/v1/ControlPlane/TraitExtractionStrategies/{traitStrategyId}` (AdminFetchTraitExtractionStrategy)
170
+ - ## 2026-09-03
171
+ - No path changes (schema description only)
172
+ - Clarified the `DataMappingCore` description: the PATCH body requires at least one field.
173
+ - ## 2026-09-10
174
+ - **Added 2 new path(s)** for Observation Extraction Strategies:
175
+ - `/v1/ControlPlane/ObservationExtractionStrategies` (ListObservationExtractionStrategies, CreateObservationExtractionStrategy)
176
+ - `/v1/ControlPlane/ObservationExtractionStrategies/{observationExtractionStrategyId}` (FetchObservationExtractionStrategy, UpdateObservationExtractionStrategy, DeleteObservationExtractionStrategy)
177
+ - **Content updates**:
178
+ - Updated `CreateObservationExtractionStrategyInput` description to document that at least one of `allowedCategories`/`prohibitedCategories` must be provided with a non-empty list
179
+ - ## 2026-09-07
180
+ - **Added 1 new path(s)** for Profile:
181
+ - `/v1/Stores/{storeId}/Profiles/BulkDeletions` (CreateProfilesBulkDeletion)
182
+ - ## 2026-09-03
183
+ - `UpdateStore`, `UpdateTraitGroup`, `UpdateDataMapping`, and `UpdateTraitExtractionStrategy` now require a body with at least one property. An empty `{}` gets a 400.
184
+
185
+ **Routes**
186
+ - Add `GET`/`POST` `/v3/ShortCodes/{isoCountryCode}/{shortCode}` to assign and fetch the Inbound Processing Region for short codes
187
+
188
+ **Verify**
189
+ - Add `aaguid` and `date_last_approved` to passkeys factors `metadata`.
190
+
191
+ **Voice**
192
+ - Add typed Recording AccountDefaultConfiguration public API endpoints.
193
+
194
+ **Webhooks**
195
+ - ## 2026-09-24
196
+ - **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.
197
+
198
+
3
199
  [2026-09-09] Version 7.11.2
4
200
  ---------------------------
5
201
  **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.11.3)
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.11.3)
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.11.3'
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.11.3
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
@@ -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.