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,1104 @@
1
+ # typed: strong
2
+
3
+ module SurgeAPI
4
+ module Models
5
+ class AccountCreateParams < 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::AccountCreateParams, SurgeAPI::Internal::AnyHash)
12
+ end
13
+
14
+ # The name of the account that will be visible for your internal organizational
15
+ # purposes. This will also be the default public-facing brand name unless you also
16
+ # set a `brand_name`, but otherwise the account name will never be displayed
17
+ # anywhere outside of Surge HQ, and may include your ID for the account or
18
+ # anything else that may help you.
19
+ sig { returns(String) }
20
+ attr_accessor :name
21
+
22
+ # The name by which the people this account communicates with know it. If not
23
+ # provided, this will match the name field.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :brand_name
26
+
27
+ # Parameters describing the legal entity on whose behalf the account will be
28
+ # operated.
29
+ sig { returns(T.nilable(SurgeAPI::AccountCreateParams::Organization)) }
30
+ attr_reader :organization
31
+
32
+ sig do
33
+ params(
34
+ organization: SurgeAPI::AccountCreateParams::Organization::OrHash
35
+ ).void
36
+ end
37
+ attr_writer :organization
38
+
39
+ # This is the time zone in which the account is headquartered. This time zone may
40
+ # be used for compliance with TCPA restrictions on when messages may be sent.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_reader :time_zone
43
+
44
+ sig { params(time_zone: String).void }
45
+ attr_writer :time_zone
46
+
47
+ sig do
48
+ params(
49
+ name: String,
50
+ brand_name: T.nilable(String),
51
+ organization: SurgeAPI::AccountCreateParams::Organization::OrHash,
52
+ time_zone: String,
53
+ request_options: SurgeAPI::RequestOptions::OrHash
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ # The name of the account that will be visible for your internal organizational
58
+ # purposes. This will also be the default public-facing brand name unless you also
59
+ # set a `brand_name`, but otherwise the account name will never be displayed
60
+ # anywhere outside of Surge HQ, and may include your ID for the account or
61
+ # anything else that may help you.
62
+ name:,
63
+ # The name by which the people this account communicates with know it. If not
64
+ # provided, this will match the name field.
65
+ brand_name: nil,
66
+ # Parameters describing the legal entity on whose behalf the account will be
67
+ # operated.
68
+ organization: nil,
69
+ # This is the time zone in which the account is headquartered. This time zone may
70
+ # be used for compliance with TCPA restrictions on when messages may be sent.
71
+ time_zone: nil,
72
+ request_options: {}
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ name: String,
80
+ brand_name: T.nilable(String),
81
+ organization: SurgeAPI::AccountCreateParams::Organization,
82
+ time_zone: String,
83
+ request_options: SurgeAPI::RequestOptions
84
+ }
85
+ )
86
+ end
87
+ def to_hash
88
+ end
89
+
90
+ class Organization < SurgeAPI::Internal::Type::BaseModel
91
+ OrHash =
92
+ T.type_alias do
93
+ T.any(
94
+ SurgeAPI::AccountCreateParams::Organization,
95
+ SurgeAPI::Internal::AnyHash
96
+ )
97
+ end
98
+
99
+ # The address of the organization's headquarters.
100
+ sig do
101
+ returns(
102
+ T.nilable(SurgeAPI::AccountCreateParams::Organization::Address)
103
+ )
104
+ end
105
+ attr_reader :address
106
+
107
+ sig do
108
+ params(
109
+ address:
110
+ SurgeAPI::AccountCreateParams::Organization::Address::OrHash
111
+ ).void
112
+ end
113
+ attr_writer :address
114
+
115
+ # An object representing an individual who can be contacted if the carriers have
116
+ # any questions about the business.
117
+ sig do
118
+ returns(
119
+ T.nilable(SurgeAPI::AccountCreateParams::Organization::Contact)
120
+ )
121
+ end
122
+ attr_reader :contact
123
+
124
+ sig do
125
+ params(
126
+ contact:
127
+ T.nilable(
128
+ SurgeAPI::AccountCreateParams::Organization::Contact::OrHash
129
+ )
130
+ ).void
131
+ end
132
+ attr_writer :contact
133
+
134
+ # The two character ISO 3166 country code for the country in which the
135
+ # organization is headquartered.
136
+ sig { returns(T.nilable(String)) }
137
+ attr_accessor :country
138
+
139
+ # For publicly traded companies, an email for a representative of the company to
140
+ # whom a verification email will be sent. This must be an email on the same domain
141
+ # as the company's website (e.g. with a website domain of
142
+ # `https://dtprecisionauto.com`, the email must use the same
143
+ # `@dtprecisionauto.com`)
144
+ sig { returns(T.nilable(String)) }
145
+ attr_accessor :email
146
+
147
+ # The value of the identifier whose type is specified in the identifier_type
148
+ # field. Typically this will be an EIN, and can be formatted with or without the
149
+ # hyphen.
150
+ sig { returns(T.nilable(String)) }
151
+ attr_accessor :identifier
152
+
153
+ # The type of identifier being provided for the organization. Support for more
154
+ # values will be added in the future.
155
+ sig do
156
+ returns(
157
+ T.nilable(
158
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::OrSymbol
159
+ )
160
+ )
161
+ end
162
+ attr_accessor :identifier_type
163
+
164
+ # The industry in which the organization operates.
165
+ sig do
166
+ returns(
167
+ T.nilable(
168
+ SurgeAPI::AccountCreateParams::Organization::Industry::OrSymbol
169
+ )
170
+ )
171
+ end
172
+ attr_accessor :industry
173
+
174
+ # For sole proprietors, this must be a valid US mobile phone number to which a
175
+ # verification text message will be sent. (E.164 format)
176
+ sig { returns(T.nilable(String)) }
177
+ attr_accessor :mobile_number
178
+
179
+ # An array of regions in which the organization operates.
180
+ sig do
181
+ returns(
182
+ T.nilable(
183
+ T::Array[
184
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::OrSymbol
185
+ ]
186
+ )
187
+ )
188
+ end
189
+ attr_accessor :regions_of_operation
190
+
191
+ # The legal name of the organization as registered with the IRS or other relevant
192
+ # authorities. For some applications, this will be matched against government
193
+ # records and should include all punctuation and everything else as well.
194
+ sig { returns(T.nilable(String)) }
195
+ attr_accessor :registered_name
196
+
197
+ # For publicly traded companies, this is the exchange on which the company's stock
198
+ # is traded.
199
+ sig do
200
+ returns(
201
+ T.nilable(
202
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::OrSymbol
203
+ )
204
+ )
205
+ end
206
+ attr_accessor :stock_exchange
207
+
208
+ # For publicly traded companies, the ticker symbol for the company's stock
209
+ sig { returns(T.nilable(String)) }
210
+ attr_accessor :stock_symbol
211
+
212
+ # The type of organization
213
+ sig do
214
+ returns(
215
+ T.nilable(
216
+ SurgeAPI::AccountCreateParams::Organization::Type::OrSymbol
217
+ )
218
+ )
219
+ end
220
+ attr_accessor :type
221
+
222
+ # The URL of the website for this organization. The website should be publicly
223
+ # available, clearly reflect the organization's purpose, and the URL should start
224
+ # with `https://`
225
+ sig { returns(T.nilable(String)) }
226
+ attr_accessor :website
227
+
228
+ # Parameters describing the legal entity on whose behalf the account will be
229
+ # operated.
230
+ sig do
231
+ params(
232
+ address:
233
+ SurgeAPI::AccountCreateParams::Organization::Address::OrHash,
234
+ contact:
235
+ T.nilable(
236
+ SurgeAPI::AccountCreateParams::Organization::Contact::OrHash
237
+ ),
238
+ country: T.nilable(String),
239
+ email: T.nilable(String),
240
+ identifier: T.nilable(String),
241
+ identifier_type:
242
+ T.nilable(
243
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::OrSymbol
244
+ ),
245
+ industry:
246
+ T.nilable(
247
+ SurgeAPI::AccountCreateParams::Organization::Industry::OrSymbol
248
+ ),
249
+ mobile_number: T.nilable(String),
250
+ regions_of_operation:
251
+ T.nilable(
252
+ T::Array[
253
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::OrSymbol
254
+ ]
255
+ ),
256
+ registered_name: T.nilable(String),
257
+ stock_exchange:
258
+ T.nilable(
259
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::OrSymbol
260
+ ),
261
+ stock_symbol: T.nilable(String),
262
+ type:
263
+ T.nilable(
264
+ SurgeAPI::AccountCreateParams::Organization::Type::OrSymbol
265
+ ),
266
+ website: T.nilable(String)
267
+ ).returns(T.attached_class)
268
+ end
269
+ def self.new(
270
+ # The address of the organization's headquarters.
271
+ address: nil,
272
+ # An object representing an individual who can be contacted if the carriers have
273
+ # any questions about the business.
274
+ contact: nil,
275
+ # The two character ISO 3166 country code for the country in which the
276
+ # organization is headquartered.
277
+ country: nil,
278
+ # For publicly traded companies, an email for a representative of the company to
279
+ # whom a verification email will be sent. This must be an email on the same domain
280
+ # as the company's website (e.g. with a website domain of
281
+ # `https://dtprecisionauto.com`, the email must use the same
282
+ # `@dtprecisionauto.com`)
283
+ email: nil,
284
+ # The value of the identifier whose type is specified in the identifier_type
285
+ # field. Typically this will be an EIN, and can be formatted with or without the
286
+ # hyphen.
287
+ identifier: nil,
288
+ # The type of identifier being provided for the organization. Support for more
289
+ # values will be added in the future.
290
+ identifier_type: nil,
291
+ # The industry in which the organization operates.
292
+ industry: nil,
293
+ # For sole proprietors, this must be a valid US mobile phone number to which a
294
+ # verification text message will be sent. (E.164 format)
295
+ mobile_number: nil,
296
+ # An array of regions in which the organization operates.
297
+ regions_of_operation: nil,
298
+ # The legal name of the organization as registered with the IRS or other relevant
299
+ # authorities. For some applications, this will be matched against government
300
+ # records and should include all punctuation and everything else as well.
301
+ registered_name: nil,
302
+ # For publicly traded companies, this is the exchange on which the company's stock
303
+ # is traded.
304
+ stock_exchange: nil,
305
+ # For publicly traded companies, the ticker symbol for the company's stock
306
+ stock_symbol: nil,
307
+ # The type of organization
308
+ type: nil,
309
+ # The URL of the website for this organization. The website should be publicly
310
+ # available, clearly reflect the organization's purpose, and the URL should start
311
+ # with `https://`
312
+ website: nil
313
+ )
314
+ end
315
+
316
+ sig do
317
+ override.returns(
318
+ {
319
+ address: SurgeAPI::AccountCreateParams::Organization::Address,
320
+ contact:
321
+ T.nilable(SurgeAPI::AccountCreateParams::Organization::Contact),
322
+ country: T.nilable(String),
323
+ email: T.nilable(String),
324
+ identifier: T.nilable(String),
325
+ identifier_type:
326
+ T.nilable(
327
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::OrSymbol
328
+ ),
329
+ industry:
330
+ T.nilable(
331
+ SurgeAPI::AccountCreateParams::Organization::Industry::OrSymbol
332
+ ),
333
+ mobile_number: T.nilable(String),
334
+ regions_of_operation:
335
+ T.nilable(
336
+ T::Array[
337
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::OrSymbol
338
+ ]
339
+ ),
340
+ registered_name: T.nilable(String),
341
+ stock_exchange:
342
+ T.nilable(
343
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::OrSymbol
344
+ ),
345
+ stock_symbol: T.nilable(String),
346
+ type:
347
+ T.nilable(
348
+ SurgeAPI::AccountCreateParams::Organization::Type::OrSymbol
349
+ ),
350
+ website: T.nilable(String)
351
+ }
352
+ )
353
+ end
354
+ def to_hash
355
+ end
356
+
357
+ class Address < SurgeAPI::Internal::Type::BaseModel
358
+ OrHash =
359
+ T.type_alias do
360
+ T.any(
361
+ SurgeAPI::AccountCreateParams::Organization::Address,
362
+ SurgeAPI::Internal::AnyHash
363
+ )
364
+ end
365
+
366
+ # The two character ISO 3166 country code. If none is provided, the organization's
367
+ # country code will be used.
368
+ sig { returns(T.nilable(String)) }
369
+ attr_accessor :country
370
+
371
+ # The first line of the address, typically the number and street name
372
+ sig { returns(T.nilable(String)) }
373
+ attr_accessor :line1
374
+
375
+ # The second line of the address if needed, typically an apartment or suite number
376
+ sig { returns(T.nilable(String)) }
377
+ attr_accessor :line2
378
+
379
+ # The city or locality
380
+ sig { returns(T.nilable(String)) }
381
+ attr_accessor :locality
382
+
383
+ # The name to which any mail should be addressed. If none is provided, this will
384
+ # default to the organization's registered_name
385
+ sig { returns(T.nilable(String)) }
386
+ attr_accessor :name
387
+
388
+ # The postal code
389
+ sig { returns(T.nilable(String)) }
390
+ attr_accessor :postal_code
391
+
392
+ # The state or region
393
+ sig { returns(T.nilable(String)) }
394
+ attr_accessor :region
395
+
396
+ # The address of the organization's headquarters.
397
+ sig do
398
+ params(
399
+ country: T.nilable(String),
400
+ line1: T.nilable(String),
401
+ line2: T.nilable(String),
402
+ locality: T.nilable(String),
403
+ name: T.nilable(String),
404
+ postal_code: T.nilable(String),
405
+ region: T.nilable(String)
406
+ ).returns(T.attached_class)
407
+ end
408
+ def self.new(
409
+ # The two character ISO 3166 country code. If none is provided, the organization's
410
+ # country code will be used.
411
+ country: nil,
412
+ # The first line of the address, typically the number and street name
413
+ line1: nil,
414
+ # The second line of the address if needed, typically an apartment or suite number
415
+ line2: nil,
416
+ # The city or locality
417
+ locality: nil,
418
+ # The name to which any mail should be addressed. If none is provided, this will
419
+ # default to the organization's registered_name
420
+ name: nil,
421
+ # The postal code
422
+ postal_code: nil,
423
+ # The state or region
424
+ region: nil
425
+ )
426
+ end
427
+
428
+ sig do
429
+ override.returns(
430
+ {
431
+ country: T.nilable(String),
432
+ line1: T.nilable(String),
433
+ line2: T.nilable(String),
434
+ locality: T.nilable(String),
435
+ name: T.nilable(String),
436
+ postal_code: T.nilable(String),
437
+ region: T.nilable(String)
438
+ }
439
+ )
440
+ end
441
+ def to_hash
442
+ end
443
+ end
444
+
445
+ class Contact < SurgeAPI::Internal::Type::BaseModel
446
+ OrHash =
447
+ T.type_alias do
448
+ T.any(
449
+ SurgeAPI::AccountCreateParams::Organization::Contact,
450
+ SurgeAPI::Internal::AnyHash
451
+ )
452
+ end
453
+
454
+ # An email address at which the individual can be reached. Typically an email
455
+ # using the same domain name as the website URL will be preferred (e.g. with a
456
+ # website domain of `https://dtprecisionauto.com`, an email like
457
+ # `dom@dtprecisionauto.com` will be preferred over one like
458
+ # `dom@anothergarage.com` or `dom.toretto@gmail.com`)
459
+ sig { returns(T.nilable(String)) }
460
+ attr_accessor :email
461
+
462
+ # The first name (or given name) of the individual
463
+ sig { returns(T.nilable(String)) }
464
+ attr_accessor :first_name
465
+
466
+ # The last name (or family name) of the individual
467
+ sig { returns(T.nilable(String)) }
468
+ attr_accessor :last_name
469
+
470
+ # A phone number at which the individual can be reached (E.164 format)
471
+ sig { returns(T.nilable(String)) }
472
+ attr_accessor :phone_number
473
+
474
+ # The job title of the individual.
475
+ sig do
476
+ returns(
477
+ T.nilable(
478
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::OrSymbol
479
+ )
480
+ )
481
+ end
482
+ attr_accessor :title
483
+
484
+ # If `other` is provided for the `title` field, this field should be used to
485
+ # provide the title of the individual
486
+ sig { returns(T.nilable(String)) }
487
+ attr_accessor :title_other
488
+
489
+ # An object representing an individual who can be contacted if the carriers have
490
+ # any questions about the business.
491
+ sig do
492
+ params(
493
+ email: T.nilable(String),
494
+ first_name: T.nilable(String),
495
+ last_name: T.nilable(String),
496
+ phone_number: T.nilable(String),
497
+ title:
498
+ T.nilable(
499
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::OrSymbol
500
+ ),
501
+ title_other: T.nilable(String)
502
+ ).returns(T.attached_class)
503
+ end
504
+ def self.new(
505
+ # An email address at which the individual can be reached. Typically an email
506
+ # using the same domain name as the website URL will be preferred (e.g. with a
507
+ # website domain of `https://dtprecisionauto.com`, an email like
508
+ # `dom@dtprecisionauto.com` will be preferred over one like
509
+ # `dom@anothergarage.com` or `dom.toretto@gmail.com`)
510
+ email: nil,
511
+ # The first name (or given name) of the individual
512
+ first_name: nil,
513
+ # The last name (or family name) of the individual
514
+ last_name: nil,
515
+ # A phone number at which the individual can be reached (E.164 format)
516
+ phone_number: nil,
517
+ # The job title of the individual.
518
+ title: nil,
519
+ # If `other` is provided for the `title` field, this field should be used to
520
+ # provide the title of the individual
521
+ title_other: nil
522
+ )
523
+ end
524
+
525
+ sig do
526
+ override.returns(
527
+ {
528
+ email: T.nilable(String),
529
+ first_name: T.nilable(String),
530
+ last_name: T.nilable(String),
531
+ phone_number: T.nilable(String),
532
+ title:
533
+ T.nilable(
534
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::OrSymbol
535
+ ),
536
+ title_other: T.nilable(String)
537
+ }
538
+ )
539
+ end
540
+ def to_hash
541
+ end
542
+
543
+ # The job title of the individual.
544
+ module Title
545
+ extend SurgeAPI::Internal::Type::Enum
546
+
547
+ TaggedSymbol =
548
+ T.type_alias do
549
+ T.all(
550
+ Symbol,
551
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title
552
+ )
553
+ end
554
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
555
+
556
+ CEO =
557
+ T.let(
558
+ :ceo,
559
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
560
+ )
561
+ CFO =
562
+ T.let(
563
+ :cfo,
564
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
565
+ )
566
+ DIRECTOR =
567
+ T.let(
568
+ :director,
569
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
570
+ )
571
+ GM =
572
+ T.let(
573
+ :gm,
574
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
575
+ )
576
+ VP =
577
+ T.let(
578
+ :vp,
579
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
580
+ )
581
+ GENERAL_COUNSEL =
582
+ T.let(
583
+ :general_counsel,
584
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
585
+ )
586
+ OTHER =
587
+ T.let(
588
+ :other,
589
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
590
+ )
591
+
592
+ sig do
593
+ override.returns(
594
+ T::Array[
595
+ SurgeAPI::AccountCreateParams::Organization::Contact::Title::TaggedSymbol
596
+ ]
597
+ )
598
+ end
599
+ def self.values
600
+ end
601
+ end
602
+ end
603
+
604
+ # The type of identifier being provided for the organization. Support for more
605
+ # values will be added in the future.
606
+ module IdentifierType
607
+ extend SurgeAPI::Internal::Type::Enum
608
+
609
+ TaggedSymbol =
610
+ T.type_alias do
611
+ T.all(
612
+ Symbol,
613
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType
614
+ )
615
+ end
616
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
617
+
618
+ EIN =
619
+ T.let(
620
+ :ein,
621
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::TaggedSymbol
622
+ )
623
+
624
+ sig do
625
+ override.returns(
626
+ T::Array[
627
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::TaggedSymbol
628
+ ]
629
+ )
630
+ end
631
+ def self.values
632
+ end
633
+ end
634
+
635
+ # The industry in which the organization operates.
636
+ module Industry
637
+ extend SurgeAPI::Internal::Type::Enum
638
+
639
+ TaggedSymbol =
640
+ T.type_alias do
641
+ T.all(
642
+ Symbol,
643
+ SurgeAPI::AccountCreateParams::Organization::Industry
644
+ )
645
+ end
646
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
647
+
648
+ AGRICULTURE =
649
+ T.let(
650
+ :agriculture,
651
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
652
+ )
653
+ AUTOMOTIVE =
654
+ T.let(
655
+ :automotive,
656
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
657
+ )
658
+ BANKING =
659
+ T.let(
660
+ :banking,
661
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
662
+ )
663
+ CONSTRUCTION =
664
+ T.let(
665
+ :construction,
666
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
667
+ )
668
+ CONSUMER =
669
+ T.let(
670
+ :consumer,
671
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
672
+ )
673
+ EDUCATION =
674
+ T.let(
675
+ :education,
676
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
677
+ )
678
+ ELECTRONICS =
679
+ T.let(
680
+ :electronics,
681
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
682
+ )
683
+ ENERGY =
684
+ T.let(
685
+ :energy,
686
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
687
+ )
688
+ ENGINEERING =
689
+ T.let(
690
+ :engineering,
691
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
692
+ )
693
+ FAST_MOVING_CONSUMER_GOODS =
694
+ T.let(
695
+ :fast_moving_consumer_goods,
696
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
697
+ )
698
+ FINANCIAL =
699
+ T.let(
700
+ :financial,
701
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
702
+ )
703
+ FINTECH =
704
+ T.let(
705
+ :fintech,
706
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
707
+ )
708
+ FOOD_AND_BEVERAGE =
709
+ T.let(
710
+ :food_and_beverage,
711
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
712
+ )
713
+ GOVERNMENT =
714
+ T.let(
715
+ :government,
716
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
717
+ )
718
+ HEALTHCARE =
719
+ T.let(
720
+ :healthcare,
721
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
722
+ )
723
+ HOSPITALITY =
724
+ T.let(
725
+ :hospitality,
726
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
727
+ )
728
+ INSURANCE =
729
+ T.let(
730
+ :insurance,
731
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
732
+ )
733
+ JEWELRY =
734
+ T.let(
735
+ :jewelry,
736
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
737
+ )
738
+ LEGAL =
739
+ T.let(
740
+ :legal,
741
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
742
+ )
743
+ MANUFACTURING =
744
+ T.let(
745
+ :manufacturing,
746
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
747
+ )
748
+ MEDIA =
749
+ T.let(
750
+ :media,
751
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
752
+ )
753
+ NOT_FOR_PROFIT =
754
+ T.let(
755
+ :not_for_profit,
756
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
757
+ )
758
+ OIL_AND_GAS =
759
+ T.let(
760
+ :oil_and_gas,
761
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
762
+ )
763
+ ONLINE =
764
+ T.let(
765
+ :online,
766
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
767
+ )
768
+ PROFESSIONAL_SERVICES =
769
+ T.let(
770
+ :professional_services,
771
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
772
+ )
773
+ RAW_MATERIALS =
774
+ T.let(
775
+ :raw_materials,
776
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
777
+ )
778
+ REAL_ESTATE =
779
+ T.let(
780
+ :real_estate,
781
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
782
+ )
783
+ RELIGION =
784
+ T.let(
785
+ :religion,
786
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
787
+ )
788
+ RETAIL =
789
+ T.let(
790
+ :retail,
791
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
792
+ )
793
+ TECHNOLOGY =
794
+ T.let(
795
+ :technology,
796
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
797
+ )
798
+ TELECOMMUNICATIONS =
799
+ T.let(
800
+ :telecommunications,
801
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
802
+ )
803
+ TRANSPORTATION =
804
+ T.let(
805
+ :transportation,
806
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
807
+ )
808
+ TRAVEL =
809
+ T.let(
810
+ :travel,
811
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
812
+ )
813
+
814
+ sig do
815
+ override.returns(
816
+ T::Array[
817
+ SurgeAPI::AccountCreateParams::Organization::Industry::TaggedSymbol
818
+ ]
819
+ )
820
+ end
821
+ def self.values
822
+ end
823
+ end
824
+
825
+ module RegionsOfOperation
826
+ extend SurgeAPI::Internal::Type::Enum
827
+
828
+ TaggedSymbol =
829
+ T.type_alias do
830
+ T.all(
831
+ Symbol,
832
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation
833
+ )
834
+ end
835
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
836
+
837
+ AFRICA =
838
+ T.let(
839
+ :africa,
840
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
841
+ )
842
+ ASIA =
843
+ T.let(
844
+ :asia,
845
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
846
+ )
847
+ AUSTRALIA =
848
+ T.let(
849
+ :australia,
850
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
851
+ )
852
+ EUROPE =
853
+ T.let(
854
+ :europe,
855
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
856
+ )
857
+ LATIN_AMERICA =
858
+ T.let(
859
+ :latin_america,
860
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
861
+ )
862
+ USA_AND_CANADA =
863
+ T.let(
864
+ :usa_and_canada,
865
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
866
+ )
867
+
868
+ sig do
869
+ override.returns(
870
+ T::Array[
871
+ SurgeAPI::AccountCreateParams::Organization::RegionsOfOperation::TaggedSymbol
872
+ ]
873
+ )
874
+ end
875
+ def self.values
876
+ end
877
+ end
878
+
879
+ # For publicly traded companies, this is the exchange on which the company's stock
880
+ # is traded.
881
+ module StockExchange
882
+ extend SurgeAPI::Internal::Type::Enum
883
+
884
+ TaggedSymbol =
885
+ T.type_alias do
886
+ T.all(
887
+ Symbol,
888
+ SurgeAPI::AccountCreateParams::Organization::StockExchange
889
+ )
890
+ end
891
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
892
+
893
+ AMEX =
894
+ T.let(
895
+ :amex,
896
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
897
+ )
898
+ AMX =
899
+ T.let(
900
+ :amx,
901
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
902
+ )
903
+ ASX =
904
+ T.let(
905
+ :asx,
906
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
907
+ )
908
+ B3 =
909
+ T.let(
910
+ :b3,
911
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
912
+ )
913
+ BME =
914
+ T.let(
915
+ :bme,
916
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
917
+ )
918
+ BSE =
919
+ T.let(
920
+ :bse,
921
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
922
+ )
923
+ FRA =
924
+ T.let(
925
+ :fra,
926
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
927
+ )
928
+ ICEX =
929
+ T.let(
930
+ :icex,
931
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
932
+ )
933
+ JPX =
934
+ T.let(
935
+ :jpx,
936
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
937
+ )
938
+ JSE =
939
+ T.let(
940
+ :jse,
941
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
942
+ )
943
+ KRX =
944
+ T.let(
945
+ :krx,
946
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
947
+ )
948
+ LON =
949
+ T.let(
950
+ :lon,
951
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
952
+ )
953
+ NASDAQ =
954
+ T.let(
955
+ :nasdaq,
956
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
957
+ )
958
+ NONE =
959
+ T.let(
960
+ :none,
961
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
962
+ )
963
+ NYSE =
964
+ T.let(
965
+ :nyse,
966
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
967
+ )
968
+ NSE =
969
+ T.let(
970
+ :nse,
971
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
972
+ )
973
+ OMX =
974
+ T.let(
975
+ :omx,
976
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
977
+ )
978
+ OTHER =
979
+ T.let(
980
+ :other,
981
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
982
+ )
983
+ SEHK =
984
+ T.let(
985
+ :sehk,
986
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
987
+ )
988
+ SGX =
989
+ T.let(
990
+ :sgx,
991
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
992
+ )
993
+ SSE =
994
+ T.let(
995
+ :sse,
996
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
997
+ )
998
+ STO =
999
+ T.let(
1000
+ :sto,
1001
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1002
+ )
1003
+ SWX =
1004
+ T.let(
1005
+ :swx,
1006
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1007
+ )
1008
+ SZSE =
1009
+ T.let(
1010
+ :szse,
1011
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1012
+ )
1013
+ TSX =
1014
+ T.let(
1015
+ :tsx,
1016
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1017
+ )
1018
+ TWSE =
1019
+ T.let(
1020
+ :twse,
1021
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1022
+ )
1023
+ VSE =
1024
+ T.let(
1025
+ :vse,
1026
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1027
+ )
1028
+
1029
+ sig do
1030
+ override.returns(
1031
+ T::Array[
1032
+ SurgeAPI::AccountCreateParams::Organization::StockExchange::TaggedSymbol
1033
+ ]
1034
+ )
1035
+ end
1036
+ def self.values
1037
+ end
1038
+ end
1039
+
1040
+ # The type of organization
1041
+ module Type
1042
+ extend SurgeAPI::Internal::Type::Enum
1043
+
1044
+ TaggedSymbol =
1045
+ T.type_alias do
1046
+ T.all(Symbol, SurgeAPI::AccountCreateParams::Organization::Type)
1047
+ end
1048
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1049
+
1050
+ CO_OP =
1051
+ T.let(
1052
+ :co_op,
1053
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1054
+ )
1055
+ GOVERNMENT =
1056
+ T.let(
1057
+ :government,
1058
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1059
+ )
1060
+ LLC =
1061
+ T.let(
1062
+ :llc,
1063
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1064
+ )
1065
+ NON_PROFIT =
1066
+ T.let(
1067
+ :non_profit,
1068
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1069
+ )
1070
+ PARTNERSHIP =
1071
+ T.let(
1072
+ :partnership,
1073
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1074
+ )
1075
+ PRIVATE_CORPORATION =
1076
+ T.let(
1077
+ :private_corporation,
1078
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1079
+ )
1080
+ PUBLIC_CORPORATION =
1081
+ T.let(
1082
+ :public_corporation,
1083
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1084
+ )
1085
+ SOLE_PROPRIETOR =
1086
+ T.let(
1087
+ :sole_proprietor,
1088
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1089
+ )
1090
+
1091
+ sig do
1092
+ override.returns(
1093
+ T::Array[
1094
+ SurgeAPI::AccountCreateParams::Organization::Type::TaggedSymbol
1095
+ ]
1096
+ )
1097
+ end
1098
+ def self.values
1099
+ end
1100
+ end
1101
+ end
1102
+ end
1103
+ end
1104
+ end