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,96 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class AccountRetrieveStatusParams < 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(
12
+ SurgeAPI::AccountRetrieveStatusParams,
13
+ SurgeAPI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # capabilities about which to check the status
18
+ sig do
19
+ returns(
20
+ T.nilable(
21
+ T::Array[
22
+ SurgeAPI::AccountRetrieveStatusParams::Capability::OrSymbol
23
+ ]
24
+ )
25
+ )
26
+ end
27
+ attr_reader :capabilities
28
+
29
+ sig do
30
+ params(
31
+ capabilities:
32
+ T::Array[
33
+ SurgeAPI::AccountRetrieveStatusParams::Capability::OrSymbol
34
+ ]
35
+ ).void
36
+ end
37
+ attr_writer :capabilities
38
+
39
+ sig do
40
+ params(
41
+ capabilities:
42
+ T::Array[
43
+ SurgeAPI::AccountRetrieveStatusParams::Capability::OrSymbol
44
+ ],
45
+ request_options: SurgeAPI::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # capabilities about which to check the status
50
+ capabilities: nil,
51
+ request_options: {}
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {
58
+ capabilities:
59
+ T::Array[
60
+ SurgeAPI::AccountRetrieveStatusParams::Capability::OrSymbol
61
+ ],
62
+ request_options: SurgeAPI::RequestOptions
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+
69
+ module Capability
70
+ extend SurgeAPI::Internal::Type::Enum
71
+
72
+ TaggedSymbol =
73
+ T.type_alias do
74
+ T.all(Symbol, SurgeAPI::AccountRetrieveStatusParams::Capability)
75
+ end
76
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
77
+
78
+ LOCAL_MESSAGING =
79
+ T.let(
80
+ :local_messaging,
81
+ SurgeAPI::AccountRetrieveStatusParams::Capability::TaggedSymbol
82
+ )
83
+
84
+ sig do
85
+ override.returns(
86
+ T::Array[
87
+ SurgeAPI::AccountRetrieveStatusParams::Capability::TaggedSymbol
88
+ ]
89
+ )
90
+ end
91
+ def self.values
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,185 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class AccountStatus < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(SurgeAPI::AccountStatus, SurgeAPI::Internal::AnyHash)
9
+ end
10
+
11
+ # An object where the fields are the capabilities passed in the `capabilities`
12
+ # query param, as in `local_messaging`.
13
+ sig { returns(T::Hash[Symbol, SurgeAPI::AccountStatus::Capability]) }
14
+ attr_accessor :capabilities
15
+
16
+ # Response containing account status information
17
+ sig do
18
+ params(
19
+ capabilities:
20
+ T::Hash[Symbol, SurgeAPI::AccountStatus::Capability::OrHash]
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(
24
+ # An object where the fields are the capabilities passed in the `capabilities`
25
+ # query param, as in `local_messaging`.
26
+ capabilities:
27
+ )
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { capabilities: T::Hash[Symbol, SurgeAPI::AccountStatus::Capability] }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+
38
+ class Capability < SurgeAPI::Internal::Type::BaseModel
39
+ OrHash =
40
+ T.type_alias do
41
+ T.any(
42
+ SurgeAPI::AccountStatus::Capability,
43
+ SurgeAPI::Internal::AnyHash
44
+ )
45
+ end
46
+
47
+ # A list of errors that will need corrected before capability is available to
48
+ # account.
49
+ sig { returns(T::Array[SurgeAPI::AccountStatus::Capability::Error]) }
50
+ attr_accessor :errors
51
+
52
+ # A list of missing fields that are required for the capability. Nested field
53
+ # names are dot-delimited, as in `organization.address.region`.
54
+ sig { returns(T::Array[String]) }
55
+ attr_accessor :fields_needed
56
+
57
+ # Whether the account is ready for the capability, has errors that need corrected,
58
+ # or is incomplete and requires missing data. If account has both missing and
59
+ # invalid fields, `error` will be preferred over `incomplete`.
60
+ sig do
61
+ returns(SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol)
62
+ end
63
+ attr_accessor :status
64
+
65
+ sig do
66
+ params(
67
+ errors:
68
+ T::Array[SurgeAPI::AccountStatus::Capability::Error::OrHash],
69
+ fields_needed: T::Array[String],
70
+ status: SurgeAPI::AccountStatus::Capability::Status::OrSymbol
71
+ ).returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+ # A list of errors that will need corrected before capability is available to
75
+ # account.
76
+ errors:,
77
+ # A list of missing fields that are required for the capability. Nested field
78
+ # names are dot-delimited, as in `organization.address.region`.
79
+ fields_needed:,
80
+ # Whether the account is ready for the capability, has errors that need corrected,
81
+ # or is incomplete and requires missing data. If account has both missing and
82
+ # invalid fields, `error` will be preferred over `incomplete`.
83
+ status:
84
+ )
85
+ end
86
+
87
+ sig do
88
+ override.returns(
89
+ {
90
+ errors: T::Array[SurgeAPI::AccountStatus::Capability::Error],
91
+ fields_needed: T::Array[String],
92
+ status: SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol
93
+ }
94
+ )
95
+ end
96
+ def to_hash
97
+ end
98
+
99
+ class Error < SurgeAPI::Internal::Type::BaseModel
100
+ OrHash =
101
+ T.type_alias do
102
+ T.any(
103
+ SurgeAPI::AccountStatus::Capability::Error,
104
+ SurgeAPI::Internal::AnyHash
105
+ )
106
+ end
107
+
108
+ # A dot-delimited string representing the field that has an error, as in
109
+ # `organization.contact.phone_number`.
110
+ sig { returns(String) }
111
+ attr_accessor :field
112
+
113
+ # A human-readable string explaining the error.
114
+ sig { returns(String) }
115
+ attr_accessor :message
116
+
117
+ # A slug for the error type
118
+ sig { returns(String) }
119
+ attr_accessor :type
120
+
121
+ sig do
122
+ params(field: String, message: String, type: String).returns(
123
+ T.attached_class
124
+ )
125
+ end
126
+ def self.new(
127
+ # A dot-delimited string representing the field that has an error, as in
128
+ # `organization.contact.phone_number`.
129
+ field:,
130
+ # A human-readable string explaining the error.
131
+ message:,
132
+ # A slug for the error type
133
+ type:
134
+ )
135
+ end
136
+
137
+ sig do
138
+ override.returns({ field: String, message: String, type: String })
139
+ end
140
+ def to_hash
141
+ end
142
+ end
143
+
144
+ # Whether the account is ready for the capability, has errors that need corrected,
145
+ # or is incomplete and requires missing data. If account has both missing and
146
+ # invalid fields, `error` will be preferred over `incomplete`.
147
+ module Status
148
+ extend SurgeAPI::Internal::Type::Enum
149
+
150
+ TaggedSymbol =
151
+ T.type_alias do
152
+ T.all(Symbol, SurgeAPI::AccountStatus::Capability::Status)
153
+ end
154
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
155
+
156
+ ERROR =
157
+ T.let(
158
+ :error,
159
+ SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol
160
+ )
161
+ INCOMPLETE =
162
+ T.let(
163
+ :incomplete,
164
+ SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol
165
+ )
166
+ READY =
167
+ T.let(
168
+ :ready,
169
+ SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol
170
+ )
171
+
172
+ sig do
173
+ override.returns(
174
+ T::Array[
175
+ SurgeAPI::AccountStatus::Capability::Status::TaggedSymbol
176
+ ]
177
+ )
178
+ end
179
+ def self.values
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end
185
+ end