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