Skip to content

Commit 57d20fb

Browse files
band-swi-release-engineering[bot]DX-Bandwidthckoegel
authored
DX-4173 Update SDK Based on Recent Spec Changes (#317)
* Generate SDK with OpenAPI Generator Version 7.17.0 * update unit tests * update smoke test --------- Co-authored-by: DX-Bandwidth <dx@bandwidth.com> Co-authored-by: ckoegel <ckoegel1006@gmail.com>
1 parent 7972dcf commit 57d20fb

51 files changed

Lines changed: 610 additions & 106 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.openapi-generator/FILES‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ bandwidth/models/rbm_message_content_rich_card.py
166166
bandwidth/models/rbm_message_content_text.py
167167
bandwidth/models/rbm_message_media.py
168168
bandwidth/models/rbm_open_url_enum.py
169+
bandwidth/models/rbm_session.py
169170
bandwidth/models/rbm_standalone_card.py
170171
bandwidth/models/rbm_suggestion_response.py
171172
bandwidth/models/rbm_web_view_enum.py
@@ -377,6 +378,7 @@ docs/RbmMessageContentRichCard.md
377378
docs/RbmMessageContentText.md
378379
docs/RbmMessageMedia.md
379380
docs/RbmOpenUrlEnum.md
381+
docs/RbmSession.md
380382
docs/RbmStandaloneCard.md
381383
docs/RbmSuggestionResponse.md
382384
docs/RbmWebViewEnum.md

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ Class | Method | HTTP request | Description
308308
- [RbmMessageContentText](docs/RbmMessageContentText.md)
309309
- [RbmMessageMedia](docs/RbmMessageMedia.md)
310310
- [RbmOpenUrlEnum](docs/RbmOpenUrlEnum.md)
311+
- [RbmSession](docs/RbmSession.md)
311312
- [RbmStandaloneCard](docs/RbmStandaloneCard.md)
312313
- [RbmSuggestionResponse](docs/RbmSuggestionResponse.md)
313314
- [RbmWebViewEnum](docs/RbmWebViewEnum.md)

‎bandwidth.yml‎

Lines changed: 231 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,6 +2031,7 @@ components:
20312031
messageLength:
20322032
type: integer
20332033
description: The length of the message content.
2034+
nullable: true
20342035
example: 18
20352036
attachmentCount:
20362037
type: integer
@@ -2620,14 +2621,13 @@ components:
26202621
type: string
26212622
description: Displayed text for user to click
26222623
maxLength: 25
2623-
example: Hello world
2624+
example: Track my order
26242625
rbmActionPostbackData:
26252626
title: Post Back Data
26262627
type: string
2627-
format: byte
2628-
description: Base64 payload the customer receives when the reply is clicked.
2628+
description: Payload the customer receives when the reply is clicked.
26292629
maxLength: 2048
2630-
example: SGVsbG8gd29ybGQ=
2630+
example: track-order-43654
26312631
rbmActionBase:
26322632
type: object
26332633
properties:
@@ -2916,8 +2916,8 @@ components:
29162916
properties:
29172917
text:
29182918
type: string
2919-
description: The text associated with the suggestion response.
2920-
example: Yes, I would like to proceed
2919+
description: The text of the suggestion the user tapped.
2920+
example: Track my order
29212921
postbackData:
29222922
$ref: '#/components/schemas/rbmActionPostbackData'
29232923
pairedMessageId:
@@ -2938,6 +2938,70 @@ components:
29382938
format: double
29392939
description: The longitude of the client's location.
29402940
example: '-122.4194'
2941+
rbmSession:
2942+
type: object
2943+
description: >-
2944+
RCS interactive session information for the message.
2945+
2946+
An interactive session is a 24-hour window covering all Rich and Rich
2947+
Media messages exchanged between an
2948+
2949+
RCS agent and a specific end user mobile number. It is triggered when at
2950+
least 4 messages are exchanged within
2951+
2952+
24 hours, at least 2 of them mobile-originated and at least 1
2953+
mobile-terminated.
2954+
2955+
Only present on `message-delivered`, `message-received` and
2956+
`session-started` callbacks for RBM messages of
2957+
2958+
US agents with the Conversational billing category. Omitted for all
2959+
other messages.
2960+
properties:
2961+
canInitiate:
2962+
type: boolean
2963+
description: >-
2964+
Whether the message can start an interactive session.
2965+
2966+
`false` if the message is already part of an active session, or if
2967+
the agent is not eligible for
2968+
2969+
interactive session billing.
2970+
example: false
2971+
id:
2972+
type: string
2973+
nullable: true
2974+
description: >-
2975+
The unique identifier of the interactive session the message is part
2976+
of. This is not a message ID.
2977+
2978+
Omitted if the message is not part of a session.
2979+
example: 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
2980+
type:
2981+
type: string
2982+
nullable: true
2983+
description: |-
2984+
The type of the interactive session.
2985+
Only present on `session-started` callbacks.
2986+
example: INTERACTIVE_SESSION
2987+
startTime:
2988+
type: string
2989+
nullable: true
2990+
format: date-time
2991+
description: >-
2992+
The time the 24-hour session window opened. Only present on
2993+
`session-started` callbacks.
2994+
example: '2026-08-06T09:59:55Z'
2995+
endTime:
2996+
type: string
2997+
nullable: true
2998+
format: date-time
2999+
description: >-
3000+
The time the 24-hour session window closes. Only present on
3001+
`session-started` callbacks.
3002+
example: '2026-08-07T09:59:55Z'
3003+
required:
3004+
- canInitiate
29413005
callback:
29423006
description: >-
29433007
Callbacks are divided into two types based on direction of the related
@@ -2960,6 +3024,7 @@ components:
29603024
message-delivered: '#/components/schemas/statusCallback'
29613025
message-failed: '#/components/schemas/statusCallback'
29623026
message-read: '#/components/schemas/statusCallback'
3027+
session-started: '#/components/schemas/statusCallback'
29633028
message-received: '#/components/schemas/inboundCallback'
29643029
requested-location-response: '#/components/schemas/inboundCallback'
29653030
suggestion-response: '#/components/schemas/inboundCallback'
@@ -3060,12 +3125,17 @@ components:
30603125
30613126
- `message-read` indicates that the RBM message was read by the
30623127
recipient.
3128+
3129+
- `session-started` indicates that a previously exchanged RBM message is
3130+
now part of an RCS interactive session and is no longer billed
3131+
individually.
30633132
enum:
30643133
- message-sending
30653134
- message-sent
30663135
- message-delivered
30673136
- message-failed
30683137
- message-read
3138+
- session-started
30693139
example: message-delivered
30703140
inboundCallbackTypeEnum:
30713141
type: string
@@ -3143,6 +3213,8 @@ components:
31433213
$ref: '#/components/schemas/priorityEnum'
31443214
channel:
31453215
$ref: '#/components/schemas/multiChannelMessageChannelEnum'
3216+
session:
3217+
$ref: '#/components/schemas/rbmSession'
31463218
required:
31473219
- id
31483220
- owner
@@ -4876,6 +4948,10 @@ components:
48764948
$ref: '#/components/schemas/sipCallId'
48774949
sipResponseCode:
48784950
$ref: '#/components/schemas/sipResponseCode'
4951+
sipStatusLine:
4952+
$ref: '#/components/schemas/sipStatusLine'
4953+
sipHeaders:
4954+
$ref: '#/components/schemas/sipHeaders'
48794955
dtmfCallback:
48804956
type: object
48814957
description: >-
@@ -5395,6 +5471,12 @@ components:
53955471
$ref: '#/components/schemas/errorMessage'
53965472
errorId:
53975473
$ref: '#/components/schemas/errorId'
5474+
sipResponseCode:
5475+
$ref: '#/components/schemas/sipResponseCode'
5476+
sipStatusLine:
5477+
$ref: '#/components/schemas/sipStatusLine'
5478+
sipHeaders:
5479+
$ref: '#/components/schemas/sipHeaders'
53985480
eventType:
53995481
type: string
54005482
description: >-
@@ -5710,23 +5792,44 @@ components:
57105792
additionalProperties:
57115793
type: string
57125794
description: >-
5713-
(optional) Map of customer-supplied X-* headers from the original
5714-
INVITE. Keys are lowercase (SIP headers are case-insensitive). Present
5715-
only for inbound SIP URI calls with custom headers. Note - keys preserve
5716-
the original SIP header name in lowercase rather than Bandwidth's usual
5717-
camelCase JSON convention, since these are passthrough values from the
5718-
caller's SIP INVITE, not Bandwidth-defined fields. If the same header
5719-
name is sent more than once in the INVITE, only the last value is kept.
5795+
(optional) Map of SIP headers, with lowercase keys (SIP headers are
5796+
case-insensitive). On the Initiate callback, contains the
5797+
customer-supplied X-* headers from the original INVITE; present only for
5798+
inbound SIP URI calls with custom headers. On the Disconnect and
5799+
Transfer Disconnect callbacks, contains a single `reason` key holding
5800+
the raw, unmodified `Reason` header value from the final SIP response
5801+
that rejected an outbound call (or transferred leg); present only when
5802+
that response included a `Reason` header (for example, `v=analytics1`
5803+
call-analytics block information from a terminating carrier). If the
5804+
response carries more than one `Reason` header, all values are returned
5805+
in the order received, separated by `, `. Note - on the Initiate
5806+
callback, keys preserve the original SIP header name in lowercase rather
5807+
than Bandwidth's usual camelCase JSON convention, since these are
5808+
passthrough values from the caller's SIP INVITE, not Bandwidth-defined
5809+
fields. If the same header name is sent more than once in the INVITE,
5810+
only the last value is kept. The example shown is for the Initiate
5811+
callback; on the Disconnect and Transfer Disconnect callbacks the only
5812+
key is `reason`.
57205813
example:
57215814
x-custom-header: customer-value
57225815
x-session-id: sess-12345
57235816
sipResponseCode:
57245817
type: integer
57255818
description: >-
5726-
(optional) The SIP status code returned by Bandwidth's SBC when it
5727-
rejected an outbound call's INVITE (e.g. 486 for busy, 603 for decline).
5728-
Present only when an outbound call was rejected by the SBC.
5819+
(optional) The SIP status code of the final response that rejected an
5820+
outbound call's (or transferred leg's) INVITE (e.g. 486 for busy, 603
5821+
for decline). Present only when the call was rejected with a SIP
5822+
response.
57295823
example: 486
5824+
sipStatusLine:
5825+
type: string
5826+
description: >-
5827+
(optional) The full SIP status line, exactly as received, of the final
5828+
response that rejected an outbound call's INVITE. The reason phrase can
5829+
help distinguish outcomes that share a status code, such as `603 Network
5830+
Blocked` and `603 Decline`. Present only when an outbound call was
5831+
rejected with a SIP response.
5832+
example: SIP/2.0 603 Network Blocked
57305833
codeRequest:
57315834
type: object
57325835
properties:
@@ -8878,6 +8981,31 @@ components:
88788981
media:
88798982
- >-
88808983
https://messaging.bandwidth.com/api/v2/users/9900902/media/14762070468292kw2fuqty55yp2b2/0/bw.png
8984+
rbmMessageReceivedSessionCallbackExample:
8985+
summary: >-
8986+
An example of a rbm message-received callback body for a message that is
8987+
part of an RCS interactive session.
8988+
value:
8989+
time: '2026-08-06T10:00:05.502180Z'
8990+
type: message-received
8991+
to: BandwidthRBM
8992+
description: Incoming message received
8993+
message:
8994+
id: 1786010405502l2ntaoajuqjhqnxu
8995+
owner: BandwidthRBM
8996+
applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
8997+
time: '2026-08-06T10:00:05.302180Z'
8998+
segmentCount: 1
8999+
direction: in
9000+
to:
9001+
- BandwidthRBM
9002+
from: '+12345678902'
9003+
channel: RBM
9004+
content:
9005+
text: Yes, please book it for tomorrow.
9006+
session:
9007+
canInitiate: false
9008+
id: 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
88819009
messageSendingCallbackExample:
88829010
summary: An example of a message-sending callback body.
88839011
value:
@@ -8977,6 +9105,79 @@ components:
89779105
owner: '+12345678902'
89789106
direction: out
89799107
segmentCount: 1
9108+
rbmMessageDeliveredSessionCallbackExample:
9109+
summary: >-
9110+
An example of a rbm message-delivered callback body for a message that
9111+
is part of an RCS interactive session.
9112+
value:
9113+
type: message-delivered
9114+
time: '2026-08-06T10:01:11.160744Z'
9115+
description: Message delivered to handset.
9116+
to: '+12345678902'
9117+
message:
9118+
id: 1786010470868ty55yp2b2kw2fuq
9119+
time: '2026-08-06T10:01:10.868292Z'
9120+
to:
9121+
- '+12345678902'
9122+
from: BandwidthRBM
9123+
text: ''
9124+
applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
9125+
owner: BandwidthRBM
9126+
direction: out
9127+
segmentCount: 1
9128+
channel: RBM
9129+
session:
9130+
canInitiate: false
9131+
id: 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
9132+
rbmMessageDeliveredCanInitiateSessionCallbackExample:
9133+
summary: >-
9134+
An example of a rbm message-delivered callback body for a message that
9135+
is not yet part of an RCS interactive session.
9136+
value:
9137+
type: message-delivered
9138+
time: '2026-08-06T09:59:56.160744Z'
9139+
description: Message delivered to handset.
9140+
to: '+12345678902'
9141+
message:
9142+
id: 1786010395000kw2fuqty55yp2b2
9143+
time: '2026-08-06T09:59:55.000000Z'
9144+
to:
9145+
- '+12345678902'
9146+
from: BandwidthRBM
9147+
text: ''
9148+
applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
9149+
owner: BandwidthRBM
9150+
direction: out
9151+
segmentCount: 1
9152+
channel: RBM
9153+
session:
9154+
canInitiate: true
9155+
sessionStartedCallbackExample:
9156+
summary: An example of a session-started callback body.
9157+
value:
9158+
type: session-started
9159+
time: '2026-08-06T10:00:00.123000Z'
9160+
description: Message is now part of an RCS interactive session.
9161+
to: '+12345678902'
9162+
message:
9163+
id: 1786010395000kw2fuqty55yp2b2
9164+
owner: BandwidthRBM
9165+
applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
9166+
time: '2026-08-06T10:00:00.120000Z'
9167+
segmentCount: 1
9168+
direction: out
9169+
to:
9170+
- '+12345678902'
9171+
from: BandwidthRBM
9172+
text: ''
9173+
tag: ''
9174+
channel: RBM
9175+
session:
9176+
canInitiate: false
9177+
id: 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
9178+
type: INTERACTIVE_SESSION
9179+
startTime: '2026-08-06T09:59:55Z'
9180+
endTime: '2026-08-07T09:59:55Z'
89809181
messageFailedCallbackExample:
89819182
summary: An example of a message-failed callback body.
89829183
value:
@@ -9980,6 +10181,9 @@ components:
998010181
$ref: '#/components/examples/smsMessageReceivedCallbackExample'
998110182
mmsMessageReceivedCallback:
998210183
$ref: '#/components/examples/mmsMessageReceivedCallbackExample'
10184+
rbmMessageReceivedSessionCallback:
10185+
$ref: >-
10186+
#/components/examples/rbmMessageReceivedSessionCallbackExample
998310187
responses:
998410188
'200':
998510189
description: OK
@@ -9995,8 +10199,9 @@ components:
999510199
information regarding a message sent (MT)
999610200
999710201
from your message-enabled Bandwidth telephone number.
9998-
<p>The payload type will be one of <code>message-sending</code>, <code>message-sent</code>, <code>message-delivered</code>, <code>message-failed</code> or <code>message-read</code>.
9999-
<p>Note that <code>message-read</code> callbacks are pertinent only for RBM messages sent from the <code>/messages/multiChannel</code> endpoint.
10202+
<p>The payload type will be one of <code>message-sending</code>, <code>message-sent</code>, <code>message-delivered</code>, <code>message-failed</code>, <code>message-read</code> or <code>session-started</code>.
10203+
<p>Note that <code>message-read</code> and <code>session-started</code> callbacks are pertinent only for RBM messages sent from the <code>/messages/multiChannel</code> endpoint.
10204+
<p>Note that <code>session-started</code> callbacks are pertinent only for RBM messages of agents with the Conversational billing category.
1000010205
</p><p>Please visit <a
1000110206
href='/docs/messaging/webhooks/'>Webhooks</a></p>
1000210207
content:
@@ -10015,8 +10220,16 @@ components:
1001510220
groupMmsMessageDeliveredCallback:
1001610221
$ref: >-
1001710222
#/components/examples/groupMmsMessageDeliveredCallbackExample
10223+
rbmMessageDeliveredSessionCallback:
10224+
$ref: >-
10225+
#/components/examples/rbmMessageDeliveredSessionCallbackExample
10226+
rbmMessageDeliveredCanInitiateSessionCallback:
10227+
$ref: >-
10228+
#/components/examples/rbmMessageDeliveredCanInitiateSessionCallbackExample
1001810229
messageFailedCallback:
1001910230
$ref: '#/components/examples/messageFailedCallbackExample'
10231+
sessionStartedCallback:
10232+
$ref: '#/components/examples/sessionStartedCallbackExample'
1002010233
responses:
1002110234
'200':
1002210235
description: OK

0 commit comments

Comments
 (0)