rcs 1.0.10 → 1.0.12
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 +4 -4
- data/lib/rcs/send/client.rb +53 -14
- data/lib/rcs/send/types/rcs_fallback.rb +84 -0
- data/lib/rcs/types/action.rb +14 -6
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bcabdc33fdbabdd3b7cfc7978a324d98e093c8a0b07d39114785fbab248fd60
|
4
|
+
data.tar.gz: 7c1dd8ac26f8eca62e4c3a219cb5e1fc8d658ec61133251467a94daf5f13b525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9681f12bdeeab84a1a7e41be608aea3b3ca9c5c978aea029218ec5d91e0f1db9eb5bceab473249acc28b82dd8d5b016302f57d61d1e322b22978ca11b5a3b33b
|
7
|
+
data.tar.gz: a6b0153c40257cc2e1443cd4247c0cb572014dae19f970e70eb569c031018a7ee6f2d8e9d3ee8baec18b7c0c9b3711a7b387e497a0a638ef1e04f196152201f7
|
data/lib/rcs/send/client.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require_relative "../../requests"
|
4
4
|
require_relative "../types/card"
|
5
5
|
require_relative "../types/action"
|
6
|
+
require_relative "types/rcs_fallback"
|
6
7
|
require_relative "types/send_rcs_response"
|
7
8
|
require_relative "types/send_sms_response"
|
8
9
|
require_relative "types/send_mms_response"
|
@@ -54,6 +55,12 @@ module Pinnacle
|
|
54
55
|
# * :lat_long (Hash)
|
55
56
|
# * :lat (Float)
|
56
57
|
# * :lng (Float)
|
58
|
+
# @param fallback [Hash] Request of type Pinnacle::Send::RcsFallback, as a Hash
|
59
|
+
# * :from (String)
|
60
|
+
# * :text (String)
|
61
|
+
# * :media_urls (Array<String>)
|
62
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
63
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
57
64
|
# @param request_options [Pinnacle::RequestOptions]
|
58
65
|
# @return [Pinnacle::Send::SendRcsResponse]
|
59
66
|
# @example
|
@@ -63,7 +70,8 @@ module Pinnacle
|
|
63
70
|
# api_key: "YOUR_API_KEY"
|
64
71
|
# )
|
65
72
|
# api.send.rcs(from: "from", to: "to")
|
66
|
-
def rcs(from:, to:, text: nil, media_url: nil, cards: nil, quick_replies: nil,
|
73
|
+
def rcs(from:, to:, text: nil, media_url: nil, cards: nil, quick_replies: nil, fallback: nil, status_callback: nil,
|
74
|
+
request_options: nil)
|
67
75
|
response = @request_client.conn.post do |req|
|
68
76
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
69
77
|
req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
|
@@ -82,7 +90,9 @@ module Pinnacle
|
|
82
90
|
text: text,
|
83
91
|
mediaUrl: media_url,
|
84
92
|
cards: cards,
|
85
|
-
quickReplies: quick_replies
|
93
|
+
quickReplies: quick_replies,
|
94
|
+
fallback: fallback,
|
95
|
+
statusCallback: status_callback
|
86
96
|
}.compact
|
87
97
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/rcs"
|
88
98
|
end
|
@@ -94,6 +104,8 @@ module Pinnacle
|
|
94
104
|
# @param to [String] The recipient's phone number in E.164 format (e.g., +12345678901).
|
95
105
|
# @param from [String] The sender's phone number in E.164 format. Must be owned by the user.
|
96
106
|
# @param text [String] The SMS message content (max 1600 characters).
|
107
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
108
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
97
109
|
# @param request_options [Pinnacle::RequestOptions]
|
98
110
|
# @return [Pinnacle::Send::SendSmsResponse]
|
99
111
|
# @example
|
@@ -107,7 +119,7 @@ module Pinnacle
|
|
107
119
|
# from: "from",
|
108
120
|
# text: "text"
|
109
121
|
# )
|
110
|
-
def sms(to:, from:, text:, request_options: nil)
|
122
|
+
def sms(to:, from:, text:, status_callback: nil, request_options: nil)
|
111
123
|
response = @request_client.conn.post do |req|
|
112
124
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
113
125
|
req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
|
@@ -119,7 +131,13 @@ module Pinnacle
|
|
119
131
|
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
120
132
|
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
121
133
|
end
|
122
|
-
req.body = {
|
134
|
+
req.body = {
|
135
|
+
**(request_options&.additional_body_parameters || {}),
|
136
|
+
to: to,
|
137
|
+
from: from,
|
138
|
+
text: text,
|
139
|
+
statusCallback: status_callback
|
140
|
+
}.compact
|
123
141
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/sms"
|
124
142
|
end
|
125
143
|
Pinnacle::Send::SendSmsResponse.from_json(json_object: response.body)
|
@@ -133,6 +151,8 @@ module Pinnacle
|
|
133
151
|
# @param media_urls [Array<String>] The URLs of media to include. `jpeg`, `jpg`, `gif`, and `png` file types are
|
134
152
|
# fully supported and have a size limit of 5 MB. 500 KB limit for other types. Up
|
135
153
|
# to 10 media URLs can be included.
|
154
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
155
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
136
156
|
# @param request_options [Pinnacle::RequestOptions]
|
137
157
|
# @return [Pinnacle::Send::SendMmsResponse]
|
138
158
|
# @example
|
@@ -144,10 +164,9 @@ module Pinnacle
|
|
144
164
|
# api.send.mms(
|
145
165
|
# to: "to",
|
146
166
|
# from: "from",
|
147
|
-
# text: "text",
|
148
167
|
# media_urls: ["https://example.com/image1.jpg", "https://example.com/video.mp4"]
|
149
168
|
# )
|
150
|
-
def mms(to:, from:,
|
169
|
+
def mms(to:, from:, media_urls:, text: nil, status_callback: nil, request_options: nil)
|
151
170
|
response = @request_client.conn.post do |req|
|
152
171
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
153
172
|
req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
|
@@ -164,7 +183,8 @@ module Pinnacle
|
|
164
183
|
to: to,
|
165
184
|
from: from,
|
166
185
|
text: text,
|
167
|
-
mediaUrls: media_urls
|
186
|
+
mediaUrls: media_urls,
|
187
|
+
statusCallback: status_callback
|
168
188
|
}.compact
|
169
189
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/mms"
|
170
190
|
end
|
@@ -217,6 +237,12 @@ module Pinnacle
|
|
217
237
|
# * :lat_long (Hash)
|
218
238
|
# * :lat (Float)
|
219
239
|
# * :lng (Float)
|
240
|
+
# @param fallback [Hash] Request of type Pinnacle::Send::RcsFallback, as a Hash
|
241
|
+
# * :from (String)
|
242
|
+
# * :text (String)
|
243
|
+
# * :media_urls (Array<String>)
|
244
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
245
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
220
246
|
# @param request_options [Pinnacle::RequestOptions]
|
221
247
|
# @return [Pinnacle::Send::SendRcsResponse]
|
222
248
|
# @example
|
@@ -226,7 +252,8 @@ module Pinnacle
|
|
226
252
|
# api_key: "YOUR_API_KEY"
|
227
253
|
# )
|
228
254
|
# api.send.rcs(from: "from", to: "to")
|
229
|
-
def rcs(from:, to:, text: nil, media_url: nil, cards: nil, quick_replies: nil,
|
255
|
+
def rcs(from:, to:, text: nil, media_url: nil, cards: nil, quick_replies: nil, fallback: nil, status_callback: nil,
|
256
|
+
request_options: nil)
|
230
257
|
Async do
|
231
258
|
response = @request_client.conn.post do |req|
|
232
259
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
@@ -246,7 +273,9 @@ module Pinnacle
|
|
246
273
|
text: text,
|
247
274
|
mediaUrl: media_url,
|
248
275
|
cards: cards,
|
249
|
-
quickReplies: quick_replies
|
276
|
+
quickReplies: quick_replies,
|
277
|
+
fallback: fallback,
|
278
|
+
statusCallback: status_callback
|
250
279
|
}.compact
|
251
280
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/rcs"
|
252
281
|
end
|
@@ -259,6 +288,8 @@ module Pinnacle
|
|
259
288
|
# @param to [String] The recipient's phone number in E.164 format (e.g., +12345678901).
|
260
289
|
# @param from [String] The sender's phone number in E.164 format. Must be owned by the user.
|
261
290
|
# @param text [String] The SMS message content (max 1600 characters).
|
291
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
292
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
262
293
|
# @param request_options [Pinnacle::RequestOptions]
|
263
294
|
# @return [Pinnacle::Send::SendSmsResponse]
|
264
295
|
# @example
|
@@ -272,7 +303,7 @@ module Pinnacle
|
|
272
303
|
# from: "from",
|
273
304
|
# text: "text"
|
274
305
|
# )
|
275
|
-
def sms(to:, from:, text:, request_options: nil)
|
306
|
+
def sms(to:, from:, text:, status_callback: nil, request_options: nil)
|
276
307
|
Async do
|
277
308
|
response = @request_client.conn.post do |req|
|
278
309
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
@@ -285,7 +316,13 @@ module Pinnacle
|
|
285
316
|
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
286
317
|
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
287
318
|
end
|
288
|
-
req.body = {
|
319
|
+
req.body = {
|
320
|
+
**(request_options&.additional_body_parameters || {}),
|
321
|
+
to: to,
|
322
|
+
from: from,
|
323
|
+
text: text,
|
324
|
+
statusCallback: status_callback
|
325
|
+
}.compact
|
289
326
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/sms"
|
290
327
|
end
|
291
328
|
Pinnacle::Send::SendSmsResponse.from_json(json_object: response.body)
|
@@ -300,6 +337,8 @@ module Pinnacle
|
|
300
337
|
# @param media_urls [Array<String>] The URLs of media to include. `jpeg`, `jpg`, `gif`, and `png` file types are
|
301
338
|
# fully supported and have a size limit of 5 MB. 500 KB limit for other types. Up
|
302
339
|
# to 10 media URLs can be included.
|
340
|
+
# @param status_callback [String] Optional URL to receive a POST request when the message status changes. Read
|
341
|
+
# more about status callbacks [here](/api-reference/receive-msg-statuses).
|
303
342
|
# @param request_options [Pinnacle::RequestOptions]
|
304
343
|
# @return [Pinnacle::Send::SendMmsResponse]
|
305
344
|
# @example
|
@@ -311,10 +350,9 @@ module Pinnacle
|
|
311
350
|
# api.send.mms(
|
312
351
|
# to: "to",
|
313
352
|
# from: "from",
|
314
|
-
# text: "text",
|
315
353
|
# media_urls: ["https://example.com/image1.jpg", "https://example.com/video.mp4"]
|
316
354
|
# )
|
317
|
-
def mms(to:, from:,
|
355
|
+
def mms(to:, from:, media_urls:, text: nil, status_callback: nil, request_options: nil)
|
318
356
|
Async do
|
319
357
|
response = @request_client.conn.post do |req|
|
320
358
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
@@ -332,7 +370,8 @@ module Pinnacle
|
|
332
370
|
to: to,
|
333
371
|
from: from,
|
334
372
|
text: text,
|
335
|
-
mediaUrls: media_urls
|
373
|
+
mediaUrls: media_urls,
|
374
|
+
statusCallback: status_callback
|
336
375
|
}.compact
|
337
376
|
req.url "#{@request_client.get_url(request_options: request_options)}/send/mms"
|
338
377
|
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
class Send
|
8
|
+
class RcsFallback
|
9
|
+
# @return [String] The sender's phone number in E.164 format. Must be owned by the user.
|
10
|
+
attr_reader :from
|
11
|
+
# @return [String] The fallback message content (max 1600 characters). One of 'text' or 'mediaUrls'
|
12
|
+
# must be provided.
|
13
|
+
attr_reader :text
|
14
|
+
# @return [Array<String>] The URLs of media to include. One of 'text' or 'mediaUrls' must be provided.
|
15
|
+
# `jpeg`, `jpg`, `gif`, and `png` file types are fully supported and have a size
|
16
|
+
# limit of 5 MB. 500 KB limit for other types. Up to 10 media URLs can be
|
17
|
+
# included.
|
18
|
+
attr_reader :media_urls
|
19
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
20
|
+
attr_reader :additional_properties
|
21
|
+
# @return [Object]
|
22
|
+
attr_reader :_field_set
|
23
|
+
protected :_field_set
|
24
|
+
|
25
|
+
OMIT = Object.new
|
26
|
+
|
27
|
+
# @param from [String] The sender's phone number in E.164 format. Must be owned by the user.
|
28
|
+
# @param text [String] The fallback message content (max 1600 characters). One of 'text' or 'mediaUrls'
|
29
|
+
# must be provided.
|
30
|
+
# @param media_urls [Array<String>] The URLs of media to include. One of 'text' or 'mediaUrls' must be provided.
|
31
|
+
# `jpeg`, `jpg`, `gif`, and `png` file types are fully supported and have a size
|
32
|
+
# limit of 5 MB. 500 KB limit for other types. Up to 10 media URLs can be
|
33
|
+
# included.
|
34
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
35
|
+
# @return [Pinnacle::Send::RcsFallback]
|
36
|
+
def initialize(from: OMIT, text: OMIT, media_urls: OMIT, additional_properties: nil)
|
37
|
+
@from = from if from != OMIT
|
38
|
+
@text = text if text != OMIT
|
39
|
+
@media_urls = media_urls if media_urls != OMIT
|
40
|
+
@additional_properties = additional_properties
|
41
|
+
@_field_set = { "from": from, "text": text, "mediaUrls": media_urls }.reject do |_k, v|
|
42
|
+
v == OMIT
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Deserialize a JSON object to an instance of RcsFallback
|
47
|
+
#
|
48
|
+
# @param json_object [String]
|
49
|
+
# @return [Pinnacle::Send::RcsFallback]
|
50
|
+
def self.from_json(json_object:)
|
51
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
52
|
+
parsed_json = JSON.parse(json_object)
|
53
|
+
from = parsed_json["from"]
|
54
|
+
text = parsed_json["text"]
|
55
|
+
media_urls = parsed_json["mediaUrls"]
|
56
|
+
new(
|
57
|
+
from: from,
|
58
|
+
text: text,
|
59
|
+
media_urls: media_urls,
|
60
|
+
additional_properties: struct
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Serialize an instance of RcsFallback to a JSON object
|
65
|
+
#
|
66
|
+
# @return [String]
|
67
|
+
def to_json(*_args)
|
68
|
+
@_field_set&.to_json
|
69
|
+
end
|
70
|
+
|
71
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
72
|
+
# hash and check each fields type against the current object's property
|
73
|
+
# definitions.
|
74
|
+
#
|
75
|
+
# @param obj [Object]
|
76
|
+
# @return [Void]
|
77
|
+
def self.validate_raw(obj:)
|
78
|
+
obj.from&.is_a?(String) != false || raise("Passed value for field obj.from is not the expected type, validation failed.")
|
79
|
+
obj.text&.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
|
80
|
+
obj.media_urls&.is_a?(Array) != false || raise("Passed value for field obj.media_urls is not the expected type, validation failed.")
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
data/lib/rcs/types/action.rb
CHANGED
@@ -19,11 +19,15 @@ module Pinnacle
|
|
19
19
|
# URL to open. For 'call', the payload is the phone number to dial. For 'trigger',
|
20
20
|
# the payload is the predefined payload to send to the webhook.
|
21
21
|
attr_reader :payload
|
22
|
-
# @return [String] Optional metadata.
|
22
|
+
# @return [String] Optional metadata. Only used for type 'trigger' ignored for other action types.
|
23
|
+
# When the user presses the action, the metadata is sent to the webhook alongside
|
24
|
+
# the payload.
|
23
25
|
attr_reader :metadata
|
24
|
-
# @return [String] Start time for events.
|
26
|
+
# @return [String] Start time for events in ISO 8601 format. For example, '2022-01-01T12:00:00Z'.
|
27
|
+
# Required for 'scheduleEvent'.
|
25
28
|
attr_reader :event_start_time
|
26
|
-
# @return [String] End time for events.
|
29
|
+
# @return [String] End time for events in ISO 8601 format. For example, '2022-01-01T12:00:00Z'.
|
30
|
+
# Required for 'scheduleEvent'.
|
27
31
|
attr_reader :event_end_time
|
28
32
|
# @return [String] Event title. Required for 'scheduleEvent'.
|
29
33
|
attr_reader :event_title
|
@@ -48,9 +52,13 @@ module Pinnacle
|
|
48
52
|
# fields for the action type and is required. For 'openUrl', the payload is the
|
49
53
|
# URL to open. For 'call', the payload is the phone number to dial. For 'trigger',
|
50
54
|
# the payload is the predefined payload to send to the webhook.
|
51
|
-
# @param metadata [String] Optional metadata.
|
52
|
-
#
|
53
|
-
#
|
55
|
+
# @param metadata [String] Optional metadata. Only used for type 'trigger' ignored for other action types.
|
56
|
+
# When the user presses the action, the metadata is sent to the webhook alongside
|
57
|
+
# the payload.
|
58
|
+
# @param event_start_time [String] Start time for events in ISO 8601 format. For example, '2022-01-01T12:00:00Z'.
|
59
|
+
# Required for 'scheduleEvent'.
|
60
|
+
# @param event_end_time [String] End time for events in ISO 8601 format. For example, '2022-01-01T12:00:00Z'.
|
61
|
+
# Required for 'scheduleEvent'.
|
54
62
|
# @param event_title [String] Event title. Required for 'scheduleEvent'.
|
55
63
|
# @param event_description [String] Optional event description.
|
56
64
|
# @param lat_long [Pinnacle::ActionLatLong] Latitude and longitude coordinates. Required for 'sendLocation'.
|
data/lib/requests.rb
CHANGED
@@ -43,7 +43,7 @@ module Pinnacle
|
|
43
43
|
|
44
44
|
# @return [Hash{String => String}]
|
45
45
|
def get_headers
|
46
|
-
headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "rcs", "X-Fern-SDK-Version": "1.0.
|
46
|
+
headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "rcs", "X-Fern-SDK-Version": "1.0.12" }
|
47
47
|
headers["PINNACLE-API-Key"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
|
48
48
|
headers
|
49
49
|
end
|
@@ -87,7 +87,7 @@ module Pinnacle
|
|
87
87
|
|
88
88
|
# @return [Hash{String => String}]
|
89
89
|
def get_headers
|
90
|
-
headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "rcs", "X-Fern-SDK-Version": "1.0.
|
90
|
+
headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "rcs", "X-Fern-SDK-Version": "1.0.12" }
|
91
91
|
headers["PINNACLE-API-Key"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
|
92
92
|
headers
|
93
93
|
end
|
data/lib/types_export.rb
CHANGED
@@ -4,6 +4,7 @@ require_relative "rcs/company/types/company_register_response_brand"
|
|
4
4
|
require_relative "rcs/company/types/company_register_response"
|
5
5
|
require_relative "rcs/company/types/company_update_response_brand"
|
6
6
|
require_relative "rcs/company/types/company_update_response"
|
7
|
+
require_relative "rcs/send/types/rcs_fallback"
|
7
8
|
require_relative "rcs/send/types/send_rcs_response"
|
8
9
|
require_relative "rcs/send/types/send_sms_response"
|
9
10
|
require_relative "rcs/send/types/send_mms_response"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async-http-faraday
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- lib/rcs/company/types/company_update_response.rb
|
106
106
|
- lib/rcs/company/types/company_update_response_brand.rb
|
107
107
|
- lib/rcs/send/client.rb
|
108
|
+
- lib/rcs/send/types/rcs_fallback.rb
|
108
109
|
- lib/rcs/send/types/send_mms_response.rb
|
109
110
|
- lib/rcs/send/types/send_rcs_response.rb
|
110
111
|
- lib/rcs/send/types/send_sms_response.rb
|