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.
Files changed (212) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +28 -0
  4. data/README.md +286 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/surge_api/client.rb +106 -0
  7. data/lib/surge_api/errors.rb +228 -0
  8. data/lib/surge_api/file_part.rb +55 -0
  9. data/lib/surge_api/internal/transport/base_client.rb +567 -0
  10. data/lib/surge_api/internal/transport/pooled_net_requester.rb +201 -0
  11. data/lib/surge_api/internal/type/array_of.rb +168 -0
  12. data/lib/surge_api/internal/type/base_model.rb +531 -0
  13. data/lib/surge_api/internal/type/base_page.rb +55 -0
  14. data/lib/surge_api/internal/type/boolean.rb +77 -0
  15. data/lib/surge_api/internal/type/converter.rb +327 -0
  16. data/lib/surge_api/internal/type/enum.rb +131 -0
  17. data/lib/surge_api/internal/type/file_input.rb +108 -0
  18. data/lib/surge_api/internal/type/hash_of.rb +188 -0
  19. data/lib/surge_api/internal/type/request_parameters.rb +42 -0
  20. data/lib/surge_api/internal/type/union.rb +250 -0
  21. data/lib/surge_api/internal/type/unknown.rb +81 -0
  22. data/lib/surge_api/internal/util.rb +915 -0
  23. data/lib/surge_api/internal.rb +20 -0
  24. data/lib/surge_api/models/account.rb +60 -0
  25. data/lib/surge_api/models/account_create_params.rb +481 -0
  26. data/lib/surge_api/models/account_retrieve_status_params.rb +32 -0
  27. data/lib/surge_api/models/account_status.rb +104 -0
  28. data/lib/surge_api/models/account_update_params.rb +480 -0
  29. data/lib/surge_api/models/blast.rb +61 -0
  30. data/lib/surge_api/models/blast_create_params.rb +90 -0
  31. data/lib/surge_api/models/call_ended_webhook_event.rb +106 -0
  32. data/lib/surge_api/models/campaign.rb +208 -0
  33. data/lib/surge_api/models/campaign_approved_webhook_event.rb +74 -0
  34. data/lib/surge_api/models/campaign_create_params.rb +202 -0
  35. data/lib/surge_api/models/contact.rb +59 -0
  36. data/lib/surge_api/models/contact_create_params.rb +54 -0
  37. data/lib/surge_api/models/contact_retrieve_params.rb +14 -0
  38. data/lib/surge_api/models/contact_update_params.rb +54 -0
  39. data/lib/surge_api/models/conversation_created_webhook_event.rb +70 -0
  40. data/lib/surge_api/models/error.rb +34 -0
  41. data/lib/surge_api/models/message.rb +146 -0
  42. data/lib/surge_api/models/message_create_params.rb +153 -0
  43. data/lib/surge_api/models/message_delivered_webhook_event.rb +159 -0
  44. data/lib/surge_api/models/message_failed_webhook_event.rb +167 -0
  45. data/lib/surge_api/models/message_received_webhook_event.rb +159 -0
  46. data/lib/surge_api/models/message_sent_webhook_event.rb +159 -0
  47. data/lib/surge_api/models/organization.rb +419 -0
  48. data/lib/surge_api/models/phone_number.rb +48 -0
  49. data/lib/surge_api/models/phone_number_purchase_params.rb +65 -0
  50. data/lib/surge_api/models/unwrap_webhook_event.rb +26 -0
  51. data/lib/surge_api/models/user.rb +51 -0
  52. data/lib/surge_api/models/user_create_params.rb +46 -0
  53. data/lib/surge_api/models/user_create_token_params.rb +22 -0
  54. data/lib/surge_api/models/user_retrieve_params.rb +14 -0
  55. data/lib/surge_api/models/user_token_response.rb +19 -0
  56. data/lib/surge_api/models/user_update_params.rb +46 -0
  57. data/lib/surge_api/models/verification.rb +58 -0
  58. data/lib/surge_api/models/verification_check.rb +43 -0
  59. data/lib/surge_api/models/verification_check_params.rb +22 -0
  60. data/lib/surge_api/models/verification_create_params.rb +22 -0
  61. data/lib/surge_api/models/webhook_unwrap_params.rb +14 -0
  62. data/lib/surge_api/models.rb +117 -0
  63. data/lib/surge_api/request_options.rb +77 -0
  64. data/lib/surge_api/resources/accounts.rb +102 -0
  65. data/lib/surge_api/resources/blasts.rb +53 -0
  66. data/lib/surge_api/resources/campaigns.rb +57 -0
  67. data/lib/surge_api/resources/contacts.rb +99 -0
  68. data/lib/surge_api/resources/messages.rb +75 -0
  69. data/lib/surge_api/resources/phone_numbers.rb +48 -0
  70. data/lib/surge_api/resources/users.rb +119 -0
  71. data/lib/surge_api/resources/verifications.rb +60 -0
  72. data/lib/surge_api/resources/webhooks.rb +22 -0
  73. data/lib/surge_api/version.rb +5 -0
  74. data/lib/surge_api.rb +100 -0
  75. data/manifest.yaml +15 -0
  76. data/rbi/surge_api/client.rbi +73 -0
  77. data/rbi/surge_api/errors.rbi +205 -0
  78. data/rbi/surge_api/file_part.rbi +37 -0
  79. data/rbi/surge_api/internal/transport/base_client.rbi +292 -0
  80. data/rbi/surge_api/internal/transport/pooled_net_requester.rbi +79 -0
  81. data/rbi/surge_api/internal/type/array_of.rbi +104 -0
  82. data/rbi/surge_api/internal/type/base_model.rbi +302 -0
  83. data/rbi/surge_api/internal/type/base_page.rbi +42 -0
  84. data/rbi/surge_api/internal/type/boolean.rbi +58 -0
  85. data/rbi/surge_api/internal/type/converter.rbi +216 -0
  86. data/rbi/surge_api/internal/type/enum.rbi +82 -0
  87. data/rbi/surge_api/internal/type/file_input.rbi +59 -0
  88. data/rbi/surge_api/internal/type/hash_of.rbi +104 -0
  89. data/rbi/surge_api/internal/type/request_parameters.rbi +29 -0
  90. data/rbi/surge_api/internal/type/union.rbi +128 -0
  91. data/rbi/surge_api/internal/type/unknown.rbi +58 -0
  92. data/rbi/surge_api/internal/util.rbi +487 -0
  93. data/rbi/surge_api/internal.rbi +16 -0
  94. data/rbi/surge_api/models/account.rbi +83 -0
  95. data/rbi/surge_api/models/account_create_params.rbi +1104 -0
  96. data/rbi/surge_api/models/account_retrieve_status_params.rbi +96 -0
  97. data/rbi/surge_api/models/account_status.rbi +185 -0
  98. data/rbi/surge_api/models/account_update_params.rbi +1105 -0
  99. data/rbi/surge_api/models/blast.rbi +108 -0
  100. data/rbi/surge_api/models/blast_create_params.rbi +145 -0
  101. data/rbi/surge_api/models/call_ended_webhook_event.rbi +205 -0
  102. data/rbi/surge_api/models/campaign.rbi +331 -0
  103. data/rbi/surge_api/models/campaign_approved_webhook_event.rbi +149 -0
  104. data/rbi/surge_api/models/campaign_create_params.rbi +386 -0
  105. data/rbi/surge_api/models/contact.rbi +88 -0
  106. data/rbi/surge_api/models/contact_create_params.rbi +87 -0
  107. data/rbi/surge_api/models/contact_retrieve_params.rbi +27 -0
  108. data/rbi/surge_api/models/contact_update_params.rbi +87 -0
  109. data/rbi/surge_api/models/conversation_created_webhook_event.rbi +129 -0
  110. data/rbi/surge_api/models/error.rbi +51 -0
  111. data/rbi/surge_api/models/message.rbi +283 -0
  112. data/rbi/surge_api/models/message_create_params.rbi +281 -0
  113. data/rbi/surge_api/models/message_delivered_webhook_event.rbi +331 -0
  114. data/rbi/surge_api/models/message_failed_webhook_event.rbi +335 -0
  115. data/rbi/surge_api/models/message_received_webhook_event.rbi +331 -0
  116. data/rbi/surge_api/models/message_sent_webhook_event.rbi +322 -0
  117. data/rbi/surge_api/models/organization.rbi +649 -0
  118. data/rbi/surge_api/models/phone_number.rbi +72 -0
  119. data/rbi/surge_api/models/phone_number_purchase_params.rbi +122 -0
  120. data/rbi/surge_api/models/unwrap_webhook_event.rbi +26 -0
  121. data/rbi/surge_api/models/user.rbi +80 -0
  122. data/rbi/surge_api/models/user_create_params.rbi +76 -0
  123. data/rbi/surge_api/models/user_create_token_params.rbi +46 -0
  124. data/rbi/surge_api/models/user_retrieve_params.rbi +27 -0
  125. data/rbi/surge_api/models/user_token_response.rbi +31 -0
  126. data/rbi/surge_api/models/user_update_params.rbi +76 -0
  127. data/rbi/surge_api/models/verification.rbi +86 -0
  128. data/rbi/surge_api/models/verification_check.rbi +84 -0
  129. data/rbi/surge_api/models/verification_check_params.rbi +40 -0
  130. data/rbi/surge_api/models/verification_create_params.rbi +40 -0
  131. data/rbi/surge_api/models/webhook_unwrap_params.rbi +27 -0
  132. data/rbi/surge_api/models.rbi +80 -0
  133. data/rbi/surge_api/request_options.rbi +59 -0
  134. data/rbi/surge_api/resources/accounts.rbi +94 -0
  135. data/rbi/surge_api/resources/blasts.rbi +48 -0
  136. data/rbi/surge_api/resources/campaigns.rbi +115 -0
  137. data/rbi/surge_api/resources/contacts.rbi +85 -0
  138. data/rbi/surge_api/resources/messages.rbi +72 -0
  139. data/rbi/surge_api/resources/phone_numbers.rbi +43 -0
  140. data/rbi/surge_api/resources/users.rbi +96 -0
  141. data/rbi/surge_api/resources/verifications.rbi +43 -0
  142. data/rbi/surge_api/resources/webhooks.rbi +31 -0
  143. data/rbi/surge_api/version.rbi +5 -0
  144. data/sig/surge_api/client.rbs +42 -0
  145. data/sig/surge_api/errors.rbs +117 -0
  146. data/sig/surge_api/file_part.rbs +21 -0
  147. data/sig/surge_api/internal/transport/base_client.rbs +131 -0
  148. data/sig/surge_api/internal/transport/pooled_net_requester.rbs +45 -0
  149. data/sig/surge_api/internal/type/array_of.rbs +48 -0
  150. data/sig/surge_api/internal/type/base_model.rbs +102 -0
  151. data/sig/surge_api/internal/type/base_page.rbs +24 -0
  152. data/sig/surge_api/internal/type/boolean.rbs +26 -0
  153. data/sig/surge_api/internal/type/converter.rbs +79 -0
  154. data/sig/surge_api/internal/type/enum.rbs +32 -0
  155. data/sig/surge_api/internal/type/file_input.rbs +25 -0
  156. data/sig/surge_api/internal/type/hash_of.rbs +48 -0
  157. data/sig/surge_api/internal/type/request_parameters.rbs +17 -0
  158. data/sig/surge_api/internal/type/union.rbs +52 -0
  159. data/sig/surge_api/internal/type/unknown.rbs +26 -0
  160. data/sig/surge_api/internal/util.rbs +185 -0
  161. data/sig/surge_api/internal.rbs +9 -0
  162. data/sig/surge_api/models/account.rbs +40 -0
  163. data/sig/surge_api/models/account_create_params.rbs +433 -0
  164. data/sig/surge_api/models/account_retrieve_status_params.rbs +40 -0
  165. data/sig/surge_api/models/account_status.rbs +71 -0
  166. data/sig/surge_api/models/account_update_params.rbs +435 -0
  167. data/sig/surge_api/models/blast.rbs +64 -0
  168. data/sig/surge_api/models/blast_create_params.rbs +82 -0
  169. data/sig/surge_api/models/call_ended_webhook_event.rbs +99 -0
  170. data/sig/surge_api/models/campaign.rbs +122 -0
  171. data/sig/surge_api/models/campaign_approved_webhook_event.rbs +67 -0
  172. data/sig/surge_api/models/campaign_create_params.rbs +127 -0
  173. data/sig/surge_api/models/contact.rbs +53 -0
  174. data/sig/surge_api/models/contact_create_params.rbs +54 -0
  175. data/sig/surge_api/models/contact_retrieve_params.rbs +15 -0
  176. data/sig/surge_api/models/contact_update_params.rbs +54 -0
  177. data/sig/surge_api/models/conversation_created_webhook_event.rbs +62 -0
  178. data/sig/surge_api/models/error.rbs +27 -0
  179. data/sig/surge_api/models/message.rbs +138 -0
  180. data/sig/surge_api/models/message_create_params.rbs +140 -0
  181. data/sig/surge_api/models/message_delivered_webhook_event.rbs +143 -0
  182. data/sig/surge_api/models/message_failed_webhook_event.rbs +148 -0
  183. data/sig/surge_api/models/message_received_webhook_event.rbs +143 -0
  184. data/sig/surge_api/models/message_sent_webhook_event.rbs +143 -0
  185. data/sig/surge_api/models/organization.rbs +385 -0
  186. data/sig/surge_api/models/phone_number.rbs +37 -0
  187. data/sig/surge_api/models/phone_number_purchase_params.rbs +62 -0
  188. data/sig/surge_api/models/unwrap_webhook_event.rbs +18 -0
  189. data/sig/surge_api/models/user.rbs +48 -0
  190. data/sig/surge_api/models/user_create_params.rbs +47 -0
  191. data/sig/surge_api/models/user_create_token_params.rbs +26 -0
  192. data/sig/surge_api/models/user_retrieve_params.rbs +15 -0
  193. data/sig/surge_api/models/user_token_response.rbs +15 -0
  194. data/sig/surge_api/models/user_update_params.rbs +47 -0
  195. data/sig/surge_api/models/verification.rbs +48 -0
  196. data/sig/surge_api/models/verification_check.rbs +45 -0
  197. data/sig/surge_api/models/verification_check_params.rbs +23 -0
  198. data/sig/surge_api/models/verification_create_params.rbs +23 -0
  199. data/sig/surge_api/models/webhook_unwrap_params.rbs +15 -0
  200. data/sig/surge_api/models.rbs +77 -0
  201. data/sig/surge_api/request_options.rbs +34 -0
  202. data/sig/surge_api/resources/accounts.rbs +30 -0
  203. data/sig/surge_api/resources/blasts.rbs +19 -0
  204. data/sig/surge_api/resources/campaigns.rbs +21 -0
  205. data/sig/surge_api/resources/contacts.rbs +32 -0
  206. data/sig/surge_api/resources/messages.rbs +18 -0
  207. data/sig/surge_api/resources/phone_numbers.rbs +16 -0
  208. data/sig/surge_api/resources/users.rbs +36 -0
  209. data/sig/surge_api/resources/verifications.rbs +18 -0
  210. data/sig/surge_api/resources/webhooks.rbs +17 -0
  211. data/sig/surge_api/version.rbs +3 -0
  212. metadata +269 -0
