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,129 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module SurgeAPI
|
4
|
+
module Models
|
5
|
+
class ConversationCreatedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
|
6
|
+
OrHash =
|
7
|
+
T.type_alias do
|
8
|
+
T.any(
|
9
|
+
SurgeAPI::ConversationCreatedWebhookEvent,
|
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::ConversationCreatedWebhookEvent::Data) }
|
20
|
+
attr_reader :data
|
21
|
+
|
22
|
+
sig do
|
23
|
+
params(
|
24
|
+
data: SurgeAPI::ConversationCreatedWebhookEvent::Data::OrHash
|
25
|
+
).void
|
26
|
+
end
|
27
|
+
attr_writer :data
|
28
|
+
|
29
|
+
# The timestamp when this event occurred, in ISO8601 format
|
30
|
+
sig { returns(Time) }
|
31
|
+
attr_accessor :timestamp
|
32
|
+
|
33
|
+
# The type of the event. Always `conversation.created` for this event.
|
34
|
+
sig { returns(Symbol) }
|
35
|
+
attr_accessor :type
|
36
|
+
|
37
|
+
sig do
|
38
|
+
params(
|
39
|
+
account_id: String,
|
40
|
+
data: SurgeAPI::ConversationCreatedWebhookEvent::Data::OrHash,
|
41
|
+
timestamp: Time,
|
42
|
+
type: Symbol
|
43
|
+
).returns(T.attached_class)
|
44
|
+
end
|
45
|
+
def self.new(
|
46
|
+
# The ID of the account in which this event occurred
|
47
|
+
account_id:,
|
48
|
+
# The data associated with the event
|
49
|
+
data:,
|
50
|
+
# The timestamp when this event occurred, in ISO8601 format
|
51
|
+
timestamp:,
|
52
|
+
# The type of the event. Always `conversation.created` for this event.
|
53
|
+
type: :"conversation.created"
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
sig do
|
58
|
+
override.returns(
|
59
|
+
{
|
60
|
+
account_id: String,
|
61
|
+
data: SurgeAPI::ConversationCreatedWebhookEvent::Data,
|
62
|
+
timestamp: Time,
|
63
|
+
type: Symbol
|
64
|
+
}
|
65
|
+
)
|
66
|
+
end
|
67
|
+
def to_hash
|
68
|
+
end
|
69
|
+
|
70
|
+
class Data < SurgeAPI::Internal::Type::BaseModel
|
71
|
+
OrHash =
|
72
|
+
T.type_alias do
|
73
|
+
T.any(
|
74
|
+
SurgeAPI::ConversationCreatedWebhookEvent::Data,
|
75
|
+
SurgeAPI::Internal::AnyHash
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
# The unique identifier for the conversation
|
80
|
+
sig { returns(String) }
|
81
|
+
attr_accessor :id
|
82
|
+
|
83
|
+
# A contact who has consented to receive messages
|
84
|
+
sig { returns(SurgeAPI::Contact) }
|
85
|
+
attr_reader :contact
|
86
|
+
|
87
|
+
sig { params(contact: SurgeAPI::Contact::OrHash).void }
|
88
|
+
attr_writer :contact
|
89
|
+
|
90
|
+
# A phone number that can be used to send and receive messages and calls
|
91
|
+
sig { returns(SurgeAPI::PhoneNumber) }
|
92
|
+
attr_reader :phone_number
|
93
|
+
|
94
|
+
sig { params(phone_number: SurgeAPI::PhoneNumber::OrHash).void }
|
95
|
+
attr_writer :phone_number
|
96
|
+
|
97
|
+
# The data associated with the event
|
98
|
+
sig do
|
99
|
+
params(
|
100
|
+
id: String,
|
101
|
+
contact: SurgeAPI::Contact::OrHash,
|
102
|
+
phone_number: SurgeAPI::PhoneNumber::OrHash
|
103
|
+
).returns(T.attached_class)
|
104
|
+
end
|
105
|
+
def self.new(
|
106
|
+
# The unique identifier for the conversation
|
107
|
+
id:,
|
108
|
+
# A contact who has consented to receive messages
|
109
|
+
contact:,
|
110
|
+
# A phone number that can be used to send and receive messages and calls
|
111
|
+
phone_number:
|
112
|
+
)
|
113
|
+
end
|
114
|
+
|
115
|
+
sig do
|
116
|
+
override.returns(
|
117
|
+
{
|
118
|
+
id: String,
|
119
|
+
contact: SurgeAPI::Contact,
|
120
|
+
phone_number: SurgeAPI::PhoneNumber
|
121
|
+
}
|
122
|
+
)
|
123
|
+
end
|
124
|
+
def to_hash
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module SurgeAPI
|
4
|
+
module Models
|
5
|
+
class Error < SurgeAPI::Internal::Type::BaseModel
|
6
|
+
OrHash =
|
7
|
+
T.type_alias { T.any(SurgeAPI::Error, SurgeAPI::Internal::AnyHash) }
|
8
|
+
|
9
|
+
# A human-readable error message.
|
10
|
+
sig { returns(String) }
|
11
|
+
attr_accessor :message
|
12
|
+
|
13
|
+
# A unique error code.
|
14
|
+
sig { returns(String) }
|
15
|
+
attr_accessor :type
|
16
|
+
|
17
|
+
# Additional details about the error.
|
18
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
19
|
+
attr_reader :detail
|
20
|
+
|
21
|
+
sig { params(detail: T::Hash[Symbol, T.anything]).void }
|
22
|
+
attr_writer :detail
|
23
|
+
|
24
|
+
# An error response
|
25
|
+
sig do
|
26
|
+
params(
|
27
|
+
message: String,
|
28
|
+
type: String,
|
29
|
+
detail: T::Hash[Symbol, T.anything]
|
30
|
+
).returns(T.attached_class)
|
31
|
+
end
|
32
|
+
def self.new(
|
33
|
+
# A human-readable error message.
|
34
|
+
message:,
|
35
|
+
# A unique error code.
|
36
|
+
type:,
|
37
|
+
# Additional details about the error.
|
38
|
+
detail: nil
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
sig do
|
43
|
+
override.returns(
|
44
|
+
{ message: String, type: String, detail: T::Hash[Symbol, T.anything] }
|
45
|
+
)
|
46
|
+
end
|
47
|
+
def to_hash
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,283 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module SurgeAPI
|
4
|
+
module Models
|
5
|
+
class Message < SurgeAPI::Internal::Type::BaseModel
|
6
|
+
OrHash =
|
7
|
+
T.type_alias { T.any(SurgeAPI::Message, SurgeAPI::Internal::AnyHash) }
|
8
|
+
|
9
|
+
# Unique identifier for the object.
|
10
|
+
sig { returns(T.nilable(String)) }
|
11
|
+
attr_reader :id
|
12
|
+
|
13
|
+
sig { params(id: String).void }
|
14
|
+
attr_writer :id
|
15
|
+
|
16
|
+
sig { returns(T.nilable(T::Array[SurgeAPI::Message::Attachment])) }
|
17
|
+
attr_reader :attachments
|
18
|
+
|
19
|
+
sig do
|
20
|
+
params(
|
21
|
+
attachments: T::Array[SurgeAPI::Message::Attachment::OrHash]
|
22
|
+
).void
|
23
|
+
end
|
24
|
+
attr_writer :attachments
|
25
|
+
|
26
|
+
# The message body.
|
27
|
+
sig { returns(T.nilable(String)) }
|
28
|
+
attr_reader :body
|
29
|
+
|
30
|
+
sig { params(body: String).void }
|
31
|
+
attr_writer :body
|
32
|
+
|
33
|
+
# A conversation with a Contact
|
34
|
+
sig { returns(T.nilable(SurgeAPI::Message::Conversation)) }
|
35
|
+
attr_reader :conversation
|
36
|
+
|
37
|
+
sig { params(conversation: SurgeAPI::Message::Conversation::OrHash).void }
|
38
|
+
attr_writer :conversation
|
39
|
+
|
40
|
+
# A Message is a communication sent to a Contact.
|
41
|
+
sig do
|
42
|
+
params(
|
43
|
+
id: String,
|
44
|
+
attachments: T::Array[SurgeAPI::Message::Attachment::OrHash],
|
45
|
+
body: String,
|
46
|
+
conversation: SurgeAPI::Message::Conversation::OrHash
|
47
|
+
).returns(T.attached_class)
|
48
|
+
end
|
49
|
+
def self.new(
|
50
|
+
# Unique identifier for the object.
|
51
|
+
id: nil,
|
52
|
+
attachments: nil,
|
53
|
+
# The message body.
|
54
|
+
body: nil,
|
55
|
+
# A conversation with a Contact
|
56
|
+
conversation: nil
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
sig do
|
61
|
+
override.returns(
|
62
|
+
{
|
63
|
+
id: String,
|
64
|
+
attachments: T::Array[SurgeAPI::Message::Attachment],
|
65
|
+
body: String,
|
66
|
+
conversation: SurgeAPI::Message::Conversation
|
67
|
+
}
|
68
|
+
)
|
69
|
+
end
|
70
|
+
def to_hash
|
71
|
+
end
|
72
|
+
|
73
|
+
class Attachment < SurgeAPI::Internal::Type::BaseModel
|
74
|
+
OrHash =
|
75
|
+
T.type_alias do
|
76
|
+
T.any(SurgeAPI::Message::Attachment, SurgeAPI::Internal::AnyHash)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Unique identifier for the object.
|
80
|
+
sig { returns(T.nilable(String)) }
|
81
|
+
attr_reader :id
|
82
|
+
|
83
|
+
sig { params(id: String).void }
|
84
|
+
attr_writer :id
|
85
|
+
|
86
|
+
# The type of attachment.
|
87
|
+
sig { returns(T.nilable(String)) }
|
88
|
+
attr_reader :type
|
89
|
+
|
90
|
+
sig { params(type: String).void }
|
91
|
+
attr_writer :type
|
92
|
+
|
93
|
+
# The URL of the attachment.
|
94
|
+
sig { returns(T.nilable(String)) }
|
95
|
+
attr_reader :url
|
96
|
+
|
97
|
+
sig { params(url: String).void }
|
98
|
+
attr_writer :url
|
99
|
+
|
100
|
+
# An Attachment is a file that can be sent with a message.
|
101
|
+
sig do
|
102
|
+
params(id: String, type: String, url: String).returns(
|
103
|
+
T.attached_class
|
104
|
+
)
|
105
|
+
end
|
106
|
+
def self.new(
|
107
|
+
# Unique identifier for the object.
|
108
|
+
id: nil,
|
109
|
+
# The type of attachment.
|
110
|
+
type: nil,
|
111
|
+
# The URL of the attachment.
|
112
|
+
url: nil
|
113
|
+
)
|
114
|
+
end
|
115
|
+
|
116
|
+
sig { override.returns({ id: String, type: String, url: String }) }
|
117
|
+
def to_hash
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
class Conversation < SurgeAPI::Internal::Type::BaseModel
|
122
|
+
OrHash =
|
123
|
+
T.type_alias do
|
124
|
+
T.any(SurgeAPI::Message::Conversation, SurgeAPI::Internal::AnyHash)
|
125
|
+
end
|
126
|
+
|
127
|
+
# Unique identifier for the object.
|
128
|
+
sig { returns(String) }
|
129
|
+
attr_accessor :id
|
130
|
+
|
131
|
+
# A contact who has consented to receive messages
|
132
|
+
sig { returns(SurgeAPI::Contact) }
|
133
|
+
attr_reader :contact
|
134
|
+
|
135
|
+
sig { params(contact: SurgeAPI::Contact::OrHash).void }
|
136
|
+
attr_writer :contact
|
137
|
+
|
138
|
+
# This is the phone number tied to the Surge account.
|
139
|
+
sig { returns(T.nilable(SurgeAPI::Message::Conversation::PhoneNumber)) }
|
140
|
+
attr_reader :phone_number
|
141
|
+
|
142
|
+
sig do
|
143
|
+
params(
|
144
|
+
phone_number: SurgeAPI::Message::Conversation::PhoneNumber::OrHash
|
145
|
+
).void
|
146
|
+
end
|
147
|
+
attr_writer :phone_number
|
148
|
+
|
149
|
+
# A conversation with a Contact
|
150
|
+
sig do
|
151
|
+
params(
|
152
|
+
id: String,
|
153
|
+
contact: SurgeAPI::Contact::OrHash,
|
154
|
+
phone_number: SurgeAPI::Message::Conversation::PhoneNumber::OrHash
|
155
|
+
).returns(T.attached_class)
|
156
|
+
end
|
157
|
+
def self.new(
|
158
|
+
# Unique identifier for the object.
|
159
|
+
id:,
|
160
|
+
# A contact who has consented to receive messages
|
161
|
+
contact:,
|
162
|
+
# This is the phone number tied to the Surge account.
|
163
|
+
phone_number: nil
|
164
|
+
)
|
165
|
+
end
|
166
|
+
|
167
|
+
sig do
|
168
|
+
override.returns(
|
169
|
+
{
|
170
|
+
id: String,
|
171
|
+
contact: SurgeAPI::Contact,
|
172
|
+
phone_number: SurgeAPI::Message::Conversation::PhoneNumber
|
173
|
+
}
|
174
|
+
)
|
175
|
+
end
|
176
|
+
def to_hash
|
177
|
+
end
|
178
|
+
|
179
|
+
class PhoneNumber < SurgeAPI::Internal::Type::BaseModel
|
180
|
+
OrHash =
|
181
|
+
T.type_alias do
|
182
|
+
T.any(
|
183
|
+
SurgeAPI::Message::Conversation::PhoneNumber,
|
184
|
+
SurgeAPI::Internal::AnyHash
|
185
|
+
)
|
186
|
+
end
|
187
|
+
|
188
|
+
# Unique identifier for the phone number
|
189
|
+
sig { returns(String) }
|
190
|
+
attr_accessor :id
|
191
|
+
|
192
|
+
# The canonical format of the phone number.
|
193
|
+
sig { returns(String) }
|
194
|
+
attr_accessor :number
|
195
|
+
|
196
|
+
# Whether the phone number is local, toll-free, or short code
|
197
|
+
sig do
|
198
|
+
returns(
|
199
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
200
|
+
)
|
201
|
+
end
|
202
|
+
attr_accessor :type
|
203
|
+
|
204
|
+
# This is the phone number tied to the Surge account.
|
205
|
+
sig do
|
206
|
+
params(
|
207
|
+
id: String,
|
208
|
+
number: String,
|
209
|
+
type: SurgeAPI::Message::Conversation::PhoneNumber::Type::OrSymbol
|
210
|
+
).returns(T.attached_class)
|
211
|
+
end
|
212
|
+
def self.new(
|
213
|
+
# Unique identifier for the phone number
|
214
|
+
id:,
|
215
|
+
# The canonical format of the phone number.
|
216
|
+
number:,
|
217
|
+
# Whether the phone number is local, toll-free, or short code
|
218
|
+
type:
|
219
|
+
)
|
220
|
+
end
|
221
|
+
|
222
|
+
sig do
|
223
|
+
override.returns(
|
224
|
+
{
|
225
|
+
id: String,
|
226
|
+
number: String,
|
227
|
+
type:
|
228
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
229
|
+
}
|
230
|
+
)
|
231
|
+
end
|
232
|
+
def to_hash
|
233
|
+
end
|
234
|
+
|
235
|
+
# Whether the phone number is local, toll-free, or short code
|
236
|
+
module Type
|
237
|
+
extend SurgeAPI::Internal::Type::Enum
|
238
|
+
|
239
|
+
TaggedSymbol =
|
240
|
+
T.type_alias do
|
241
|
+
T.all(
|
242
|
+
Symbol,
|
243
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type
|
244
|
+
)
|
245
|
+
end
|
246
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
247
|
+
|
248
|
+
LOCAL =
|
249
|
+
T.let(
|
250
|
+
:local,
|
251
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
252
|
+
)
|
253
|
+
TOLL_FREE =
|
254
|
+
T.let(
|
255
|
+
:toll_free,
|
256
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
257
|
+
)
|
258
|
+
SHORT_CODE =
|
259
|
+
T.let(
|
260
|
+
:short_code,
|
261
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
262
|
+
)
|
263
|
+
DEMO =
|
264
|
+
T.let(
|
265
|
+
:demo,
|
266
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
267
|
+
)
|
268
|
+
|
269
|
+
sig do
|
270
|
+
override.returns(
|
271
|
+
T::Array[
|
272
|
+
SurgeAPI::Message::Conversation::PhoneNumber::Type::TaggedSymbol
|
273
|
+
]
|
274
|
+
)
|
275
|
+
end
|
276
|
+
def self.values
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|