surge_api 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +28 -0
- data/README.md +286 -0
- data/SECURITY.md +27 -0
- data/lib/surge_api/client.rb +106 -0
- data/lib/surge_api/errors.rb +228 -0
- data/lib/surge_api/file_part.rb +55 -0
- data/lib/surge_api/internal/transport/base_client.rb +567 -0
- data/lib/surge_api/internal/transport/pooled_net_requester.rb +201 -0
- data/lib/surge_api/internal/type/array_of.rb +168 -0
- data/lib/surge_api/internal/type/base_model.rb +531 -0
- data/lib/surge_api/internal/type/base_page.rb +55 -0
- data/lib/surge_api/internal/type/boolean.rb +77 -0
- data/lib/surge_api/internal/type/converter.rb +327 -0
- data/lib/surge_api/internal/type/enum.rb +131 -0
- data/lib/surge_api/internal/type/file_input.rb +108 -0
- data/lib/surge_api/internal/type/hash_of.rb +188 -0
- data/lib/surge_api/internal/type/request_parameters.rb +42 -0
- data/lib/surge_api/internal/type/union.rb +250 -0
- data/lib/surge_api/internal/type/unknown.rb +81 -0
- data/lib/surge_api/internal/util.rb +915 -0
- data/lib/surge_api/internal.rb +20 -0
- data/lib/surge_api/models/account.rb +60 -0
- data/lib/surge_api/models/account_create_params.rb +481 -0
- data/lib/surge_api/models/account_retrieve_status_params.rb +32 -0
- data/lib/surge_api/models/account_status.rb +104 -0
- data/lib/surge_api/models/account_update_params.rb +480 -0
- data/lib/surge_api/models/blast.rb +61 -0
- data/lib/surge_api/models/blast_create_params.rb +90 -0
- data/lib/surge_api/models/call_ended_webhook_event.rb +106 -0
- data/lib/surge_api/models/campaign.rb +208 -0
- data/lib/surge_api/models/campaign_approved_webhook_event.rb +74 -0
- data/lib/surge_api/models/campaign_create_params.rb +202 -0
- data/lib/surge_api/models/contact.rb +59 -0
- data/lib/surge_api/models/contact_create_params.rb +54 -0
- data/lib/surge_api/models/contact_retrieve_params.rb +14 -0
- data/lib/surge_api/models/contact_update_params.rb +54 -0
- data/lib/surge_api/models/conversation_created_webhook_event.rb +70 -0
- data/lib/surge_api/models/error.rb +34 -0
- data/lib/surge_api/models/message.rb +146 -0
- data/lib/surge_api/models/message_create_params.rb +153 -0
- data/lib/surge_api/models/message_delivered_webhook_event.rb +159 -0
- data/lib/surge_api/models/message_failed_webhook_event.rb +167 -0
- data/lib/surge_api/models/message_received_webhook_event.rb +159 -0
- data/lib/surge_api/models/message_sent_webhook_event.rb +159 -0
- data/lib/surge_api/models/organization.rb +419 -0
- data/lib/surge_api/models/phone_number.rb +48 -0
- data/lib/surge_api/models/phone_number_purchase_params.rb +65 -0
- data/lib/surge_api/models/unwrap_webhook_event.rb +26 -0
- data/lib/surge_api/models/user.rb +51 -0
- data/lib/surge_api/models/user_create_params.rb +46 -0
- data/lib/surge_api/models/user_create_token_params.rb +22 -0
- data/lib/surge_api/models/user_retrieve_params.rb +14 -0
- data/lib/surge_api/models/user_token_response.rb +19 -0
- data/lib/surge_api/models/user_update_params.rb +46 -0
- data/lib/surge_api/models/verification.rb +58 -0
- data/lib/surge_api/models/verification_check.rb +43 -0
- data/lib/surge_api/models/verification_check_params.rb +22 -0
- data/lib/surge_api/models/verification_create_params.rb +22 -0
- data/lib/surge_api/models/webhook_unwrap_params.rb +14 -0
- data/lib/surge_api/models.rb +117 -0
- data/lib/surge_api/request_options.rb +77 -0
- data/lib/surge_api/resources/accounts.rb +102 -0
- data/lib/surge_api/resources/blasts.rb +53 -0
- data/lib/surge_api/resources/campaigns.rb +57 -0
- data/lib/surge_api/resources/contacts.rb +99 -0
- data/lib/surge_api/resources/messages.rb +75 -0
- data/lib/surge_api/resources/phone_numbers.rb +48 -0
- data/lib/surge_api/resources/users.rb +119 -0
- data/lib/surge_api/resources/verifications.rb +60 -0
- data/lib/surge_api/resources/webhooks.rb +22 -0
- data/lib/surge_api/version.rb +5 -0
- data/lib/surge_api.rb +100 -0
- data/manifest.yaml +15 -0
- data/rbi/surge_api/client.rbi +73 -0
- data/rbi/surge_api/errors.rbi +205 -0
- data/rbi/surge_api/file_part.rbi +37 -0
- data/rbi/surge_api/internal/transport/base_client.rbi +292 -0
- data/rbi/surge_api/internal/transport/pooled_net_requester.rbi +79 -0
- data/rbi/surge_api/internal/type/array_of.rbi +104 -0
- data/rbi/surge_api/internal/type/base_model.rbi +302 -0
- data/rbi/surge_api/internal/type/base_page.rbi +42 -0
- data/rbi/surge_api/internal/type/boolean.rbi +58 -0
- data/rbi/surge_api/internal/type/converter.rbi +216 -0
- data/rbi/surge_api/internal/type/enum.rbi +82 -0
- data/rbi/surge_api/internal/type/file_input.rbi +59 -0
- data/rbi/surge_api/internal/type/hash_of.rbi +104 -0
- data/rbi/surge_api/internal/type/request_parameters.rbi +29 -0
- data/rbi/surge_api/internal/type/union.rbi +128 -0
- data/rbi/surge_api/internal/type/unknown.rbi +58 -0
- data/rbi/surge_api/internal/util.rbi +487 -0
- data/rbi/surge_api/internal.rbi +16 -0
- data/rbi/surge_api/models/account.rbi +83 -0
- data/rbi/surge_api/models/account_create_params.rbi +1104 -0
- data/rbi/surge_api/models/account_retrieve_status_params.rbi +96 -0
- data/rbi/surge_api/models/account_status.rbi +185 -0
- data/rbi/surge_api/models/account_update_params.rbi +1105 -0
- data/rbi/surge_api/models/blast.rbi +108 -0
- data/rbi/surge_api/models/blast_create_params.rbi +145 -0
- data/rbi/surge_api/models/call_ended_webhook_event.rbi +205 -0
- data/rbi/surge_api/models/campaign.rbi +331 -0
- data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +149 -0
- data/rbi/surge_api/models/campaign_create_params.rbi +386 -0
- data/rbi/surge_api/models/contact.rbi +88 -0
- data/rbi/surge_api/models/contact_create_params.rbi +87 -0
- data/rbi/surge_api/models/contact_retrieve_params.rbi +27 -0
- data/rbi/surge_api/models/contact_update_params.rbi +87 -0
- data/rbi/surge_api/models/conversation_created_webhook_event.rbi +129 -0
- data/rbi/surge_api/models/error.rbi +51 -0
- data/rbi/surge_api/models/message.rbi +283 -0
- data/rbi/surge_api/models/message_create_params.rbi +281 -0
- data/rbi/surge_api/models/message_delivered_webhook_event.rbi +331 -0
- data/rbi/surge_api/models/message_failed_webhook_event.rbi +335 -0
- data/rbi/surge_api/models/message_received_webhook_event.rbi +331 -0
- data/rbi/surge_api/models/message_sent_webhook_event.rbi +322 -0
- data/rbi/surge_api/models/organization.rbi +649 -0
- data/rbi/surge_api/models/phone_number.rbi +72 -0
- data/rbi/surge_api/models/phone_number_purchase_params.rbi +122 -0
- data/rbi/surge_api/models/unwrap_webhook_event.rbi +26 -0
- data/rbi/surge_api/models/user.rbi +80 -0
- data/rbi/surge_api/models/user_create_params.rbi +76 -0
- data/rbi/surge_api/models/user_create_token_params.rbi +46 -0
- data/rbi/surge_api/models/user_retrieve_params.rbi +27 -0
- data/rbi/surge_api/models/user_token_response.rbi +31 -0
- data/rbi/surge_api/models/user_update_params.rbi +76 -0
- data/rbi/surge_api/models/verification.rbi +86 -0
- data/rbi/surge_api/models/verification_check.rbi +84 -0
- data/rbi/surge_api/models/verification_check_params.rbi +40 -0
- data/rbi/surge_api/models/verification_create_params.rbi +40 -0
- data/rbi/surge_api/models/webhook_unwrap_params.rbi +27 -0
- data/rbi/surge_api/models.rbi +80 -0
- data/rbi/surge_api/request_options.rbi +59 -0
- data/rbi/surge_api/resources/accounts.rbi +94 -0
- data/rbi/surge_api/resources/blasts.rbi +48 -0
- data/rbi/surge_api/resources/campaigns.rbi +115 -0
- data/rbi/surge_api/resources/contacts.rbi +85 -0
- data/rbi/surge_api/resources/messages.rbi +72 -0
- data/rbi/surge_api/resources/phone_numbers.rbi +43 -0
- data/rbi/surge_api/resources/users.rbi +96 -0
- data/rbi/surge_api/resources/verifications.rbi +43 -0
- data/rbi/surge_api/resources/webhooks.rbi +31 -0
- data/rbi/surge_api/version.rbi +5 -0
- data/sig/surge_api/client.rbs +42 -0
- data/sig/surge_api/errors.rbs +117 -0
- data/sig/surge_api/file_part.rbs +21 -0
- data/sig/surge_api/internal/transport/base_client.rbs +131 -0
- data/sig/surge_api/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/surge_api/internal/type/array_of.rbs +48 -0
- data/sig/surge_api/internal/type/base_model.rbs +102 -0
- data/sig/surge_api/internal/type/base_page.rbs +24 -0
- data/sig/surge_api/internal/type/boolean.rbs +26 -0
- data/sig/surge_api/internal/type/converter.rbs +79 -0
- data/sig/surge_api/internal/type/enum.rbs +32 -0
- data/sig/surge_api/internal/type/file_input.rbs +25 -0
- data/sig/surge_api/internal/type/hash_of.rbs +48 -0
- data/sig/surge_api/internal/type/request_parameters.rbs +17 -0
- data/sig/surge_api/internal/type/union.rbs +52 -0
- data/sig/surge_api/internal/type/unknown.rbs +26 -0
- data/sig/surge_api/internal/util.rbs +185 -0
- data/sig/surge_api/internal.rbs +9 -0
- data/sig/surge_api/models/account.rbs +40 -0
- data/sig/surge_api/models/account_create_params.rbs +433 -0
- data/sig/surge_api/models/account_retrieve_status_params.rbs +40 -0
- data/sig/surge_api/models/account_status.rbs +71 -0
- data/sig/surge_api/models/account_update_params.rbs +435 -0
- data/sig/surge_api/models/blast.rbs +64 -0
- data/sig/surge_api/models/blast_create_params.rbs +82 -0
- data/sig/surge_api/models/call_ended_webhook_event.rbs +99 -0
- data/sig/surge_api/models/campaign.rbs +122 -0
- data/sig/surge_api/models/campaign_approved_webhook_event.rbs +67 -0
- data/sig/surge_api/models/campaign_create_params.rbs +127 -0
- data/sig/surge_api/models/contact.rbs +53 -0
- data/sig/surge_api/models/contact_create_params.rbs +54 -0
- data/sig/surge_api/models/contact_retrieve_params.rbs +15 -0
- data/sig/surge_api/models/contact_update_params.rbs +54 -0
- data/sig/surge_api/models/conversation_created_webhook_event.rbs +62 -0
- data/sig/surge_api/models/error.rbs +27 -0
- data/sig/surge_api/models/message.rbs +138 -0
- data/sig/surge_api/models/message_create_params.rbs +140 -0
- data/sig/surge_api/models/message_delivered_webhook_event.rbs +143 -0
- data/sig/surge_api/models/message_failed_webhook_event.rbs +148 -0
- data/sig/surge_api/models/message_received_webhook_event.rbs +143 -0
- data/sig/surge_api/models/message_sent_webhook_event.rbs +143 -0
- data/sig/surge_api/models/organization.rbs +385 -0
- data/sig/surge_api/models/phone_number.rbs +37 -0
- data/sig/surge_api/models/phone_number_purchase_params.rbs +62 -0
- data/sig/surge_api/models/unwrap_webhook_event.rbs +18 -0
- data/sig/surge_api/models/user.rbs +48 -0
- data/sig/surge_api/models/user_create_params.rbs +47 -0
- data/sig/surge_api/models/user_create_token_params.rbs +26 -0
- data/sig/surge_api/models/user_retrieve_params.rbs +15 -0
- data/sig/surge_api/models/user_token_response.rbs +15 -0
- data/sig/surge_api/models/user_update_params.rbs +47 -0
- data/sig/surge_api/models/verification.rbs +48 -0
- data/sig/surge_api/models/verification_check.rbs +45 -0
- data/sig/surge_api/models/verification_check_params.rbs +23 -0
- data/sig/surge_api/models/verification_create_params.rbs +23 -0
- data/sig/surge_api/models/webhook_unwrap_params.rbs +15 -0
- data/sig/surge_api/models.rbs +77 -0
- data/sig/surge_api/request_options.rbs +34 -0
- data/sig/surge_api/resources/accounts.rbs +30 -0
- data/sig/surge_api/resources/blasts.rbs +19 -0
- data/sig/surge_api/resources/campaigns.rbs +21 -0
- data/sig/surge_api/resources/contacts.rbs +32 -0
- data/sig/surge_api/resources/messages.rbs +18 -0
- data/sig/surge_api/resources/phone_numbers.rbs +16 -0
- data/sig/surge_api/resources/users.rbs +36 -0
- data/sig/surge_api/resources/verifications.rbs +18 -0
- data/sig/surge_api/resources/webhooks.rbs +17 -0
- data/sig/surge_api/version.rbs +3 -0
- metadata +269 -0
@@ -0,0 +1,281 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module SurgeAPI
|
4
|
+
module Models
|
5
|
+
class MessageCreateParams < SurgeAPI::Internal::Type::BaseModel
|
6
|
+
extend SurgeAPI::Internal::Type::RequestParameters::Converter
|
7
|
+
include SurgeAPI::Internal::Type::RequestParameters
|
8
|
+
|
9
|
+
OrHash =
|
10
|
+
T.type_alias do
|
11
|
+
T.any(SurgeAPI::MessageCreateParams, SurgeAPI::Internal::AnyHash)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Params for selecting or creating a new conversation. Either the id or the
|
15
|
+
# Contact must be given.
|
16
|
+
sig { returns(SurgeAPI::MessageCreateParams::Conversation) }
|
17
|
+
attr_reader :conversation
|
18
|
+
|
19
|
+
sig do
|
20
|
+
params(
|
21
|
+
conversation: SurgeAPI::MessageCreateParams::Conversation::OrHash
|
22
|
+
).void
|
23
|
+
end
|
24
|
+
attr_writer :conversation
|
25
|
+
|
26
|
+
sig do
|
27
|
+
returns(T.nilable(T::Array[SurgeAPI::MessageCreateParams::Attachment]))
|
28
|
+
end
|
29
|
+
attr_reader :attachments
|
30
|
+
|
31
|
+
sig do
|
32
|
+
params(
|
33
|
+
attachments:
|
34
|
+
T::Array[SurgeAPI::MessageCreateParams::Attachment::OrHash]
|
35
|
+
).void
|
36
|
+
end
|
37
|
+
attr_writer :attachments
|
38
|
+
|
39
|
+
# The message body.
|
40
|
+
sig { returns(T.nilable(String)) }
|
41
|
+
attr_reader :body
|
42
|
+
|
43
|
+
sig { params(body: String).void }
|
44
|
+
attr_writer :body
|
45
|
+
|
46
|
+
# An optional datetime for scheduling message up to a couple of months in the
|
47
|
+
# future.
|
48
|
+
sig { returns(T.nilable(Time)) }
|
49
|
+
attr_reader :send_at
|
50
|
+
|
51
|
+
sig { params(send_at: Time).void }
|
52
|
+
attr_writer :send_at
|
53
|
+
|
54
|
+
# The recipient's phone number in E.164 format. Cannot be used together with
|
55
|
+
# 'conversation'.
|
56
|
+
sig { returns(String) }
|
57
|
+
attr_accessor :to
|
58
|
+
|
59
|
+
# The sender's phone number in E.164 format or phone number ID. If omitted, uses
|
60
|
+
# the account's default phone number. Cannot be used together with 'conversation'.
|
61
|
+
sig { returns(T.nilable(String)) }
|
62
|
+
attr_reader :from
|
63
|
+
|
64
|
+
sig { params(from: String).void }
|
65
|
+
attr_writer :from
|
66
|
+
|
67
|
+
sig do
|
68
|
+
params(
|
69
|
+
conversation: SurgeAPI::MessageCreateParams::Conversation::OrHash,
|
70
|
+
to: String,
|
71
|
+
attachments:
|
72
|
+
T::Array[SurgeAPI::MessageCreateParams::Attachment::OrHash],
|
73
|
+
body: String,
|
74
|
+
send_at: Time,
|
75
|
+
from: String,
|
76
|
+
request_options: SurgeAPI::RequestOptions::OrHash
|
77
|
+
).returns(T.attached_class)
|
78
|
+
end
|
79
|
+
def self.new(
|
80
|
+
# Params for selecting or creating a new conversation. Either the id or the
|
81
|
+
# Contact must be given.
|
82
|
+
conversation:,
|
83
|
+
# The recipient's phone number in E.164 format. Cannot be used together with
|
84
|
+
# 'conversation'.
|
85
|
+
to:,
|
86
|
+
attachments: nil,
|
87
|
+
# The message body.
|
88
|
+
body: nil,
|
89
|
+
# An optional datetime for scheduling message up to a couple of months in the
|
90
|
+
# future.
|
91
|
+
send_at: nil,
|
92
|
+
# The sender's phone number in E.164 format or phone number ID. If omitted, uses
|
93
|
+
# the account's default phone number. Cannot be used together with 'conversation'.
|
94
|
+
from: nil,
|
95
|
+
request_options: {}
|
96
|
+
)
|
97
|
+
end
|
98
|
+
|
99
|
+
sig do
|
100
|
+
override.returns(
|
101
|
+
{
|
102
|
+
conversation: SurgeAPI::MessageCreateParams::Conversation,
|
103
|
+
attachments: T::Array[SurgeAPI::MessageCreateParams::Attachment],
|
104
|
+
body: String,
|
105
|
+
send_at: Time,
|
106
|
+
to: String,
|
107
|
+
from: String,
|
108
|
+
request_options: SurgeAPI::RequestOptions
|
109
|
+
}
|
110
|
+
)
|
111
|
+
end
|
112
|
+
def to_hash
|
113
|
+
end
|
114
|
+
|
115
|
+
class Conversation < SurgeAPI::Internal::Type::BaseModel
|
116
|
+
OrHash =
|
117
|
+
T.type_alias do
|
118
|
+
T.any(
|
119
|
+
SurgeAPI::MessageCreateParams::Conversation,
|
120
|
+
SurgeAPI::Internal::AnyHash
|
121
|
+
)
|
122
|
+
end
|
123
|
+
|
124
|
+
# Parameters for creating a contact
|
125
|
+
sig { returns(SurgeAPI::MessageCreateParams::Conversation::Contact) }
|
126
|
+
attr_reader :contact
|
127
|
+
|
128
|
+
sig do
|
129
|
+
params(
|
130
|
+
contact:
|
131
|
+
SurgeAPI::MessageCreateParams::Conversation::Contact::OrHash
|
132
|
+
).void
|
133
|
+
end
|
134
|
+
attr_writer :contact
|
135
|
+
|
136
|
+
# The phone number from which to send the message. This can be either the phone
|
137
|
+
# number in E.164 format or a Surge phone number id.
|
138
|
+
sig { returns(T.nilable(String)) }
|
139
|
+
attr_reader :phone_number
|
140
|
+
|
141
|
+
sig { params(phone_number: String).void }
|
142
|
+
attr_writer :phone_number
|
143
|
+
|
144
|
+
# Params for selecting or creating a new conversation. Either the id or the
|
145
|
+
# Contact must be given.
|
146
|
+
sig do
|
147
|
+
params(
|
148
|
+
contact:
|
149
|
+
SurgeAPI::MessageCreateParams::Conversation::Contact::OrHash,
|
150
|
+
phone_number: String
|
151
|
+
).returns(T.attached_class)
|
152
|
+
end
|
153
|
+
def self.new(
|
154
|
+
# Parameters for creating a contact
|
155
|
+
contact:,
|
156
|
+
# The phone number from which to send the message. This can be either the phone
|
157
|
+
# number in E.164 format or a Surge phone number id.
|
158
|
+
phone_number: nil
|
159
|
+
)
|
160
|
+
end
|
161
|
+
|
162
|
+
sig do
|
163
|
+
override.returns(
|
164
|
+
{
|
165
|
+
contact: SurgeAPI::MessageCreateParams::Conversation::Contact,
|
166
|
+
phone_number: String
|
167
|
+
}
|
168
|
+
)
|
169
|
+
end
|
170
|
+
def to_hash
|
171
|
+
end
|
172
|
+
|
173
|
+
class Contact < SurgeAPI::Internal::Type::BaseModel
|
174
|
+
OrHash =
|
175
|
+
T.type_alias do
|
176
|
+
T.any(
|
177
|
+
SurgeAPI::MessageCreateParams::Conversation::Contact,
|
178
|
+
SurgeAPI::Internal::AnyHash
|
179
|
+
)
|
180
|
+
end
|
181
|
+
|
182
|
+
# The contact's phone number in E.164 format.
|
183
|
+
sig { returns(String) }
|
184
|
+
attr_accessor :phone_number
|
185
|
+
|
186
|
+
# The contact's email address.
|
187
|
+
sig { returns(T.nilable(String)) }
|
188
|
+
attr_reader :email
|
189
|
+
|
190
|
+
sig { params(email: String).void }
|
191
|
+
attr_writer :email
|
192
|
+
|
193
|
+
# The contact's first name.
|
194
|
+
sig { returns(T.nilable(String)) }
|
195
|
+
attr_reader :first_name
|
196
|
+
|
197
|
+
sig { params(first_name: String).void }
|
198
|
+
attr_writer :first_name
|
199
|
+
|
200
|
+
# The contact's last name.
|
201
|
+
sig { returns(T.nilable(String)) }
|
202
|
+
attr_reader :last_name
|
203
|
+
|
204
|
+
sig { params(last_name: String).void }
|
205
|
+
attr_writer :last_name
|
206
|
+
|
207
|
+
# Set of key-value pairs that will be stored with the object.
|
208
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
209
|
+
attr_reader :metadata
|
210
|
+
|
211
|
+
sig { params(metadata: T::Hash[Symbol, String]).void }
|
212
|
+
attr_writer :metadata
|
213
|
+
|
214
|
+
# Parameters for creating a contact
|
215
|
+
sig do
|
216
|
+
params(
|
217
|
+
phone_number: String,
|
218
|
+
email: String,
|
219
|
+
first_name: String,
|
220
|
+
last_name: String,
|
221
|
+
metadata: T::Hash[Symbol, String]
|
222
|
+
).returns(T.attached_class)
|
223
|
+
end
|
224
|
+
def self.new(
|
225
|
+
# The contact's phone number in E.164 format.
|
226
|
+
phone_number:,
|
227
|
+
# The contact's email address.
|
228
|
+
email: nil,
|
229
|
+
# The contact's first name.
|
230
|
+
first_name: nil,
|
231
|
+
# The contact's last name.
|
232
|
+
last_name: nil,
|
233
|
+
# Set of key-value pairs that will be stored with the object.
|
234
|
+
metadata: nil
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
238
|
+
sig do
|
239
|
+
override.returns(
|
240
|
+
{
|
241
|
+
phone_number: String,
|
242
|
+
email: String,
|
243
|
+
first_name: String,
|
244
|
+
last_name: String,
|
245
|
+
metadata: T::Hash[Symbol, String]
|
246
|
+
}
|
247
|
+
)
|
248
|
+
end
|
249
|
+
def to_hash
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
class Attachment < SurgeAPI::Internal::Type::BaseModel
|
255
|
+
OrHash =
|
256
|
+
T.type_alias do
|
257
|
+
T.any(
|
258
|
+
SurgeAPI::MessageCreateParams::Attachment,
|
259
|
+
SurgeAPI::Internal::AnyHash
|
260
|
+
)
|
261
|
+
end
|
262
|
+
|
263
|
+
# The URL of the attachment.
|
264
|
+
sig { returns(String) }
|
265
|
+
attr_accessor :url
|
266
|
+
|
267
|
+
# Params for creating an attachment
|
268
|
+
sig { params(url: String).returns(T.attached_class) }
|
269
|
+
def self.new(
|
270
|
+
# The URL of the attachment.
|
271
|
+
url:
|
272
|
+
)
|
273
|
+
end
|
274
|
+
|
275
|
+
sig { override.returns({ url: String }) }
|
276
|
+
def to_hash
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
end
|
281
|
+
end
|
@@ -0,0 +1,331 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module SurgeAPI
|
4
|
+
module Models
|
5
|
+
class MessageDeliveredWebhookEvent < SurgeAPI::Internal::Type::BaseModel
|
6
|
+
OrHash =
|
7
|
+
T.type_alias do
|
8
|
+
T.any(
|
9
|
+
SurgeAPI::MessageDeliveredWebhookEvent,
|
10
|
+
SurgeAPI::Internal::AnyHash
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
# The ID of the account in which this event occurred
|
15
|
+
sig { returns(String) }
|
16
|
+
attr_accessor :account_id
|
17
|
+
|
18
|
+
# The data associated with the event
|
19
|
+
sig { returns(SurgeAPI::MessageDeliveredWebhookEvent::Data) }
|
20
|
+
attr_reader :data
|
21
|
+
|
22
|
+
sig do
|
23
|
+
params(data: SurgeAPI::MessageDeliveredWebhookEvent::Data::OrHash).void
|
24
|
+
end
|
25
|
+
attr_writer :data
|
26
|
+
|
27
|
+
# The timestamp when this event occurred, in ISO8601 format
|
28
|
+
sig { returns(Time) }
|
29
|
+
attr_accessor :timestamp
|
30
|
+
|
31
|
+
# The type of the event. Always `message.delivered` for this event.
|
32
|
+
sig { returns(Symbol) }
|
33
|
+
attr_accessor :type
|
34
|
+
|
35
|
+
sig do
|
36
|
+
params(
|
37
|
+
account_id: String,
|
38
|
+
data: SurgeAPI::MessageDeliveredWebhookEvent::Data::OrHash,
|
39
|
+
timestamp: Time,
|
40
|
+
type: Symbol
|
41
|
+
).returns(T.attached_class)
|
42
|
+
end
|
43
|
+
def self.new(
|
44
|
+
# The ID of the account in which this event occurred
|
45
|
+
account_id:,
|
46
|
+
# The data associated with the event
|
47
|
+
data:,
|
48
|
+
# The timestamp when this event occurred, in ISO8601 format
|
49
|
+
timestamp:,
|
50
|
+
# The type of the event. Always `message.delivered` for this event.
|
51
|
+
type: :"message.delivered"
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
sig do
|
56
|
+
override.returns(
|
57
|
+
{
|
58
|
+
account_id: String,
|
59
|
+
data: SurgeAPI::MessageDeliveredWebhookEvent::Data,
|
60
|
+
timestamp: Time,
|
61
|
+
type: Symbol
|
62
|
+
}
|
63
|
+
)
|
64
|
+
end
|
65
|
+
def to_hash
|
66
|
+
end
|
67
|
+
|
68
|
+
class Data < SurgeAPI::Internal::Type::BaseModel
|
69
|
+
OrHash =
|
70
|
+
T.type_alias do
|
71
|
+
T.any(
|
72
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data,
|
73
|
+
SurgeAPI::Internal::AnyHash
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
# The unique identifier for the message
|
78
|
+
sig { returns(String) }
|
79
|
+
attr_accessor :id
|
80
|
+
|
81
|
+
# The content of the message
|
82
|
+
sig { returns(String) }
|
83
|
+
attr_accessor :body
|
84
|
+
|
85
|
+
# The conversation this message belongs to
|
86
|
+
sig do
|
87
|
+
returns(SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation)
|
88
|
+
end
|
89
|
+
attr_reader :conversation
|
90
|
+
|
91
|
+
sig do
|
92
|
+
params(
|
93
|
+
conversation:
|
94
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation::OrHash
|
95
|
+
).void
|
96
|
+
end
|
97
|
+
attr_writer :conversation
|
98
|
+
|
99
|
+
# When the message was delivered
|
100
|
+
sig { returns(Time) }
|
101
|
+
attr_accessor :delivered_at
|
102
|
+
|
103
|
+
# Attachments included with the message
|
104
|
+
sig do
|
105
|
+
returns(
|
106
|
+
T.nilable(
|
107
|
+
T::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
|
108
|
+
)
|
109
|
+
)
|
110
|
+
end
|
111
|
+
attr_reader :attachments
|
112
|
+
|
113
|
+
sig do
|
114
|
+
params(
|
115
|
+
attachments:
|
116
|
+
T::Array[
|
117
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::OrHash
|
118
|
+
]
|
119
|
+
).void
|
120
|
+
end
|
121
|
+
attr_writer :attachments
|
122
|
+
|
123
|
+
# The data associated with the event
|
124
|
+
sig do
|
125
|
+
params(
|
126
|
+
id: String,
|
127
|
+
body: String,
|
128
|
+
conversation:
|
129
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation::OrHash,
|
130
|
+
delivered_at: Time,
|
131
|
+
attachments:
|
132
|
+
T::Array[
|
133
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::OrHash
|
134
|
+
]
|
135
|
+
).returns(T.attached_class)
|
136
|
+
end
|
137
|
+
def self.new(
|
138
|
+
# The unique identifier for the message
|
139
|
+
id:,
|
140
|
+
# The content of the message
|
141
|
+
body:,
|
142
|
+
# The conversation this message belongs to
|
143
|
+
conversation:,
|
144
|
+
# When the message was delivered
|
145
|
+
delivered_at:,
|
146
|
+
# Attachments included with the message
|
147
|
+
attachments: nil
|
148
|
+
)
|
149
|
+
end
|
150
|
+
|
151
|
+
sig do
|
152
|
+
override.returns(
|
153
|
+
{
|
154
|
+
id: String,
|
155
|
+
body: String,
|
156
|
+
conversation:
|
157
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
|
158
|
+
delivered_at: Time,
|
159
|
+
attachments:
|
160
|
+
T::Array[
|
161
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment
|
162
|
+
]
|
163
|
+
}
|
164
|
+
)
|
165
|
+
end
|
166
|
+
def to_hash
|
167
|
+
end
|
168
|
+
|
169
|
+
class Conversation < SurgeAPI::Internal::Type::BaseModel
|
170
|
+
OrHash =
|
171
|
+
T.type_alias do
|
172
|
+
T.any(
|
173
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
|
174
|
+
SurgeAPI::Internal::AnyHash
|
175
|
+
)
|
176
|
+
end
|
177
|
+
|
178
|
+
# The unique identifier for the conversation
|
179
|
+
sig { returns(String) }
|
180
|
+
attr_accessor :id
|
181
|
+
|
182
|
+
# A contact who has consented to receive messages
|
183
|
+
sig { returns(SurgeAPI::Contact) }
|
184
|
+
attr_reader :contact
|
185
|
+
|
186
|
+
sig { params(contact: SurgeAPI::Contact::OrHash).void }
|
187
|
+
attr_writer :contact
|
188
|
+
|
189
|
+
# A phone number that can be used to send and receive messages and calls
|
190
|
+
sig { returns(SurgeAPI::PhoneNumber) }
|
191
|
+
attr_reader :phone_number
|
192
|
+
|
193
|
+
sig { params(phone_number: SurgeAPI::PhoneNumber::OrHash).void }
|
194
|
+
attr_writer :phone_number
|
195
|
+
|
196
|
+
# The conversation this message belongs to
|
197
|
+
sig do
|
198
|
+
params(
|
199
|
+
id: String,
|
200
|
+
contact: SurgeAPI::Contact::OrHash,
|
201
|
+
phone_number: SurgeAPI::PhoneNumber::OrHash
|
202
|
+
).returns(T.attached_class)
|
203
|
+
end
|
204
|
+
def self.new(
|
205
|
+
# The unique identifier for the conversation
|
206
|
+
id:,
|
207
|
+
# A contact who has consented to receive messages
|
208
|
+
contact:,
|
209
|
+
# A phone number that can be used to send and receive messages and calls
|
210
|
+
phone_number:
|
211
|
+
)
|
212
|
+
end
|
213
|
+
|
214
|
+
sig do
|
215
|
+
override.returns(
|
216
|
+
{
|
217
|
+
id: String,
|
218
|
+
contact: SurgeAPI::Contact,
|
219
|
+
phone_number: SurgeAPI::PhoneNumber
|
220
|
+
}
|
221
|
+
)
|
222
|
+
end
|
223
|
+
def to_hash
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
class Attachment < SurgeAPI::Internal::Type::BaseModel
|
228
|
+
OrHash =
|
229
|
+
T.type_alias do
|
230
|
+
T.any(
|
231
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment,
|
232
|
+
SurgeAPI::Internal::AnyHash
|
233
|
+
)
|
234
|
+
end
|
235
|
+
|
236
|
+
# The unique identifier for the attachment
|
237
|
+
sig { returns(String) }
|
238
|
+
attr_accessor :id
|
239
|
+
|
240
|
+
# The type of attachment
|
241
|
+
sig do
|
242
|
+
returns(
|
243
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
244
|
+
)
|
245
|
+
end
|
246
|
+
attr_accessor :type
|
247
|
+
|
248
|
+
# The URL where the attachment can be downloaded
|
249
|
+
sig { returns(String) }
|
250
|
+
attr_accessor :url
|
251
|
+
|
252
|
+
sig do
|
253
|
+
params(
|
254
|
+
id: String,
|
255
|
+
type:
|
256
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::OrSymbol,
|
257
|
+
url: String
|
258
|
+
).returns(T.attached_class)
|
259
|
+
end
|
260
|
+
def self.new(
|
261
|
+
# The unique identifier for the attachment
|
262
|
+
id:,
|
263
|
+
# The type of attachment
|
264
|
+
type:,
|
265
|
+
# The URL where the attachment can be downloaded
|
266
|
+
url:
|
267
|
+
)
|
268
|
+
end
|
269
|
+
|
270
|
+
sig do
|
271
|
+
override.returns(
|
272
|
+
{
|
273
|
+
id: String,
|
274
|
+
type:
|
275
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol,
|
276
|
+
url: String
|
277
|
+
}
|
278
|
+
)
|
279
|
+
end
|
280
|
+
def to_hash
|
281
|
+
end
|
282
|
+
|
283
|
+
# The type of attachment
|
284
|
+
module Type
|
285
|
+
extend SurgeAPI::Internal::Type::Enum
|
286
|
+
|
287
|
+
TaggedSymbol =
|
288
|
+
T.type_alias do
|
289
|
+
T.all(
|
290
|
+
Symbol,
|
291
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type
|
292
|
+
)
|
293
|
+
end
|
294
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
295
|
+
|
296
|
+
FILE =
|
297
|
+
T.let(
|
298
|
+
:file,
|
299
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
300
|
+
)
|
301
|
+
IMAGE =
|
302
|
+
T.let(
|
303
|
+
:image,
|
304
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
305
|
+
)
|
306
|
+
LINK =
|
307
|
+
T.let(
|
308
|
+
:link,
|
309
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
310
|
+
)
|
311
|
+
VIDEO =
|
312
|
+
T.let(
|
313
|
+
:video,
|
314
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
315
|
+
)
|
316
|
+
|
317
|
+
sig do
|
318
|
+
override.returns(
|
319
|
+
T::Array[
|
320
|
+
SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::Type::TaggedSymbol
|
321
|
+
]
|
322
|
+
)
|
323
|
+
end
|
324
|
+
def self.values
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
end
|
330
|
+
end
|
331
|
+
end
|