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,47 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type user_create_params =
4
+ {
5
+ first_name: String,
6
+ last_name: String,
7
+ metadata: ::Hash[Symbol, String],
8
+ photo_url: String
9
+ }
10
+ & SurgeAPI::Internal::Type::request_parameters
11
+
12
+ class UserCreateParams < SurgeAPI::Internal::Type::BaseModel
13
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
14
+ include SurgeAPI::Internal::Type::RequestParameters
15
+
16
+ attr_accessor first_name: String
17
+
18
+ attr_reader last_name: String?
19
+
20
+ def last_name=: (String) -> String
21
+
22
+ attr_reader metadata: ::Hash[Symbol, String]?
23
+
24
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
25
+
26
+ attr_reader photo_url: String?
27
+
28
+ def photo_url=: (String) -> String
29
+
30
+ def initialize: (
31
+ first_name: String,
32
+ ?last_name: String,
33
+ ?metadata: ::Hash[Symbol, String],
34
+ ?photo_url: String,
35
+ ?request_options: SurgeAPI::request_opts
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ first_name: String,
40
+ last_name: String,
41
+ metadata: ::Hash[Symbol, String],
42
+ photo_url: String,
43
+ request_options: SurgeAPI::RequestOptions
44
+ }
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,26 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type user_create_token_params =
4
+ { duration_seconds: Integer }
5
+ & SurgeAPI::Internal::Type::request_parameters
6
+
7
+ class UserCreateTokenParams < SurgeAPI::Internal::Type::BaseModel
8
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
9
+ include SurgeAPI::Internal::Type::RequestParameters
10
+
11
+ attr_reader duration_seconds: Integer?
12
+
13
+ def duration_seconds=: (Integer) -> Integer
14
+
15
+ def initialize: (
16
+ ?duration_seconds: Integer,
17
+ ?request_options: SurgeAPI::request_opts
18
+ ) -> void
19
+
20
+ def to_hash: -> {
21
+ duration_seconds: Integer,
22
+ request_options: SurgeAPI::RequestOptions
23
+ }
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type user_retrieve_params =
4
+ { } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class UserRetrieveParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ def initialize: (?request_options: SurgeAPI::request_opts) -> void
11
+
12
+ def to_hash: -> { request_options: SurgeAPI::RequestOptions }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type user_token_response = { token: String }
4
+
5
+ class UserTokenResponse < SurgeAPI::Internal::Type::BaseModel
6
+ attr_reader token: String?
7
+
8
+ def token=: (String) -> String
9
+
10
+ def initialize: (?token: String) -> void
11
+
12
+ def to_hash: -> { token: String }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,47 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type user_update_params =
4
+ {
5
+ first_name: String,
6
+ last_name: String,
7
+ metadata: ::Hash[Symbol, String],
8
+ photo_url: String
9
+ }
10
+ & SurgeAPI::Internal::Type::request_parameters
11
+
12
+ class UserUpdateParams < SurgeAPI::Internal::Type::BaseModel
13
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
14
+ include SurgeAPI::Internal::Type::RequestParameters
15
+
16
+ attr_accessor first_name: String
17
+
18
+ attr_reader last_name: String?
19
+
20
+ def last_name=: (String) -> String
21
+
22
+ attr_reader metadata: ::Hash[Symbol, String]?
23
+
24
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
25
+
26
+ attr_reader photo_url: String?
27
+
28
+ def photo_url=: (String) -> String
29
+
30
+ def initialize: (
31
+ first_name: String,
32
+ ?last_name: String,
33
+ ?metadata: ::Hash[Symbol, String],
34
+ ?photo_url: String,
35
+ ?request_options: SurgeAPI::request_opts
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ first_name: String,
40
+ last_name: String,
41
+ metadata: ::Hash[Symbol, String],
42
+ photo_url: String,
43
+ request_options: SurgeAPI::RequestOptions
44
+ }
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type verification =
4
+ {
5
+ id: String,
6
+ attempt_count: Integer,
7
+ phone_number: String,
8
+ status: SurgeAPI::Models::Verification::status
9
+ }
10
+
11
+ class Verification < SurgeAPI::Internal::Type::BaseModel
12
+ attr_accessor id: String
13
+
14
+ attr_accessor attempt_count: Integer
15
+
16
+ attr_accessor phone_number: String
17
+
18
+ attr_accessor status: SurgeAPI::Models::Verification::status
19
+
20
+ def initialize: (
21
+ id: String,
22
+ attempt_count: Integer,
23
+ phone_number: String,
24
+ status: SurgeAPI::Models::Verification::status
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ id: String,
29
+ attempt_count: Integer,
30
+ phone_number: String,
31
+ status: SurgeAPI::Models::Verification::status
32
+ }
33
+
34
+ type status = :pending | :verified | :exhausted | :expired
35
+
36
+ module Status
37
+ extend SurgeAPI::Internal::Type::Enum
38
+
39
+ PENDING: :pending
40
+ VERIFIED: :verified
41
+ EXHAUSTED: :exhausted
42
+ EXPIRED: :expired
43
+
44
+ def self?.values: -> ::Array[SurgeAPI::Models::Verification::status]
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,45 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type verification_check =
4
+ {
5
+ result: SurgeAPI::Models::VerificationCheck::result,
6
+ verification: SurgeAPI::Verification
7
+ }
8
+
9
+ class VerificationCheck < SurgeAPI::Internal::Type::BaseModel
10
+ attr_reader result: SurgeAPI::Models::VerificationCheck::result?
11
+
12
+ def result=: (
13
+ SurgeAPI::Models::VerificationCheck::result
14
+ ) -> SurgeAPI::Models::VerificationCheck::result
15
+
16
+ attr_reader verification: SurgeAPI::Verification?
17
+
18
+ def verification=: (SurgeAPI::Verification) -> SurgeAPI::Verification
19
+
20
+ def initialize: (
21
+ ?result: SurgeAPI::Models::VerificationCheck::result,
22
+ ?verification: SurgeAPI::Verification
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ result: SurgeAPI::Models::VerificationCheck::result,
27
+ verification: SurgeAPI::Verification
28
+ }
29
+
30
+ type result = :ok | :incorrect | :exhausted | :expired | :already_verified
31
+
32
+ module Result
33
+ extend SurgeAPI::Internal::Type::Enum
34
+
35
+ OK: :ok
36
+ INCORRECT: :incorrect
37
+ EXHAUSTED: :exhausted
38
+ EXPIRED: :expired
39
+ ALREADY_VERIFIED: :already_verified
40
+
41
+ def self?.values: -> ::Array[SurgeAPI::Models::VerificationCheck::result]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type verification_check_params =
4
+ { code: String } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class VerificationCheckParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ attr_accessor code: String
11
+
12
+ def initialize: (
13
+ code: String,
14
+ ?request_options: SurgeAPI::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> {
18
+ code: String,
19
+ request_options: SurgeAPI::RequestOptions
20
+ }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type verification_create_params =
4
+ { phone_number: String } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class VerificationCreateParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ attr_accessor phone_number: String
11
+
12
+ def initialize: (
13
+ phone_number: String,
14
+ ?request_options: SurgeAPI::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> {
18
+ phone_number: String,
19
+ request_options: SurgeAPI::RequestOptions
20
+ }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ module SurgeAPI
2
+ module Models
3
+ type webhook_unwrap_params =
4
+ { } & SurgeAPI::Internal::Type::request_parameters
5
+
6
+ class WebhookUnwrapParams < SurgeAPI::Internal::Type::BaseModel
7
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
8
+ include SurgeAPI::Internal::Type::RequestParameters
9
+
10
+ def initialize: (?request_options: SurgeAPI::request_opts) -> void
11
+
12
+ def to_hash: -> { request_options: SurgeAPI::RequestOptions }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,77 @@
1
+ module SurgeAPI
2
+ class Account = SurgeAPI::Models::Account
3
+
4
+ class AccountCreateParams = SurgeAPI::Models::AccountCreateParams
5
+
6
+ class AccountRetrieveStatusParams = SurgeAPI::Models::AccountRetrieveStatusParams
7
+
8
+ class AccountStatus = SurgeAPI::Models::AccountStatus
9
+
10
+ class AccountUpdateParams = SurgeAPI::Models::AccountUpdateParams
11
+
12
+ class Blast = SurgeAPI::Models::Blast
13
+
14
+ class BlastCreateParams = SurgeAPI::Models::BlastCreateParams
15
+
16
+ class CallEndedWebhookEvent = SurgeAPI::Models::CallEndedWebhookEvent
17
+
18
+ class Campaign = SurgeAPI::Models::Campaign
19
+
20
+ class CampaignApprovedWebhookEvent = SurgeAPI::Models::CampaignApprovedWebhookEvent
21
+
22
+ class CampaignCreateParams = SurgeAPI::Models::CampaignCreateParams
23
+
24
+ class Contact = SurgeAPI::Models::Contact
25
+
26
+ class ContactCreateParams = SurgeAPI::Models::ContactCreateParams
27
+
28
+ class ContactRetrieveParams = SurgeAPI::Models::ContactRetrieveParams
29
+
30
+ class ContactUpdateParams = SurgeAPI::Models::ContactUpdateParams
31
+
32
+ class ConversationCreatedWebhookEvent = SurgeAPI::Models::ConversationCreatedWebhookEvent
33
+
34
+ class Error = SurgeAPI::Models::Error
35
+
36
+ class Message = SurgeAPI::Models::Message
37
+
38
+ class MessageCreateParams = SurgeAPI::Models::MessageCreateParams
39
+
40
+ class MessageDeliveredWebhookEvent = SurgeAPI::Models::MessageDeliveredWebhookEvent
41
+
42
+ class MessageFailedWebhookEvent = SurgeAPI::Models::MessageFailedWebhookEvent
43
+
44
+ class MessageReceivedWebhookEvent = SurgeAPI::Models::MessageReceivedWebhookEvent
45
+
46
+ class MessageSentWebhookEvent = SurgeAPI::Models::MessageSentWebhookEvent
47
+
48
+ class Organization = SurgeAPI::Models::Organization
49
+
50
+ class PhoneNumber = SurgeAPI::Models::PhoneNumber
51
+
52
+ class PhoneNumberPurchaseParams = SurgeAPI::Models::PhoneNumberPurchaseParams
53
+
54
+ module UnwrapWebhookEvent = SurgeAPI::Models::UnwrapWebhookEvent
55
+
56
+ class User = SurgeAPI::Models::User
57
+
58
+ class UserCreateParams = SurgeAPI::Models::UserCreateParams
59
+
60
+ class UserCreateTokenParams = SurgeAPI::Models::UserCreateTokenParams
61
+
62
+ class UserRetrieveParams = SurgeAPI::Models::UserRetrieveParams
63
+
64
+ class UserTokenResponse = SurgeAPI::Models::UserTokenResponse
65
+
66
+ class UserUpdateParams = SurgeAPI::Models::UserUpdateParams
67
+
68
+ class Verification = SurgeAPI::Models::Verification
69
+
70
+ class VerificationCheck = SurgeAPI::Models::VerificationCheck
71
+
72
+ class VerificationCheckParams = SurgeAPI::Models::VerificationCheckParams
73
+
74
+ class VerificationCreateParams = SurgeAPI::Models::VerificationCreateParams
75
+
76
+ class WebhookUnwrapParams = SurgeAPI::Models::WebhookUnwrapParams
77
+ end
@@ -0,0 +1,34 @@
1
+ module SurgeAPI
2
+ type request_opts =
3
+ SurgeAPI::RequestOptions | SurgeAPI::request_options | ::Hash[Symbol, top]
4
+
5
+ type request_options =
6
+ {
7
+ idempotency_key: String?,
8
+ extra_query: ::Hash[String, (::Array[String] | String)?]?,
9
+ extra_headers: ::Hash[String, String?]?,
10
+ extra_body: top?,
11
+ max_retries: Integer?,
12
+ timeout: Float?
13
+ }
14
+
15
+ class RequestOptions < SurgeAPI::Internal::Type::BaseModel
16
+ def self.validate!: (SurgeAPI::request_opts opts) -> void
17
+
18
+ attr_accessor idempotency_key: String?
19
+
20
+ attr_accessor extra_query: ::Hash[String, (::Array[String] | String)?]?
21
+
22
+ attr_accessor extra_headers: ::Hash[String, String?]?
23
+
24
+ attr_accessor extra_body: top?
25
+
26
+ attr_accessor max_retries: Integer?
27
+
28
+ attr_accessor timeout: Float?
29
+
30
+ def initialize: (
31
+ ?SurgeAPI::request_options | ::Hash[Symbol, top] values
32
+ ) -> void
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Accounts
4
+ def create: (
5
+ name: String,
6
+ ?brand_name: String?,
7
+ ?organization: SurgeAPI::AccountCreateParams::Organization,
8
+ ?time_zone: String,
9
+ ?request_options: SurgeAPI::request_opts
10
+ ) -> SurgeAPI::Account
11
+
12
+ def update: (
13
+ String id,
14
+ ?brand_name: String,
15
+ ?name: String,
16
+ ?organization: SurgeAPI::AccountUpdateParams::Organization,
17
+ ?time_zone: String?,
18
+ ?request_options: SurgeAPI::request_opts
19
+ ) -> SurgeAPI::Account
20
+
21
+ def retrieve_status: (
22
+ String account_id,
23
+ ?capabilities: ::Array[SurgeAPI::Models::AccountRetrieveStatusParams::capability],
24
+ ?request_options: SurgeAPI::request_opts
25
+ ) -> SurgeAPI::AccountStatus
26
+
27
+ def initialize: (client: SurgeAPI::Client) -> void
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Blasts
4
+ def create: (
5
+ String account_id,
6
+ ?attachments: ::Array[SurgeAPI::BlastCreateParams::Attachment],
7
+ ?body: String,
8
+ ?contacts: ::Array[String],
9
+ ?name: String,
10
+ ?segments: ::Array[String],
11
+ ?send_at: Time,
12
+ ?to: ::Array[String],
13
+ ?request_options: SurgeAPI::request_opts
14
+ ) -> SurgeAPI::Blast
15
+
16
+ def initialize: (client: SurgeAPI::Client) -> void
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Campaigns
4
+ def create: (
5
+ String account_id,
6
+ consent_flow: String,
7
+ description: String,
8
+ message_samples: ::Array[String],
9
+ privacy_policy_url: String,
10
+ use_cases: ::Array[SurgeAPI::Models::CampaignCreateParams::use_case],
11
+ volume: SurgeAPI::Models::CampaignCreateParams::volume,
12
+ ?includes: ::Array[SurgeAPI::Models::CampaignCreateParams::include_],
13
+ ?link_sample: String,
14
+ ?terms_and_conditions_url: String,
15
+ ?request_options: SurgeAPI::request_opts
16
+ ) -> SurgeAPI::Campaign
17
+
18
+ def initialize: (client: SurgeAPI::Client) -> void
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Contacts
4
+ def create: (
5
+ String account_id,
6
+ phone_number: String,
7
+ ?email: String,
8
+ ?first_name: String,
9
+ ?last_name: String,
10
+ ?metadata: ::Hash[Symbol, String],
11
+ ?request_options: SurgeAPI::request_opts
12
+ ) -> SurgeAPI::Contact
13
+
14
+ def retrieve: (
15
+ String id,
16
+ ?request_options: SurgeAPI::request_opts
17
+ ) -> SurgeAPI::Contact
18
+
19
+ def update: (
20
+ String id,
21
+ phone_number: String,
22
+ ?email: String,
23
+ ?first_name: String,
24
+ ?last_name: String,
25
+ ?metadata: ::Hash[Symbol, String],
26
+ ?request_options: SurgeAPI::request_opts
27
+ ) -> SurgeAPI::Contact
28
+
29
+ def initialize: (client: SurgeAPI::Client) -> void
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Messages
4
+ def create: (
5
+ String account_id,
6
+ conversation: SurgeAPI::MessageCreateParams::Conversation,
7
+ to: String,
8
+ ?attachments: ::Array[SurgeAPI::MessageCreateParams::Attachment],
9
+ ?body: String,
10
+ ?send_at: Time,
11
+ ?from: String,
12
+ ?request_options: SurgeAPI::request_opts
13
+ ) -> SurgeAPI::Message
14
+
15
+ def initialize: (client: SurgeAPI::Client) -> void
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class PhoneNumbers
4
+ def purchase: (
5
+ String account_id,
6
+ ?area_code: String,
7
+ ?latitude: Float,
8
+ ?longitude: Float,
9
+ ?type: SurgeAPI::Models::PhoneNumberPurchaseParams::type_,
10
+ ?request_options: SurgeAPI::request_opts
11
+ ) -> SurgeAPI::PhoneNumber
12
+
13
+ def initialize: (client: SurgeAPI::Client) -> void
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,36 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Users
4
+ def create: (
5
+ String account_id,
6
+ first_name: String,
7
+ ?last_name: String,
8
+ ?metadata: ::Hash[Symbol, String],
9
+ ?photo_url: String,
10
+ ?request_options: SurgeAPI::request_opts
11
+ ) -> SurgeAPI::User
12
+
13
+ def retrieve: (
14
+ String id,
15
+ ?request_options: SurgeAPI::request_opts
16
+ ) -> SurgeAPI::User
17
+
18
+ def update: (
19
+ String id,
20
+ first_name: String,
21
+ ?last_name: String,
22
+ ?metadata: ::Hash[Symbol, String],
23
+ ?photo_url: String,
24
+ ?request_options: SurgeAPI::request_opts
25
+ ) -> SurgeAPI::User
26
+
27
+ def create_token: (
28
+ String user_id,
29
+ ?duration_seconds: Integer,
30
+ ?request_options: SurgeAPI::request_opts
31
+ ) -> SurgeAPI::UserTokenResponse
32
+
33
+ def initialize: (client: SurgeAPI::Client) -> void
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,18 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Verifications
4
+ def create: (
5
+ phone_number: String,
6
+ ?request_options: SurgeAPI::request_opts
7
+ ) -> SurgeAPI::Verification
8
+
9
+ def check: (
10
+ String id,
11
+ code: String,
12
+ ?request_options: SurgeAPI::request_opts
13
+ ) -> SurgeAPI::VerificationCheck
14
+
15
+ def initialize: (client: SurgeAPI::Client) -> void
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module SurgeAPI
2
+ module Resources
3
+ class Webhooks
4
+ def unwrap: (
5
+ String payload
6
+ ) -> (SurgeAPI::CallEndedWebhookEvent
7
+ | SurgeAPI::CampaignApprovedWebhookEvent
8
+ | SurgeAPI::ConversationCreatedWebhookEvent
9
+ | SurgeAPI::MessageDeliveredWebhookEvent
10
+ | SurgeAPI::MessageFailedWebhookEvent
11
+ | SurgeAPI::MessageReceivedWebhookEvent
12
+ | SurgeAPI::MessageSentWebhookEvent)
13
+
14
+ def initialize: (client: SurgeAPI::Client) -> void
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,3 @@
1
+ module SurgeAPI
2
+ VERSION: String
3
+ end