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,72 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class PhoneNumber < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(SurgeAPI::PhoneNumber, SurgeAPI::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for the phone number
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # The phone number in E.164 format
16
+ sig { returns(String) }
17
+ attr_accessor :number
18
+
19
+ # Whether the phone number is local, toll-free, or short code
20
+ sig { returns(SurgeAPI::PhoneNumber::Type::TaggedSymbol) }
21
+ attr_accessor :type
22
+
23
+ # A phone number that can be used to send and receive messages and calls
24
+ sig do
25
+ params(
26
+ id: String,
27
+ number: String,
28
+ type: SurgeAPI::PhoneNumber::Type::OrSymbol
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # Unique identifier for the phone number
33
+ id:,
34
+ # The phone number in E.164 format
35
+ number:,
36
+ # Whether the phone number is local, toll-free, or short code
37
+ type:
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {
44
+ id: String,
45
+ number: String,
46
+ type: SurgeAPI::PhoneNumber::Type::TaggedSymbol
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+
53
+ # Whether the phone number is local, toll-free, or short code
54
+ module Type
55
+ extend SurgeAPI::Internal::Type::Enum
56
+
57
+ TaggedSymbol =
58
+ T.type_alias { T.all(Symbol, SurgeAPI::PhoneNumber::Type) }
59
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
60
+
61
+ LOCAL = T.let(:local, SurgeAPI::PhoneNumber::Type::TaggedSymbol)
62
+ TOLL_FREE = T.let(:toll_free, SurgeAPI::PhoneNumber::Type::TaggedSymbol)
63
+
64
+ sig do
65
+ override.returns(T::Array[SurgeAPI::PhoneNumber::Type::TaggedSymbol])
66
+ end
67
+ def self.values
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,122 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class PhoneNumberPurchaseParams < 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::PhoneNumberPurchaseParams,
13
+ SurgeAPI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The desired area code for this phone number. If provided without type, the type
18
+ # will be inferred.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :area_code
21
+
22
+ sig { params(area_code: String).void }
23
+ attr_writer :area_code
24
+
25
+ # Latitude to search for nearby phone numbers. Must be used with longitude. If
26
+ # provided without type, type will be inferred as 'local'.
27
+ sig { returns(T.nilable(Float)) }
28
+ attr_reader :latitude
29
+
30
+ sig { params(latitude: Float).void }
31
+ attr_writer :latitude
32
+
33
+ # Longitude to search for nearby phone numbers. Must be used with latitude. If
34
+ # provided without type, type will be inferred as 'local'.
35
+ sig { returns(T.nilable(Float)) }
36
+ attr_reader :longitude
37
+
38
+ sig { params(longitude: Float).void }
39
+ attr_writer :longitude
40
+
41
+ # Whether the phone number is local or toll-free. Can be omitted if area_code or
42
+ # latitude/longitude are provided.
43
+ sig do
44
+ returns(T.nilable(SurgeAPI::PhoneNumberPurchaseParams::Type::OrSymbol))
45
+ end
46
+ attr_reader :type
47
+
48
+ sig do
49
+ params(type: SurgeAPI::PhoneNumberPurchaseParams::Type::OrSymbol).void
50
+ end
51
+ attr_writer :type
52
+
53
+ sig do
54
+ params(
55
+ area_code: String,
56
+ latitude: Float,
57
+ longitude: Float,
58
+ type: SurgeAPI::PhoneNumberPurchaseParams::Type::OrSymbol,
59
+ request_options: SurgeAPI::RequestOptions::OrHash
60
+ ).returns(T.attached_class)
61
+ end
62
+ def self.new(
63
+ # The desired area code for this phone number. If provided without type, the type
64
+ # will be inferred.
65
+ area_code: nil,
66
+ # Latitude to search for nearby phone numbers. Must be used with longitude. If
67
+ # provided without type, type will be inferred as 'local'.
68
+ latitude: nil,
69
+ # Longitude to search for nearby phone numbers. Must be used with latitude. If
70
+ # provided without type, type will be inferred as 'local'.
71
+ longitude: nil,
72
+ # Whether the phone number is local or toll-free. Can be omitted if area_code or
73
+ # latitude/longitude are provided.
74
+ type: nil,
75
+ request_options: {}
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ area_code: String,
83
+ latitude: Float,
84
+ longitude: Float,
85
+ type: SurgeAPI::PhoneNumberPurchaseParams::Type::OrSymbol,
86
+ request_options: SurgeAPI::RequestOptions
87
+ }
88
+ )
89
+ end
90
+ def to_hash
91
+ end
92
+
93
+ # Whether the phone number is local or toll-free. Can be omitted if area_code or
94
+ # latitude/longitude are provided.
95
+ module Type
96
+ extend SurgeAPI::Internal::Type::Enum
97
+
98
+ TaggedSymbol =
99
+ T.type_alias do
100
+ T.all(Symbol, SurgeAPI::PhoneNumberPurchaseParams::Type)
101
+ end
102
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
103
+
104
+ LOCAL =
105
+ T.let(:local, SurgeAPI::PhoneNumberPurchaseParams::Type::TaggedSymbol)
106
+ TOLL_FREE =
107
+ T.let(
108
+ :toll_free,
109
+ SurgeAPI::PhoneNumberPurchaseParams::Type::TaggedSymbol
110
+ )
111
+
112
+ sig do
113
+ override.returns(
114
+ T::Array[SurgeAPI::PhoneNumberPurchaseParams::Type::TaggedSymbol]
115
+ )
116
+ end
117
+ def self.values
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,26 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ module UnwrapWebhookEvent
6
+ extend SurgeAPI::Internal::Type::Union
7
+
8
+ Variants =
9
+ T.type_alias do
10
+ T.any(
11
+ SurgeAPI::CallEndedWebhookEvent,
12
+ SurgeAPI::CampaignApprovedWebhookEvent,
13
+ SurgeAPI::ConversationCreatedWebhookEvent,
14
+ SurgeAPI::MessageDeliveredWebhookEvent,
15
+ SurgeAPI::MessageFailedWebhookEvent,
16
+ SurgeAPI::MessageReceivedWebhookEvent,
17
+ SurgeAPI::MessageSentWebhookEvent
18
+ )
19
+ end
20
+
21
+ sig { override.returns(T::Array[SurgeAPI::UnwrapWebhookEvent::Variants]) }
22
+ def self.variants
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,80 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class User < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(SurgeAPI::User, SurgeAPI::Internal::AnyHash) }
8
+
9
+ # The user's first name.
10
+ sig { returns(String) }
11
+ attr_accessor :first_name
12
+
13
+ # Unique identifier for the object.
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :id
16
+
17
+ sig { params(id: String).void }
18
+ attr_writer :id
19
+
20
+ # The user's last name.
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :last_name
23
+
24
+ sig { params(last_name: String).void }
25
+ attr_writer :last_name
26
+
27
+ # Set of key-value pairs that will be stored with the object.
28
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
29
+ attr_reader :metadata
30
+
31
+ sig { params(metadata: T::Hash[Symbol, String]).void }
32
+ attr_writer :metadata
33
+
34
+ # URL of a photo to be used as the user's avatar.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :photo_url
37
+
38
+ sig { params(photo_url: String).void }
39
+ attr_writer :photo_url
40
+
41
+ # A user of the app
42
+ sig do
43
+ params(
44
+ first_name: String,
45
+ id: String,
46
+ last_name: String,
47
+ metadata: T::Hash[Symbol, String],
48
+ photo_url: String
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ # The user's first name.
53
+ first_name:,
54
+ # Unique identifier for the object.
55
+ id: nil,
56
+ # The user's last name.
57
+ last_name: nil,
58
+ # Set of key-value pairs that will be stored with the object.
59
+ metadata: nil,
60
+ # URL of a photo to be used as the user's avatar.
61
+ photo_url: nil
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ first_name: String,
69
+ id: String,
70
+ last_name: String,
71
+ metadata: T::Hash[Symbol, String],
72
+ photo_url: String
73
+ }
74
+ )
75
+ end
76
+ def to_hash
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class UserCreateParams < SurgeAPI::Internal::Type::BaseModel
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(SurgeAPI::UserCreateParams, SurgeAPI::Internal::AnyHash)
12
+ end
13
+
14
+ # The user's first name.
15
+ sig { returns(String) }
16
+ attr_accessor :first_name
17
+
18
+ # The user's last name.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :last_name
21
+
22
+ sig { params(last_name: String).void }
23
+ attr_writer :last_name
24
+
25
+ # Set of key-value pairs that will be stored with the object.
26
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
27
+ attr_reader :metadata
28
+
29
+ sig { params(metadata: T::Hash[Symbol, String]).void }
30
+ attr_writer :metadata
31
+
32
+ # URL of a photo to be used as the user's avatar.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :photo_url
35
+
36
+ sig { params(photo_url: String).void }
37
+ attr_writer :photo_url
38
+
39
+ sig do
40
+ params(
41
+ first_name: String,
42
+ last_name: String,
43
+ metadata: T::Hash[Symbol, String],
44
+ photo_url: String,
45
+ request_options: SurgeAPI::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # The user's first name.
50
+ first_name:,
51
+ # The user's last name.
52
+ last_name: nil,
53
+ # Set of key-value pairs that will be stored with the object.
54
+ metadata: nil,
55
+ # URL of a photo to be used as the user's avatar.
56
+ photo_url: nil,
57
+ request_options: {}
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ first_name: String,
65
+ last_name: String,
66
+ metadata: T::Hash[Symbol, String],
67
+ photo_url: String,
68
+ request_options: SurgeAPI::RequestOptions
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class UserCreateTokenParams < SurgeAPI::Internal::Type::BaseModel
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(SurgeAPI::UserCreateTokenParams, SurgeAPI::Internal::AnyHash)
12
+ end
13
+
14
+ # For how many seconds the token should be accepted. Defaults to 15 minutes.
15
+ sig { returns(T.nilable(Integer)) }
16
+ attr_reader :duration_seconds
17
+
18
+ sig { params(duration_seconds: Integer).void }
19
+ attr_writer :duration_seconds
20
+
21
+ sig do
22
+ params(
23
+ duration_seconds: Integer,
24
+ request_options: SurgeAPI::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # For how many seconds the token should be accepted. Defaults to 15 minutes.
29
+ duration_seconds: nil,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ duration_seconds: Integer,
38
+ request_options: SurgeAPI::RequestOptions
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class UserRetrieveParams < SurgeAPI::Internal::Type::BaseModel
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(SurgeAPI::UserRetrieveParams, SurgeAPI::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: SurgeAPI::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: SurgeAPI::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class UserTokenResponse < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(SurgeAPI::UserTokenResponse, SurgeAPI::Internal::AnyHash)
9
+ end
10
+
11
+ # The created token.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :token
14
+
15
+ sig { params(token: String).void }
16
+ attr_writer :token
17
+
18
+ # Response when token has been created successfully
19
+ sig { params(token: String).returns(T.attached_class) }
20
+ def self.new(
21
+ # The created token.
22
+ token: nil
23
+ )
24
+ end
25
+
26
+ sig { override.returns({ token: String }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class UserUpdateParams < SurgeAPI::Internal::Type::BaseModel
6
+ extend SurgeAPI::Internal::Type::RequestParameters::Converter
7
+ include SurgeAPI::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(SurgeAPI::UserUpdateParams, SurgeAPI::Internal::AnyHash)
12
+ end
13
+
14
+ # The user's first name.
15
+ sig { returns(String) }
16
+ attr_accessor :first_name
17
+
18
+ # The user's last name.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :last_name
21
+
22
+ sig { params(last_name: String).void }
23
+ attr_writer :last_name
24
+
25
+ # Set of key-value pairs that will be stored with the object.
26
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
27
+ attr_reader :metadata
28
+
29
+ sig { params(metadata: T::Hash[Symbol, String]).void }
30
+ attr_writer :metadata
31
+
32
+ # URL of a photo to be used as the user's avatar.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :photo_url
35
+
36
+ sig { params(photo_url: String).void }
37
+ attr_writer :photo_url
38
+
39
+ sig do
40
+ params(
41
+ first_name: String,
42
+ last_name: String,
43
+ metadata: T::Hash[Symbol, String],
44
+ photo_url: String,
45
+ request_options: SurgeAPI::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # The user's first name.
50
+ first_name:,
51
+ # The user's last name.
52
+ last_name: nil,
53
+ # Set of key-value pairs that will be stored with the object.
54
+ metadata: nil,
55
+ # URL of a photo to be used as the user's avatar.
56
+ photo_url: nil,
57
+ request_options: {}
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ first_name: String,
65
+ last_name: String,
66
+ metadata: T::Hash[Symbol, String],
67
+ photo_url: String,
68
+ request_options: SurgeAPI::RequestOptions
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,86 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class Verification < SurgeAPI::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(SurgeAPI::Verification, SurgeAPI::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for the object.
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # The number of times the code has been attempted.
16
+ sig { returns(Integer) }
17
+ attr_accessor :attempt_count
18
+
19
+ # The phone number being verified. In E.164 format.
20
+ sig { returns(String) }
21
+ attr_accessor :phone_number
22
+
23
+ # The current status of the verification.
24
+ sig { returns(SurgeAPI::Verification::Status::TaggedSymbol) }
25
+ attr_accessor :status
26
+
27
+ # A phone number verification
28
+ sig do
29
+ params(
30
+ id: String,
31
+ attempt_count: Integer,
32
+ phone_number: String,
33
+ status: SurgeAPI::Verification::Status::OrSymbol
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(
37
+ # Unique identifier for the object.
38
+ id:,
39
+ # The number of times the code has been attempted.
40
+ attempt_count:,
41
+ # The phone number being verified. In E.164 format.
42
+ phone_number:,
43
+ # The current status of the verification.
44
+ status:
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ id: String,
52
+ attempt_count: Integer,
53
+ phone_number: String,
54
+ status: SurgeAPI::Verification::Status::TaggedSymbol
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ # The current status of the verification.
62
+ module Status
63
+ extend SurgeAPI::Internal::Type::Enum
64
+
65
+ TaggedSymbol =
66
+ T.type_alias { T.all(Symbol, SurgeAPI::Verification::Status) }
67
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
68
+
69
+ PENDING = T.let(:pending, SurgeAPI::Verification::Status::TaggedSymbol)
70
+ VERIFIED =
71
+ T.let(:verified, SurgeAPI::Verification::Status::TaggedSymbol)
72
+ EXHAUSTED =
73
+ T.let(:exhausted, SurgeAPI::Verification::Status::TaggedSymbol)
74
+ EXPIRED = T.let(:expired, SurgeAPI::Verification::Status::TaggedSymbol)
75
+
76
+ sig do
77
+ override.returns(
78
+ T::Array[SurgeAPI::Verification::Status::TaggedSymbol]
79
+ )
80
+ end
81
+ def self.values
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end