@@ -0,0 +1,138 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type message =
4
+ {
5
+ id: String,
6
+ attachments: ::Array[SurgeAPI::Message::Attachment],
7
+ body: String,
8
+ conversation: SurgeAPI::Message::Conversation
9
+ }
10
+
11
+ class Message < SurgeAPI::Internal::Type::BaseModel
12
+ attr_reader id: String?
13
+
14
+ def id=: (String) -> String
15
+
16
+ attr_reader attachments: ::Array[SurgeAPI::Message::Attachment]?
17
+
18
+ def attachments=: (
19
+ ::Array[SurgeAPI::Message::Attachment]
20
+ ) -> ::Array[SurgeAPI::Message::Attachment]
21
+
22
+ attr_reader body: String?
23
+
24
+ def body=: (String) -> String
25
+
26
+ attr_reader conversation: SurgeAPI::Message::Conversation?
27
+
28
+ def conversation=: (
29
+ SurgeAPI::Message::Conversation
30
+ ) -> SurgeAPI::Message::Conversation
31
+
32
+ def initialize: (
33
+ ?id: String,
34
+ ?attachments: ::Array[SurgeAPI::Message::Attachment],
35
+ ?body: String,
36
+ ?conversation: SurgeAPI::Message::Conversation
37
+ ) -> void
38
+
39
+ def to_hash: -> {
40
+ id: String,
41
+ attachments: ::Array[SurgeAPI::Message::Attachment],
42
+ body: String,
43
+ conversation: SurgeAPI::Message::Conversation
44
+ }
45
+
46
+ type attachment = { id: String, type: String, url: String }
47
+
48
+ class Attachment < SurgeAPI::Internal::Type::BaseModel
49
+ attr_reader id: String?
50
+
51
+ def id=: (String) -> String
52
+
53
+ attr_reader type: String?
54
+
55
+ def type=: (String) -> String
56
+
57
+ attr_reader url: String?
58
+
59
+ def url=: (String) -> String
60
+
61
+ def initialize: (?id: String, ?type: String, ?url: String) -> void
62
+
63
+ def to_hash: -> { id: String, type: String, url: String }
64
+ end
65
+
66
+ type conversation =
67
+ {
68
+ id: String,
69
+ contact: SurgeAPI::Contact,
70
+ phone_number: SurgeAPI::Message::Conversation::PhoneNumber
71
+ }
72
+
73
+ class Conversation < SurgeAPI::Internal::Type::BaseModel
74
+ attr_accessor id: String
75
+
76
+ attr_accessor contact: SurgeAPI::Contact
77
+
78
+ attr_reader phone_number: SurgeAPI::Message::Conversation::PhoneNumber?
79
+
80
+ def phone_number=: (
81
+ SurgeAPI::Message::Conversation::PhoneNumber
82
+ ) -> SurgeAPI::Message::Conversation::PhoneNumber
83
+
84
+ def initialize: (
85
+ id: String,
86
+ contact: SurgeAPI::Contact,
87
+ ?phone_number: SurgeAPI::Message::Conversation::PhoneNumber
88
+ ) -> void
89
+
90
+ def to_hash: -> {
91
+ id: String,
92
+ contact: SurgeAPI::Contact,
93
+ phone_number: SurgeAPI::Message::Conversation::PhoneNumber
94
+ }
95
+
96
+ type phone_number =
97
+ {
98
+ id: String,
99
+ number: String,
100
+ type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
101
+ }
102
+
103
+ class PhoneNumber < SurgeAPI::Internal::Type::BaseModel
104
+ attr_accessor id: String
105
+
106
+ attr_accessor number: String
107
+
108
+ attr_accessor type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
109
+
110
+ def initialize: (
111
+ id: String,
112
+ number: String,
113
+ type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
114
+ ) -> void
115
+
116
+ def to_hash: -> {
117
+ id: String,
118
+ number: String,
119
+ type: SurgeAPI::Models::Message::Conversation::PhoneNumber::type_
120
+ }
121
+
122
+ type type_ = :local | :toll_free | :short_code | :demo
123
+
124
+ module Type
125
+ extend SurgeAPI::Internal::Type::Enum
126
+
127
+ LOCAL: :local
128
+ TOLL_FREE: :toll_free
129
+ SHORT_CODE: :short_code
130
+ DEMO: :demo
131
+
132
+ def self?.values: -> ::Array[SurgeAPI::Models::Message::Conversation::PhoneNumber::type_]
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,140 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type message_create_params =
4
+ {
5
+ conversation: SurgeAPI::MessageCreateParams::Conversation,
6
+ attachments: ::Array[SurgeAPI::MessageCreateParams::Attachment],
7
+ body: String,
8
+ send_at: Time,
9
+ to: String,
10
+ from: String
11
+ }
12
+ & SurgeAPI::Internal::Type::request_parameters
13
+
14
+ class MessageCreateParams < SurgeAPI::Internal::Type::BaseModel
15
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
16
+ include SurgeAPI::Internal::Type::RequestParameters
17
+
18
+ attr_accessor conversation: SurgeAPI::MessageCreateParams::Conversation
19
+
20
+ attr_reader attachments: ::Array[SurgeAPI::MessageCreateParams::Attachment]?
21
+
22
+ def attachments=: (
23
+ ::Array[SurgeAPI::MessageCreateParams::Attachment]
24
+ ) -> ::Array[SurgeAPI::MessageCreateParams::Attachment]
25
+
26
+ attr_reader body: String?
27
+
28
+ def body=: (String) -> String
29
+
30
+ attr_reader send_at: Time?
31
+
32
+ def send_at=: (Time) -> Time
33
+
34
+ attr_accessor to: String
35
+
36
+ attr_reader from: String?
37
+
38
+ def from=: (String) -> String
39
+
40
+ def initialize: (
41
+ conversation: SurgeAPI::MessageCreateParams::Conversation,
42
+ to: String,
43
+ ?attachments: ::Array[SurgeAPI::MessageCreateParams::Attachment],
44
+ ?body: String,
45
+ ?send_at: Time,
46
+ ?from: String,
47
+ ?request_options: SurgeAPI::request_opts
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ conversation: SurgeAPI::MessageCreateParams::Conversation,
52
+ attachments: ::Array[SurgeAPI::MessageCreateParams::Attachment],
53
+ body: String,
54
+ send_at: Time,
55
+ to: String,
56
+ from: String,
57
+ request_options: SurgeAPI::RequestOptions
58
+ }
59
+
60
+ type conversation =
61
+ {
62
+ contact: SurgeAPI::MessageCreateParams::Conversation::Contact,
63
+ phone_number: String
64
+ }
65
+
66
+ class Conversation < SurgeAPI::Internal::Type::BaseModel
67
+ attr_accessor contact: SurgeAPI::MessageCreateParams::Conversation::Contact
68
+
69
+ attr_reader phone_number: String?
70
+
71
+ def phone_number=: (String) -> String
72
+
73
+ def initialize: (
74
+ contact: SurgeAPI::MessageCreateParams::Conversation::Contact,
75
+ ?phone_number: String
76
+ ) -> void
77
+
78
+ def to_hash: -> {
79
+ contact: SurgeAPI::MessageCreateParams::Conversation::Contact,
80
+ phone_number: String
81
+ }
82
+
83
+ type contact =
84
+ {
85
+ phone_number: String,
86
+ email: String,
87
+ first_name: String,
88
+ last_name: String,
89
+ metadata: ::Hash[Symbol, String]
90
+ }
91
+
92
+ class Contact < SurgeAPI::Internal::Type::BaseModel
93
+ attr_accessor phone_number: String
94
+
95
+ attr_reader email: String?
96
+
97
+ def email=: (String) -> String
98
+
99
+ attr_reader first_name: String?
100
+
101
+ def first_name=: (String) -> String
102
+
103
+ attr_reader last_name: String?
104
+
105
+ def last_name=: (String) -> String
106
+
107
+ attr_reader metadata: ::Hash[Symbol, String]?
108
+
109
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
110
+
111
+ def initialize: (
112
+ phone_number: String,
113
+ ?email: String,
114
+ ?first_name: String,
115
+ ?last_name: String,
116
+ ?metadata: ::Hash[Symbol, String]
117
+ ) -> void
118
+
119
+ def to_hash: -> {
120
+ phone_number: String,
121
+ email: String,
122
+ first_name: String,
123
+ last_name: String,
124
+ metadata: ::Hash[Symbol, String]
125
+ }
126
+ end
127
+ end
128
+
129
+ type attachment = { url: String }
130
+
131
+ class Attachment < SurgeAPI::Internal::Type::BaseModel
132
+ attr_accessor url: String
133
+
134
+ def initialize: (url: String) -> void
135
+
136
+ def to_hash: -> { url: String }
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,143 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type message_delivered_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::MessageDeliveredWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"message.delivered"
9
+ }
10
+
11
+ class MessageDeliveredWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::MessageDeliveredWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"message.delivered"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::MessageDeliveredWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"message.delivered"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::MessageDeliveredWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"message.delivered"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ body: String,
38
+ conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
39
+ delivered_at: Time,
40
+ attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
41
+ }
42
+
43
+ class Data < SurgeAPI::Internal::Type::BaseModel
44
+ attr_accessor id: String
45
+
46
+ attr_accessor body: String
47
+
48
+ attr_accessor conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation
49
+
50
+ attr_accessor delivered_at: Time
51
+
52
+ attr_reader attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]?
53
+
54
+ def attachments=: (
55
+ ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
56
+ ) -> ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
57
+
58
+ def initialize: (
59
+ id: String,
60
+ body: String,
61
+ conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
62
+ delivered_at: Time,
63
+ ?attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
64
+ ) -> void
65
+
66
+ def to_hash: -> {
67
+ id: String,
68
+ body: String,
69
+ conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation,
70
+ delivered_at: Time,
71
+ attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]
72
+ }
73
+
74
+ type conversation =
75
+ {
76
+ id: String,
77
+ contact: SurgeAPI::Contact,
78
+ phone_number: SurgeAPI::PhoneNumber
79
+ }
80
+
81
+ class Conversation < SurgeAPI::Internal::Type::BaseModel
82
+ attr_accessor id: String
83
+
84
+ attr_accessor contact: SurgeAPI::Contact
85
+
86
+ attr_accessor phone_number: SurgeAPI::PhoneNumber
87
+
88
+ def initialize: (
89
+ id: String,
90
+ contact: SurgeAPI::Contact,
91
+ phone_number: SurgeAPI::PhoneNumber
92
+ ) -> void
93
+
94
+ def to_hash: -> {
95
+ id: String,
96
+ contact: SurgeAPI::Contact,
97
+ phone_number: SurgeAPI::PhoneNumber
98
+ }
99
+ end
100
+
101
+ type attachment =
102
+ {
103
+ id: String,
104
+ type: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Attachment::type_,
105
+ url: String
106
+ }
107
+
108
+ class Attachment < SurgeAPI::Internal::Type::BaseModel
109
+ attr_accessor id: String
110
+
111
+ attr_accessor type: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Attachment::type_
112
+
113
+ attr_accessor url: String
114
+
115
+ def initialize: (
116
+ id: String,
117
+ type: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Attachment::type_,
118
+ url: String
119
+ ) -> void
120
+
121
+ def to_hash: -> {
122
+ id: String,
123
+ type: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Attachment::type_,
124
+ url: String
125
+ }
126
+
127
+ type type_ = :file | :image | :link | :video
128
+
129
+ module Type
130
+ extend SurgeAPI::Internal::Type::Enum
131
+
132
+ FILE: :file
133
+ IMAGE: :image
134
+ LINK: :link
135
+ VIDEO: :video
136
+
137
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Attachment::type_]
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,148 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type message_failed_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::MessageFailedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"message.failed"
9
+ }
10
+
11
+ class MessageFailedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::MessageFailedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"message.failed"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::MessageFailedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"message.failed"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::MessageFailedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"message.failed"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ body: String,
38
+ conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
39
+ failed_at: Time,
40
+ failure_reason: String,
41
+ attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]
42
+ }
43
+
44
+ class Data < SurgeAPI::Internal::Type::BaseModel
45
+ attr_accessor id: String
46
+
47
+ attr_accessor body: String
48
+
49
+ attr_accessor conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation
50
+
51
+ attr_accessor failed_at: Time
52
+
53
+ attr_accessor failure_reason: String
54
+
55
+ attr_reader attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]?
56
+
57
+ def attachments=: (
58
+ ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]
59
+ ) -> ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]
60
+
61
+ def initialize: (
62
+ id: String,
63
+ body: String,
64
+ conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
65
+ failed_at: Time,
66
+ failure_reason: String,
67
+ ?attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]
68
+ ) -> void
69
+
70
+ def to_hash: -> {
71
+ id: String,
72
+ body: String,
73
+ conversation: SurgeAPI::MessageFailedWebhookEvent::Data::Conversation,
74
+ failed_at: Time,
75
+ failure_reason: String,
76
+ attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]
77
+ }
78
+
79
+ type conversation =
80
+ {
81
+ id: String,
82
+ contact: SurgeAPI::Contact,
83
+ phone_number: SurgeAPI::PhoneNumber
84
+ }
85
+
86
+ class Conversation < SurgeAPI::Internal::Type::BaseModel
87
+ attr_accessor id: String
88
+
89
+ attr_accessor contact: SurgeAPI::Contact
90
+
91
+ attr_accessor phone_number: SurgeAPI::PhoneNumber
92
+
93
+ def initialize: (
94
+ id: String,
95
+ contact: SurgeAPI::Contact,
96
+ phone_number: SurgeAPI::PhoneNumber
97
+ ) -> void
98
+
99
+ def to_hash: -> {
100
+ id: String,
101
+ contact: SurgeAPI::Contact,
102
+ phone_number: SurgeAPI::PhoneNumber
103
+ }
104
+ end
105
+
106
+ type attachment =
107
+ {
108
+ id: String,
109
+ type: SurgeAPI::Models::MessageFailedWebhookEvent::Data::Attachment::type_,
110
+ url: String
111
+ }
112
+
113
+ class Attachment < SurgeAPI::Internal::Type::BaseModel
114
+ attr_accessor id: String
115
+
116
+ attr_accessor type: SurgeAPI::Models::MessageFailedWebhookEvent::Data::Attachment::type_
117
+
118
+ attr_accessor url: String
119
+
120
+ def initialize: (
121
+ id: String,
122
+ type: SurgeAPI::Models::MessageFailedWebhookEvent::Data::Attachment::type_,
123
+ url: String
124
+ ) -> void
125
+
126
+ def to_hash: -> {
127
+ id: String,
128
+ type: SurgeAPI::Models::MessageFailedWebhookEvent::Data::Attachment::type_,
129
+ url: String
130
+ }
131
+
132
+ type type_ = :file | :image | :link | :video
133
+
134
+ module Type
135
+ extend SurgeAPI::Internal::Type::Enum
136
+
137
+ FILE: :file
138
+ IMAGE: :image
139
+ LINK: :link
140
+ VIDEO: :video
141
+
142
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageFailedWebhookEvent::Data::Attachment::type_]
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,143 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type message_received_webhook_event =
4
+ {
5
+ account_id: String,
6
+ data: SurgeAPI::MessageReceivedWebhookEvent::Data,
7
+ timestamp: Time,
8
+ type: :"message.received"
9
+ }
10
+
11
+ class MessageReceivedWebhookEvent < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor account_id: String
13
+
14
+ attr_accessor data: SurgeAPI::MessageReceivedWebhookEvent::Data
15
+
16
+ attr_accessor timestamp: Time
17
+
18
+ attr_accessor type: :"message.received"
19
+
20
+ def initialize: (
21
+ account_id: String,
22
+ data: SurgeAPI::MessageReceivedWebhookEvent::Data,
23
+ timestamp: Time,
24
+ ?type: :"message.received"
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ account_id: String,
29
+ data: SurgeAPI::MessageReceivedWebhookEvent::Data,
30
+ timestamp: Time,
31
+ type: :"message.received"
32
+ }
33
+
34
+ type data =
35
+ {
36
+ id: String,
37
+ body: String,
38
+ conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
39
+ received_at: Time,
40
+ attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
41
+ }
42
+
43
+ class Data < SurgeAPI::Internal::Type::BaseModel
44
+ attr_accessor id: String
45
+
46
+ attr_accessor body: String
47
+
48
+ attr_accessor conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation
49
+
50
+ attr_accessor received_at: Time
51
+
52
+ attr_reader attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]?
53
+
54
+ def attachments=: (
55
+ ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
56
+ ) -> ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
57
+
58
+ def initialize: (
59
+ id: String,
60
+ body: String,
61
+ conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
62
+ received_at: Time,
63
+ ?attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
64
+ ) -> void
65
+
66
+ def to_hash: -> {
67
+ id: String,
68
+ body: String,
69
+ conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation,
70
+ received_at: Time,
71
+ attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]
72
+ }
73
+
74
+ type conversation =
75
+ {
76
+ id: String,
77
+ contact: SurgeAPI::Contact,
78
+ phone_number: SurgeAPI::PhoneNumber
79
+ }
80
+
81
+ class Conversation < SurgeAPI::Internal::Type::BaseModel
82
+ attr_accessor id: String
83
+
84
+ attr_accessor contact: SurgeAPI::Contact
85
+
86
+ attr_accessor phone_number: SurgeAPI::PhoneNumber
87
+
88
+ def initialize: (
89
+ id: String,
90
+ contact: SurgeAPI::Contact,
91
+ phone_number: SurgeAPI::PhoneNumber
92
+ ) -> void
93
+
94
+ def to_hash: -> {
95
+ id: String,
96
+ contact: SurgeAPI::Contact,
97
+ phone_number: SurgeAPI::PhoneNumber
98
+ }
99
+ end
100
+
101
+ type attachment =
102
+ {
103
+ id: String,
104
+ type: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Attachment::type_,
105
+ url: String
106
+ }
107
+
108
+ class Attachment < SurgeAPI::Internal::Type::BaseModel
109
+ attr_accessor id: String
110
+
111
+ attr_accessor type: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Attachment::type_
112
+
113
+ attr_accessor url: String
114
+
115
+ def initialize: (
116
+ id: String,
117
+ type: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Attachment::type_,
118
+ url: String
119
+ ) -> void
120
+
121
+ def to_hash: -> {
122
+ id: String,
123
+ type: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Attachment::type_,
124
+ url: String
125
+ }
126
+
127
+ type type_ = :file | :image | :link | :video
128
+
129
+ module Type
130
+ extend SurgeAPI::Internal::Type::Enum
131
+
132
+ FILE: :file
133
+ IMAGE: :image
134
+ LINK: :link
135
+ VIDEO: :video
136
+
137
+ def self?.values: -> ::Array[SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Attachment::type_]
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end