apimatic-ak-sdk 0.0.1

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 (229) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +190 -0
  4. data/bin/console +15 -0
  5. data/lib/akoya/api_helper.rb +10 -0
  6. data/lib/akoya/client.rb +117 -0
  7. data/lib/akoya/configuration.rb +195 -0
  8. data/lib/akoya/controllers/account_information_controller.rb +93 -0
  9. data/lib/akoya/controllers/balances_controller.rb +92 -0
  10. data/lib/akoya/controllers/base_controller.rb +65 -0
  11. data/lib/akoya/controllers/customers_controller.rb +112 -0
  12. data/lib/akoya/controllers/investments_controller.rb +95 -0
  13. data/lib/akoya/controllers/payments_controller.rb +70 -0
  14. data/lib/akoya/controllers/statements_controller.rb +158 -0
  15. data/lib/akoya/controllers/tokens_controller.rb +122 -0
  16. data/lib/akoya/controllers/transactions_controller.rb +108 -0
  17. data/lib/akoya/exceptions/api_exception.rb +21 -0
  18. data/lib/akoya/exceptions/error_entity_exception.rb +54 -0
  19. data/lib/akoya/exceptions/error_response_exception.rb +53 -0
  20. data/lib/akoya/http/api_response.rb +19 -0
  21. data/lib/akoya/http/auth/basic_auth.rb +62 -0
  22. data/lib/akoya/http/auth/bearer_auth.rb +53 -0
  23. data/lib/akoya/http/http_call_back.rb +10 -0
  24. data/lib/akoya/http/http_method_enum.rb +10 -0
  25. data/lib/akoya/http/http_request.rb +10 -0
  26. data/lib/akoya/http/http_response.rb +10 -0
  27. data/lib/akoya/http/proxy_settings.rb +22 -0
  28. data/lib/akoya/logging/configuration/api_logging_configuration.rb +186 -0
  29. data/lib/akoya/logging/sdk_logger.rb +17 -0
  30. data/lib/akoya/models/account.rb +86 -0
  31. data/lib/akoya/models/account_category.rb +50 -0
  32. data/lib/akoya/models/account_contact_entity.rb +132 -0
  33. data/lib/akoya/models/account_holder_entity.rb +178 -0
  34. data/lib/akoya/models/account_holder_relationship.rb +110 -0
  35. data/lib/akoya/models/account_holder_relationship_account_holder_entity.rb +110 -0
  36. data/lib/akoya/models/account_information.rb +335 -0
  37. data/lib/akoya/models/action.rb +48 -0
  38. data/lib/akoya/models/address.rb +144 -0
  39. data/lib/akoya/models/akoya_account_info_product.rb +88 -0
  40. data/lib/akoya/models/an_array_of_statements.rb +95 -0
  41. data/lib/akoya/models/an_investment_holding.rb +493 -0
  42. data/lib/akoya/models/annual_increase_type.rb +40 -0
  43. data/lib/akoya/models/annuity_account.rb +370 -0
  44. data/lib/akoya/models/annuity_account_info.rb +86 -0
  45. data/lib/akoya/models/annuity_balance_details.rb +87 -0
  46. data/lib/akoya/models/annuity_balances.rb +477 -0
  47. data/lib/akoya/models/annuity_product_type.rb +36 -0
  48. data/lib/akoya/models/annuity_value_basis.rb +36 -0
  49. data/lib/akoya/models/array_of_account_payment_networks.rb +85 -0
  50. data/lib/akoya/models/asset_class.rb +95 -0
  51. data/lib/akoya/models/asset_class_an_investment_holding.rb +85 -0
  52. data/lib/akoya/models/asset_class_asset_class.rb +56 -0
  53. data/lib/akoya/models/asset_class_citi_bank_investment_holdings.rb +86 -0
  54. data/lib/akoya/models/balance_type.rb +37 -0
  55. data/lib/akoya/models/balance_type_investment_balance_list.rb +36 -0
  56. data/lib/akoya/models/balances.rb +88 -0
  57. data/lib/akoya/models/base_model.rb +110 -0
  58. data/lib/akoya/models/business_customer_entity.rb +127 -0
  59. data/lib/akoya/models/business_customer_entity_account_holder_entity.rb +126 -0
  60. data/lib/akoya/models/business_customer_entity_customer.rb +126 -0
  61. data/lib/akoya/models/call_type.rb +44 -0
  62. data/lib/akoya/models/citi_bank_investment.rb +535 -0
  63. data/lib/akoya/models/citi_bank_investment_details.rb +75 -0
  64. data/lib/akoya/models/citi_bank_investment_holdings.rb +210 -0
  65. data/lib/akoya/models/compounding_period.rb +56 -0
  66. data/lib/akoya/models/contribution_entity.rb +266 -0
  67. data/lib/akoya/models/coupon_mature_frequency.rb +48 -0
  68. data/lib/akoya/models/currency.rb +108 -0
  69. data/lib/akoya/models/currency_citi_bank_investment_holdings.rb +86 -0
  70. data/lib/akoya/models/currency_entity.rb +109 -0
  71. data/lib/akoya/models/current_customer.rb +75 -0
  72. data/lib/akoya/models/customer.rb +164 -0
  73. data/lib/akoya/models/customer_current_customer.rb +164 -0
  74. data/lib/akoya/models/customer_name.rb +127 -0
  75. data/lib/akoya/models/customer_name_account_holder_entity.rb +127 -0
  76. data/lib/akoya/models/customer_name_customer.rb +127 -0
  77. data/lib/akoya/models/debit_credit_memo.rb +37 -0
  78. data/lib/akoya/models/debt_class.rb +44 -0
  79. data/lib/akoya/models/debt_security.rb +137 -0
  80. data/lib/akoya/models/debt_security_entity.rb +216 -0
  81. data/lib/akoya/models/debt_type.rb +36 -0
  82. data/lib/akoya/models/delivery_address.rb +153 -0
  83. data/lib/akoya/models/deposit_account.rb +375 -0
  84. data/lib/akoya/models/deposit_account_info.rb +86 -0
  85. data/lib/akoya/models/deposit_balance_details.rb +87 -0
  86. data/lib/akoya/models/deposit_balances.rb +438 -0
  87. data/lib/akoya/models/deposit_transaction.rb +369 -0
  88. data/lib/akoya/models/deposit_transaction_details.rb +87 -0
  89. data/lib/akoya/models/domicile.rb +85 -0
  90. data/lib/akoya/models/equity_grant.rb +199 -0
  91. data/lib/akoya/models/error_entity_account_information.rb +97 -0
  92. data/lib/akoya/models/error_entity_annuity_account.rb +97 -0
  93. data/lib/akoya/models/error_entity_annuity_balances.rb +97 -0
  94. data/lib/akoya/models/error_entity_citi_bank_investment.rb +97 -0
  95. data/lib/akoya/models/error_entity_deposit_account.rb +97 -0
  96. data/lib/akoya/models/error_entity_deposit_balances.rb +97 -0
  97. data/lib/akoya/models/error_entity_insurance_account.rb +97 -0
  98. data/lib/akoya/models/error_entity_insurance_balances.rb +97 -0
  99. data/lib/akoya/models/error_entity_investment_account.rb +97 -0
  100. data/lib/akoya/models/error_entity_investment_balances.rb +97 -0
  101. data/lib/akoya/models/error_entity_line_of_credit_balances.rb +97 -0
  102. data/lib/akoya/models/error_entity_loan_account.rb +97 -0
  103. data/lib/akoya/models/error_entity_loan_balances.rb +97 -0
  104. data/lib/akoya/models/error_entity_us_bank_investment.rb +97 -0
  105. data/lib/akoya/models/fi_asset_class.rb +95 -0
  106. data/lib/akoya/models/fi_asset_class_an_investment_holding.rb +85 -0
  107. data/lib/akoya/models/fi_attribute.rb +95 -0
  108. data/lib/akoya/models/fi_attribute_entity.rb +95 -0
  109. data/lib/akoya/models/frequency.rb +56 -0
  110. data/lib/akoya/models/hateoas_link.rb +105 -0
  111. data/lib/akoya/models/held_in_account.rb +44 -0
  112. data/lib/akoya/models/holding_sub_type.rb +36 -0
  113. data/lib/akoya/models/holding_type.rb +56 -0
  114. data/lib/akoya/models/income_type.rb +41 -0
  115. data/lib/akoya/models/industry_code.rb +85 -0
  116. data/lib/akoya/models/insurance_account.rb +349 -0
  117. data/lib/akoya/models/insurance_account_info.rb +87 -0
  118. data/lib/akoya/models/insurance_balance_details.rb +87 -0
  119. data/lib/akoya/models/insurance_balances.rb +420 -0
  120. data/lib/akoya/models/insurance_transaction.rb +351 -0
  121. data/lib/akoya/models/insurance_transaction_details.rb +87 -0
  122. data/lib/akoya/models/interest_rate_type.rb +36 -0
  123. data/lib/akoya/models/inv401_k_source.rb +56 -0
  124. data/lib/akoya/models/inv401_k_source_open_order_entity.rb +57 -0
  125. data/lib/akoya/models/inv401_k_surce.rb +56 -0
  126. data/lib/akoya/models/investment_account.rb +411 -0
  127. data/lib/akoya/models/investment_account_annuity_balance.rb +87 -0
  128. data/lib/akoya/models/investment_account_deposit_balance.rb +87 -0
  129. data/lib/akoya/models/investment_account_info.rb +87 -0
  130. data/lib/akoya/models/investment_account_insurance_balance.rb +87 -0
  131. data/lib/akoya/models/investment_account_loan_balance.rb +86 -0
  132. data/lib/akoya/models/investment_account_loc_balance.rb +86 -0
  133. data/lib/akoya/models/investment_balance_details.rb +87 -0
  134. data/lib/akoya/models/investment_balance_list.rb +148 -0
  135. data/lib/akoya/models/investment_balances.rb +525 -0
  136. data/lib/akoya/models/investment_details.rb +88 -0
  137. data/lib/akoya/models/investment_loan_entity.rb +271 -0
  138. data/lib/akoya/models/investment_transaction.rb +783 -0
  139. data/lib/akoya/models/investment_transaction_details.rb +87 -0
  140. data/lib/akoya/models/investments.rb +88 -0
  141. data/lib/akoya/models/line_item.rb +156 -0
  142. data/lib/akoya/models/line_of_credit_balances.rb +601 -0
  143. data/lib/akoya/models/links.rb +95 -0
  144. data/lib/akoya/models/loan_account.rb +417 -0
  145. data/lib/akoya/models/loan_account_info.rb +86 -0
  146. data/lib/akoya/models/loan_balance_details.rb +86 -0
  147. data/lib/akoya/models/loan_balances.rb +556 -0
  148. data/lib/akoya/models/loan_payment_frequency.rb +68 -0
  149. data/lib/akoya/models/loan_transaction.rb +360 -0
  150. data/lib/akoya/models/loan_transaction_details.rb +87 -0
  151. data/lib/akoya/models/loc_account_info.rb +86 -0
  152. data/lib/akoya/models/loc_balance_details.rb +86 -0
  153. data/lib/akoya/models/loc_transaction.rb +372 -0
  154. data/lib/akoya/models/loc_transaction_details.rb +86 -0
  155. data/lib/akoya/models/mnext.rb +84 -0
  156. data/lib/akoya/models/mode.rb +36 -0
  157. data/lib/akoya/models/mutual_fund_security.rb +99 -0
  158. data/lib/akoya/models/mutual_fund_security_entity.rb +150 -0
  159. data/lib/akoya/models/mutual_fund_type.rb +40 -0
  160. data/lib/akoya/models/obtain_tokens.rb +99 -0
  161. data/lib/akoya/models/open_order_entity.rb +228 -0
  162. data/lib/akoya/models/option_security.rb +125 -0
  163. data/lib/akoya/models/option_security_entity.rb +127 -0
  164. data/lib/akoya/models/option_type.rb +36 -0
  165. data/lib/akoya/models/order_duration.rb +40 -0
  166. data/lib/akoya/models/order_type.rb +60 -0
  167. data/lib/akoya/models/other_security_entity.rb +77 -0
  168. data/lib/akoya/models/paginated_array.rb +75 -0
  169. data/lib/akoya/models/payment_details.rb +142 -0
  170. data/lib/akoya/models/payment_frequency.rb +56 -0
  171. data/lib/akoya/models/payment_frequency_annuity_account.rb +44 -0
  172. data/lib/akoya/models/payment_frequency_annuity_balances.rb +44 -0
  173. data/lib/akoya/models/payment_network_supported_by_account.rb +129 -0
  174. data/lib/akoya/models/pension_source_entity.rb +143 -0
  175. data/lib/akoya/models/period_certain_guarantee.rb +48 -0
  176. data/lib/akoya/models/policy_premium_term.rb +36 -0
  177. data/lib/akoya/models/position_type.rb +36 -0
  178. data/lib/akoya/models/postion_type.rb +36 -0
  179. data/lib/akoya/models/prev.rb +84 -0
  180. data/lib/akoya/models/refresh_tokens.rb +103 -0
  181. data/lib/akoya/models/secured.rb +36 -0
  182. data/lib/akoya/models/security_id_type.rb +52 -0
  183. data/lib/akoya/models/security_id_type_investment_transaction.rb +52 -0
  184. data/lib/akoya/models/security_type.rb +56 -0
  185. data/lib/akoya/models/statement_entity.rb +136 -0
  186. data/lib/akoya/models/status.rb +56 -0
  187. data/lib/akoya/models/status_deposit_transaction.rb +44 -0
  188. data/lib/akoya/models/status_insurance_transaction.rb +44 -0
  189. data/lib/akoya/models/status_investment_transaction.rb +44 -0
  190. data/lib/akoya/models/status_loan_transaction.rb +44 -0
  191. data/lib/akoya/models/status_loc_transaction.rb +44 -0
  192. data/lib/akoya/models/status_statement_entity.rb +40 -0
  193. data/lib/akoya/models/status_transaction.rb +44 -0
  194. data/lib/akoya/models/stock_security_entity.rb +137 -0
  195. data/lib/akoya/models/stock_type.rb +56 -0
  196. data/lib/akoya/models/sub_account.rb +44 -0
  197. data/lib/akoya/models/sub_account_fund.rb +44 -0
  198. data/lib/akoya/models/sub_account_sec.rb +44 -0
  199. data/lib/akoya/models/sweep_security_entity.rb +118 -0
  200. data/lib/akoya/models/tax_lot.rb +137 -0
  201. data/lib/akoya/models/tax_lot_an_investment_holding.rb +139 -0
  202. data/lib/akoya/models/telephone.rb +95 -0
  203. data/lib/akoya/models/telephone_number.rb +95 -0
  204. data/lib/akoya/models/token_example_response.rb +101 -0
  205. data/lib/akoya/models/transaction.rb +328 -0
  206. data/lib/akoya/models/transaction_reason.rb +41 -0
  207. data/lib/akoya/models/transaction_type.rb +84 -0
  208. data/lib/akoya/models/transaction_type_insurance_transaction.rb +44 -0
  209. data/lib/akoya/models/transaction_type_investment_transaction.rb +192 -0
  210. data/lib/akoya/models/transaction_type_loan_transaction.rb +44 -0
  211. data/lib/akoya/models/transaction_type_loc_transaction.rb +84 -0
  212. data/lib/akoya/models/transactions_entity.rb +98 -0
  213. data/lib/akoya/models/transfer_action.rb +36 -0
  214. data/lib/akoya/models/type.rb +44 -0
  215. data/lib/akoya/models/type_hateoas_link.rb +52 -0
  216. data/lib/akoya/models/type_telephone_number.rb +44 -0
  217. data/lib/akoya/models/unit_type.rb +36 -0
  218. data/lib/akoya/models/unit_type_open_order_entity.rb +36 -0
  219. data/lib/akoya/models/us_bank_investment.rb +535 -0
  220. data/lib/akoya/models/us_bank_investment_details.rb +75 -0
  221. data/lib/akoya/models/us_bank_investment_holdings.rb +403 -0
  222. data/lib/akoya/models/vesting.rb +135 -0
  223. data/lib/akoya/models/vesting_entity.rb +185 -0
  224. data/lib/akoya/models/x_akoya_interaction_type.rb +36 -0
  225. data/lib/akoya/utilities/date_time_helper.rb +11 -0
  226. data/lib/akoya/utilities/file_wrapper.rb +28 -0
  227. data/lib/akoya/utilities/union_type_lookup.rb +91 -0
  228. data/lib/akoya.rb +250 -0
  229. metadata +312 -0
@@ -0,0 +1,525 @@
1
+ # akoya
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module Akoya
8
+ # Data elements included with balances specific to investment accounts
9
+ class InvestmentBalances < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Long-term persistent identity of the account. Not an account number. This
14
+ # identity must be unique to the owning institution.
15
+ # @return [String]
16
+ attr_accessor :account_id
17
+
18
+ # The type of an account. For instance, CHECKING, SAVINGS, 401K, etc.
19
+ # @return [String]
20
+ attr_accessor :account_type
21
+
22
+ # Account display number for the end user’s handle at owning institution.
23
+ # This is to be displayed by the Interface Provider.
24
+ # @return [String]
25
+ attr_accessor :account_number_display
26
+
27
+ # Indicates the currency code used by the account. May also include currency
28
+ # rate.
29
+ # @return [CurrencyEntity]
30
+ attr_accessor :currency
31
+
32
+ # Indicates the currency code used by the account. May also include currency
33
+ # rate.
34
+ # @return [String]
35
+ attr_accessor :description
36
+
37
+ # Present if an error was encountered while retrieving this account
38
+ # @return [ErrorEntityInvestmentBalances]
39
+ attr_accessor :error
40
+
41
+ # Present if an error was encountered while retrieving this account
42
+ # @return [Array[FiAttributeEntity]]
43
+ attr_accessor :fi_attributes
44
+
45
+ # Name given by the user. Used in UIs to assist in account selection
46
+ # @return [String]
47
+ attr_accessor :nickname
48
+
49
+ # Marketed product name for this account. Used in UIs to assist in account
50
+ # selection
51
+ # @return [String]
52
+ attr_accessor :product_name
53
+
54
+ # The status of an account.
55
+ # @return [Status]
56
+ attr_accessor :status
57
+
58
+ # The line of business, such as consumer, consumer joint, small business,
59
+ # corporate, etc.
60
+ # @return [String]
61
+ attr_accessor :line_of_business
62
+
63
+ # ASSET (positive transaction amount increases balance), LIABILITY (positive
64
+ # transaction amount decreases balance)
65
+ # @return [BalanceType]
66
+ attr_accessor :balance_type
67
+
68
+ # Interest Rate of Account
69
+ # @return [Float]
70
+ attr_accessor :interest_rate
71
+
72
+ # The type of interest rate. FIXED or VARIABLE.
73
+ # @return [InterestRateType]
74
+ attr_accessor :interest_rate_type
75
+
76
+ # Date of account’s interest rate
77
+ # @return [DateTime]
78
+ attr_accessor :interest_rate_as_of
79
+
80
+ # Date that last transaction occurred on account
81
+ # @return [DateTime]
82
+ attr_accessor :last_activity_date
83
+
84
+ # MICR Number. (Magnetic Ink Character Recognition)
85
+ # @return [String]
86
+ attr_accessor :micr_number
87
+
88
+ # Long-term persistent identity of the parent account. This is used to group
89
+ # accounts.
90
+ # @return [String]
91
+ attr_accessor :parent_account_id
92
+
93
+ # Previous Interest Rate of Account
94
+ # @return [Float]
95
+ attr_accessor :prior_interest_rate
96
+
97
+ # Account is eligible for incoming transfers
98
+ # @return [TrueClass | FalseClass]
99
+ attr_accessor :transfer_in
100
+
101
+ # Account is eligible for outgoing transfers
102
+ # @return [TrueClass | FalseClass]
103
+ attr_accessor :transfer_out
104
+
105
+ # Check writing privileges
106
+ # @return [TrueClass | FalseClass]
107
+ attr_accessor :allowed_check_writing
108
+
109
+ # Allowed to trade options
110
+ # @return [TrueClass | FalseClass]
111
+ attr_accessor :allowed_option_trade
112
+
113
+ # Unique identifier FI
114
+ # @return [String]
115
+ attr_accessor :broker_id
116
+
117
+ # Date for this calendar year for 401K account
118
+ # @return [String]
119
+ attr_accessor :calendar_year_for401_k
120
+
121
+ # Name of the employer in investment 401k Plan
122
+ # @return [String]
123
+ attr_accessor :employer_name
124
+
125
+ # Margin trading is allowed
126
+ # @return [TrueClass | FalseClass]
127
+ attr_accessor :margin
128
+
129
+ # Plan number for Investment 401k plan
130
+ # @return [String]
131
+ attr_accessor :plan_id
132
+
133
+ # Cash balance across all sub-accounts. Should include sweep funds.
134
+ # @return [Float]
135
+ attr_accessor :available_cash_balance
136
+
137
+ # As-of date of balances
138
+ # @return [DateTime]
139
+ attr_accessor :balance_as_of
140
+
141
+ # Balance List. Name value pair aggregate.
142
+ # @return [Array[InvestmentBalanceList]]
143
+ attr_accessor :balance_list
144
+
145
+ # Total current value of all investments
146
+ # @return [Float]
147
+ attr_accessor :current_value
148
+
149
+ # Daily change
150
+ # @return [Float]
151
+ attr_accessor :daily_change
152
+
153
+ # Margin balance
154
+ # @return [Float]
155
+ attr_accessor :margin_balance
156
+
157
+ # Percentage change
158
+ # @return [Float]
159
+ attr_accessor :percentage_change
160
+
161
+ # Rollover amount
162
+ # @return [Float]
163
+ attr_accessor :rollover_amount
164
+
165
+ # Short balance
166
+ # @return [Float]
167
+ attr_accessor :short_balance
168
+
169
+ # A mapping from model property names to API property names.
170
+ def self.names
171
+ @_hash = {} if @_hash.nil?
172
+ @_hash['account_id'] = 'accountId'
173
+ @_hash['account_type'] = 'accountType'
174
+ @_hash['account_number_display'] = 'accountNumberDisplay'
175
+ @_hash['currency'] = 'currency'
176
+ @_hash['description'] = 'description'
177
+ @_hash['error'] = 'error'
178
+ @_hash['fi_attributes'] = 'fiAttributes'
179
+ @_hash['nickname'] = 'nickname'
180
+ @_hash['product_name'] = 'productName'
181
+ @_hash['status'] = 'status'
182
+ @_hash['line_of_business'] = 'lineOfBusiness'
183
+ @_hash['balance_type'] = 'balanceType'
184
+ @_hash['interest_rate'] = 'interestRate'
185
+ @_hash['interest_rate_type'] = 'interestRateType'
186
+ @_hash['interest_rate_as_of'] = 'interestRateAsOf'
187
+ @_hash['last_activity_date'] = 'lastActivityDate'
188
+ @_hash['micr_number'] = 'micrNumber'
189
+ @_hash['parent_account_id'] = 'parentAccountId'
190
+ @_hash['prior_interest_rate'] = 'priorInterestRate'
191
+ @_hash['transfer_in'] = 'transferIn'
192
+ @_hash['transfer_out'] = 'transferOut'
193
+ @_hash['allowed_check_writing'] = 'allowedCheckWriting'
194
+ @_hash['allowed_option_trade'] = 'allowedOptionTrade'
195
+ @_hash['broker_id'] = 'brokerId'
196
+ @_hash['calendar_year_for401_k'] = 'calendarYearFor401K'
197
+ @_hash['employer_name'] = 'employerName'
198
+ @_hash['margin'] = 'margin'
199
+ @_hash['plan_id'] = 'planId'
200
+ @_hash['available_cash_balance'] = 'availableCashBalance'
201
+ @_hash['balance_as_of'] = 'balanceAsOf'
202
+ @_hash['balance_list'] = 'balanceList'
203
+ @_hash['current_value'] = 'currentValue'
204
+ @_hash['daily_change'] = 'dailyChange'
205
+ @_hash['margin_balance'] = 'marginBalance'
206
+ @_hash['percentage_change'] = 'percentageChange'
207
+ @_hash['rollover_amount'] = 'rolloverAmount'
208
+ @_hash['short_balance'] = 'shortBalance'
209
+ @_hash
210
+ end
211
+
212
+ # An array for optional fields
213
+ def self.optionals
214
+ %w[
215
+ account_type
216
+ account_number_display
217
+ currency
218
+ description
219
+ error
220
+ fi_attributes
221
+ nickname
222
+ product_name
223
+ status
224
+ line_of_business
225
+ balance_type
226
+ interest_rate
227
+ interest_rate_type
228
+ interest_rate_as_of
229
+ last_activity_date
230
+ micr_number
231
+ parent_account_id
232
+ prior_interest_rate
233
+ transfer_in
234
+ transfer_out
235
+ allowed_check_writing
236
+ allowed_option_trade
237
+ broker_id
238
+ calendar_year_for401_k
239
+ employer_name
240
+ margin
241
+ plan_id
242
+ available_cash_balance
243
+ balance_as_of
244
+ balance_list
245
+ current_value
246
+ daily_change
247
+ margin_balance
248
+ percentage_change
249
+ rollover_amount
250
+ short_balance
251
+ ]
252
+ end
253
+
254
+ # An array for nullable fields
255
+ def self.nullables
256
+ []
257
+ end
258
+
259
+ def initialize(account_id:, account_type: SKIP,
260
+ account_number_display: SKIP, currency: SKIP,
261
+ description: SKIP, error: SKIP, fi_attributes: SKIP,
262
+ nickname: SKIP, product_name: SKIP, status: SKIP,
263
+ line_of_business: SKIP, balance_type: SKIP,
264
+ interest_rate: SKIP, interest_rate_type: SKIP,
265
+ interest_rate_as_of: SKIP, last_activity_date: SKIP,
266
+ micr_number: SKIP, parent_account_id: SKIP,
267
+ prior_interest_rate: SKIP, transfer_in: SKIP,
268
+ transfer_out: SKIP, allowed_check_writing: SKIP,
269
+ allowed_option_trade: SKIP, broker_id: SKIP,
270
+ calendar_year_for401_k: SKIP, employer_name: SKIP,
271
+ margin: SKIP, plan_id: SKIP, available_cash_balance: SKIP,
272
+ balance_as_of: SKIP, balance_list: SKIP, current_value: SKIP,
273
+ daily_change: SKIP, margin_balance: SKIP,
274
+ percentage_change: SKIP, rollover_amount: SKIP,
275
+ short_balance: SKIP, additional_properties: nil)
276
+ # Add additional model properties to the instance
277
+ additional_properties = {} if additional_properties.nil?
278
+
279
+ @account_id = account_id
280
+ @account_type = account_type unless account_type == SKIP
281
+ @account_number_display = account_number_display unless account_number_display == SKIP
282
+ @currency = currency unless currency == SKIP
283
+ @description = description unless description == SKIP
284
+ @error = error unless error == SKIP
285
+ @fi_attributes = fi_attributes unless fi_attributes == SKIP
286
+ @nickname = nickname unless nickname == SKIP
287
+ @product_name = product_name unless product_name == SKIP
288
+ @status = status unless status == SKIP
289
+ @line_of_business = line_of_business unless line_of_business == SKIP
290
+ @balance_type = balance_type unless balance_type == SKIP
291
+ @interest_rate = interest_rate unless interest_rate == SKIP
292
+ @interest_rate_type = interest_rate_type unless interest_rate_type == SKIP
293
+ @interest_rate_as_of = interest_rate_as_of unless interest_rate_as_of == SKIP
294
+ @last_activity_date = last_activity_date unless last_activity_date == SKIP
295
+ @micr_number = micr_number unless micr_number == SKIP
296
+ @parent_account_id = parent_account_id unless parent_account_id == SKIP
297
+ @prior_interest_rate = prior_interest_rate unless prior_interest_rate == SKIP
298
+ @transfer_in = transfer_in unless transfer_in == SKIP
299
+ @transfer_out = transfer_out unless transfer_out == SKIP
300
+ @allowed_check_writing = allowed_check_writing unless allowed_check_writing == SKIP
301
+ @allowed_option_trade = allowed_option_trade unless allowed_option_trade == SKIP
302
+ @broker_id = broker_id unless broker_id == SKIP
303
+ @calendar_year_for401_k = calendar_year_for401_k unless calendar_year_for401_k == SKIP
304
+ @employer_name = employer_name unless employer_name == SKIP
305
+ @margin = margin unless margin == SKIP
306
+ @plan_id = plan_id unless plan_id == SKIP
307
+ @available_cash_balance = available_cash_balance unless available_cash_balance == SKIP
308
+ @balance_as_of = balance_as_of unless balance_as_of == SKIP
309
+ @balance_list = balance_list unless balance_list == SKIP
310
+ @current_value = current_value unless current_value == SKIP
311
+ @daily_change = daily_change unless daily_change == SKIP
312
+ @margin_balance = margin_balance unless margin_balance == SKIP
313
+ @percentage_change = percentage_change unless percentage_change == SKIP
314
+ @rollover_amount = rollover_amount unless rollover_amount == SKIP
315
+ @short_balance = short_balance unless short_balance == SKIP
316
+ @additional_properties = additional_properties
317
+ end
318
+
319
+ # Creates an instance of the object from a hash.
320
+ def self.from_hash(hash)
321
+ return nil unless hash
322
+
323
+ # Extract variables from the hash.
324
+ account_id = hash.key?('accountId') ? hash['accountId'] : nil
325
+ account_type = hash.key?('accountType') ? hash['accountType'] : SKIP
326
+ account_number_display =
327
+ hash.key?('accountNumberDisplay') ? hash['accountNumberDisplay'] : SKIP
328
+ currency = CurrencyEntity.from_hash(hash['currency']) if hash['currency']
329
+ description = hash.key?('description') ? hash['description'] : SKIP
330
+ error = ErrorEntityInvestmentBalances.from_hash(hash['error']) if hash['error']
331
+ # Parameter is an array, so we need to iterate through it
332
+ fi_attributes = nil
333
+ unless hash['fiAttributes'].nil?
334
+ fi_attributes = []
335
+ hash['fiAttributes'].each do |structure|
336
+ fi_attributes << (FiAttributeEntity.from_hash(structure) if structure)
337
+ end
338
+ end
339
+
340
+ fi_attributes = SKIP unless hash.key?('fiAttributes')
341
+ nickname = hash.key?('nickname') ? hash['nickname'] : SKIP
342
+ product_name = hash.key?('productName') ? hash['productName'] : SKIP
343
+ status = hash.key?('status') ? hash['status'] : SKIP
344
+ line_of_business =
345
+ hash.key?('lineOfBusiness') ? hash['lineOfBusiness'] : SKIP
346
+ balance_type = hash.key?('balanceType') ? hash['balanceType'] : SKIP
347
+ interest_rate = hash.key?('interestRate') ? hash['interestRate'] : SKIP
348
+ interest_rate_type =
349
+ hash.key?('interestRateType') ? hash['interestRateType'] : SKIP
350
+ interest_rate_as_of = if hash.key?('interestRateAsOf')
351
+ (DateTimeHelper.from_rfc3339(hash['interestRateAsOf']) if hash['interestRateAsOf'])
352
+ else
353
+ SKIP
354
+ end
355
+ last_activity_date = if hash.key?('lastActivityDate')
356
+ (DateTimeHelper.from_rfc3339(hash['lastActivityDate']) if hash['lastActivityDate'])
357
+ else
358
+ SKIP
359
+ end
360
+ micr_number = hash.key?('micrNumber') ? hash['micrNumber'] : SKIP
361
+ parent_account_id =
362
+ hash.key?('parentAccountId') ? hash['parentAccountId'] : SKIP
363
+ prior_interest_rate =
364
+ hash.key?('priorInterestRate') ? hash['priorInterestRate'] : SKIP
365
+ transfer_in = hash.key?('transferIn') ? hash['transferIn'] : SKIP
366
+ transfer_out = hash.key?('transferOut') ? hash['transferOut'] : SKIP
367
+ allowed_check_writing =
368
+ hash.key?('allowedCheckWriting') ? hash['allowedCheckWriting'] : SKIP
369
+ allowed_option_trade =
370
+ hash.key?('allowedOptionTrade') ? hash['allowedOptionTrade'] : SKIP
371
+ broker_id = hash.key?('brokerId') ? hash['brokerId'] : SKIP
372
+ calendar_year_for401_k =
373
+ hash.key?('calendarYearFor401K') ? hash['calendarYearFor401K'] : SKIP
374
+ employer_name = hash.key?('employerName') ? hash['employerName'] : SKIP
375
+ margin = hash.key?('margin') ? hash['margin'] : SKIP
376
+ plan_id = hash.key?('planId') ? hash['planId'] : SKIP
377
+ available_cash_balance =
378
+ hash.key?('availableCashBalance') ? hash['availableCashBalance'] : SKIP
379
+ balance_as_of = if hash.key?('balanceAsOf')
380
+ (DateTimeHelper.from_rfc3339(hash['balanceAsOf']) if hash['balanceAsOf'])
381
+ else
382
+ SKIP
383
+ end
384
+ # Parameter is an array, so we need to iterate through it
385
+ balance_list = nil
386
+ unless hash['balanceList'].nil?
387
+ balance_list = []
388
+ hash['balanceList'].each do |structure|
389
+ balance_list << (InvestmentBalanceList.from_hash(structure) if structure)
390
+ end
391
+ end
392
+
393
+ balance_list = SKIP unless hash.key?('balanceList')
394
+ current_value = hash.key?('currentValue') ? hash['currentValue'] : SKIP
395
+ daily_change = hash.key?('dailyChange') ? hash['dailyChange'] : SKIP
396
+ margin_balance = hash.key?('marginBalance') ? hash['marginBalance'] : SKIP
397
+ percentage_change =
398
+ hash.key?('percentageChange') ? hash['percentageChange'] : SKIP
399
+ rollover_amount =
400
+ hash.key?('rolloverAmount') ? hash['rolloverAmount'] : SKIP
401
+ short_balance = hash.key?('shortBalance') ? hash['shortBalance'] : SKIP
402
+
403
+ # Create a new hash for additional properties, removing known properties.
404
+ new_hash = hash.reject { |k, _| names.value?(k) }
405
+
406
+ additional_properties = APIHelper.get_additional_properties(
407
+ new_hash, proc { |value| value }
408
+ )
409
+
410
+ # Create object from extracted values.
411
+ InvestmentBalances.new(account_id: account_id,
412
+ account_type: account_type,
413
+ account_number_display: account_number_display,
414
+ currency: currency,
415
+ description: description,
416
+ error: error,
417
+ fi_attributes: fi_attributes,
418
+ nickname: nickname,
419
+ product_name: product_name,
420
+ status: status,
421
+ line_of_business: line_of_business,
422
+ balance_type: balance_type,
423
+ interest_rate: interest_rate,
424
+ interest_rate_type: interest_rate_type,
425
+ interest_rate_as_of: interest_rate_as_of,
426
+ last_activity_date: last_activity_date,
427
+ micr_number: micr_number,
428
+ parent_account_id: parent_account_id,
429
+ prior_interest_rate: prior_interest_rate,
430
+ transfer_in: transfer_in,
431
+ transfer_out: transfer_out,
432
+ allowed_check_writing: allowed_check_writing,
433
+ allowed_option_trade: allowed_option_trade,
434
+ broker_id: broker_id,
435
+ calendar_year_for401_k: calendar_year_for401_k,
436
+ employer_name: employer_name,
437
+ margin: margin,
438
+ plan_id: plan_id,
439
+ available_cash_balance: available_cash_balance,
440
+ balance_as_of: balance_as_of,
441
+ balance_list: balance_list,
442
+ current_value: current_value,
443
+ daily_change: daily_change,
444
+ margin_balance: margin_balance,
445
+ percentage_change: percentage_change,
446
+ rollover_amount: rollover_amount,
447
+ short_balance: short_balance,
448
+ additional_properties: additional_properties)
449
+ end
450
+
451
+ def to_custom_interest_rate_as_of
452
+ DateTimeHelper.to_rfc3339(interest_rate_as_of)
453
+ end
454
+
455
+ def to_custom_last_activity_date
456
+ DateTimeHelper.to_rfc3339(last_activity_date)
457
+ end
458
+
459
+ def to_custom_balance_as_of
460
+ DateTimeHelper.to_rfc3339(balance_as_of)
461
+ end
462
+
463
+ # Validates an instance of the object from a given value.
464
+ # @param [InvestmentBalances | Hash] The value against the validation is performed.
465
+ def self.validate(value)
466
+ if value.instance_of? self
467
+ return APIHelper.valid_type?(value.account_id,
468
+ ->(val) { val.instance_of? String })
469
+ end
470
+
471
+ return false unless value.instance_of? Hash
472
+
473
+ APIHelper.valid_type?(value['accountId'],
474
+ ->(val) { val.instance_of? String })
475
+ end
476
+
477
+ # Provides a human-readable string representation of the object.
478
+ def to_s
479
+ class_name = self.class.name.split('::').last
480
+ "<#{class_name} account_id: #{@account_id}, account_type: #{@account_type},"\
481
+ " account_number_display: #{@account_number_display}, currency: #{@currency}, description:"\
482
+ " #{@description}, error: #{@error}, fi_attributes: #{@fi_attributes}, nickname:"\
483
+ " #{@nickname}, product_name: #{@product_name}, status: #{@status}, line_of_business:"\
484
+ " #{@line_of_business}, balance_type: #{@balance_type}, interest_rate: #{@interest_rate},"\
485
+ " interest_rate_type: #{@interest_rate_type}, interest_rate_as_of: #{@interest_rate_as_of},"\
486
+ " last_activity_date: #{@last_activity_date}, micr_number: #{@micr_number},"\
487
+ " parent_account_id: #{@parent_account_id}, prior_interest_rate: #{@prior_interest_rate},"\
488
+ " transfer_in: #{@transfer_in}, transfer_out: #{@transfer_out}, allowed_check_writing:"\
489
+ " #{@allowed_check_writing}, allowed_option_trade: #{@allowed_option_trade}, broker_id:"\
490
+ " #{@broker_id}, calendar_year_for401_k: #{@calendar_year_for401_k}, employer_name:"\
491
+ " #{@employer_name}, margin: #{@margin}, plan_id: #{@plan_id}, available_cash_balance:"\
492
+ " #{@available_cash_balance}, balance_as_of: #{@balance_as_of}, balance_list:"\
493
+ " #{@balance_list}, current_value: #{@current_value}, daily_change: #{@daily_change},"\
494
+ " margin_balance: #{@margin_balance}, percentage_change: #{@percentage_change},"\
495
+ " rollover_amount: #{@rollover_amount}, short_balance: #{@short_balance},"\
496
+ " additional_properties: #{@additional_properties}>"
497
+ end
498
+
499
+ # Provides a debugging-friendly string with detailed object information.
500
+ def inspect
501
+ class_name = self.class.name.split('::').last
502
+ "<#{class_name} account_id: #{@account_id.inspect}, account_type: #{@account_type.inspect},"\
503
+ " account_number_display: #{@account_number_display.inspect}, currency:"\
504
+ " #{@currency.inspect}, description: #{@description.inspect}, error: #{@error.inspect},"\
505
+ " fi_attributes: #{@fi_attributes.inspect}, nickname: #{@nickname.inspect}, product_name:"\
506
+ " #{@product_name.inspect}, status: #{@status.inspect}, line_of_business:"\
507
+ " #{@line_of_business.inspect}, balance_type: #{@balance_type.inspect}, interest_rate:"\
508
+ " #{@interest_rate.inspect}, interest_rate_type: #{@interest_rate_type.inspect},"\
509
+ " interest_rate_as_of: #{@interest_rate_as_of.inspect}, last_activity_date:"\
510
+ " #{@last_activity_date.inspect}, micr_number: #{@micr_number.inspect}, parent_account_id:"\
511
+ " #{@parent_account_id.inspect}, prior_interest_rate: #{@prior_interest_rate.inspect},"\
512
+ " transfer_in: #{@transfer_in.inspect}, transfer_out: #{@transfer_out.inspect},"\
513
+ " allowed_check_writing: #{@allowed_check_writing.inspect}, allowed_option_trade:"\
514
+ " #{@allowed_option_trade.inspect}, broker_id: #{@broker_id.inspect},"\
515
+ " calendar_year_for401_k: #{@calendar_year_for401_k.inspect}, employer_name:"\
516
+ " #{@employer_name.inspect}, margin: #{@margin.inspect}, plan_id: #{@plan_id.inspect},"\
517
+ " available_cash_balance: #{@available_cash_balance.inspect}, balance_as_of:"\
518
+ " #{@balance_as_of.inspect}, balance_list: #{@balance_list.inspect}, current_value:"\
519
+ " #{@current_value.inspect}, daily_change: #{@daily_change.inspect}, margin_balance:"\
520
+ " #{@margin_balance.inspect}, percentage_change: #{@percentage_change.inspect},"\
521
+ " rollover_amount: #{@rollover_amount.inspect}, short_balance: #{@short_balance.inspect},"\
522
+ " additional_properties: #{@additional_properties}>"
523
+ end
524
+ end
525
+ end
@@ -0,0 +1,88 @@
1
+ # akoya
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Akoya
7
+ # InvestmentDetails Model.
8
+ class InvestmentDetails < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Data elements included with the investment product
13
+ # @return [Object]
14
+ attr_accessor :investment_account
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['investment_account'] = 'investmentAccount'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ investment_account
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(investment_account: SKIP, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @investment_account = investment_account unless investment_account == SKIP
40
+ @additional_properties = additional_properties
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ investment_account = hash.key?('investmentAccount') ? APIHelper.deserialize_union_type(
49
+ UnionTypeLookUp.get(:InvestmentDetailsInvestmentAccount), hash['investmentAccount']
50
+ ) : SKIP
51
+
52
+ # Create a new hash for additional properties, removing known properties.
53
+ new_hash = hash.reject { |k, _| names.value?(k) }
54
+
55
+ additional_properties = APIHelper.get_additional_properties(
56
+ new_hash, proc { |value| value }
57
+ )
58
+
59
+ # Create object from extracted values.
60
+ InvestmentDetails.new(investment_account: investment_account,
61
+ additional_properties: additional_properties)
62
+ end
63
+
64
+ # Validates an instance of the object from a given value.
65
+ # @param [InvestmentDetails | Hash] The value against the validation is performed.
66
+ def self.validate(value)
67
+ return true if value.instance_of? self
68
+
69
+ return false unless value.instance_of? Hash
70
+
71
+ true
72
+ end
73
+
74
+ # Provides a human-readable string representation of the object.
75
+ def to_s
76
+ class_name = self.class.name.split('::').last
77
+ "<#{class_name} investment_account: #{@investment_account}, additional_properties:"\
78
+ " #{@additional_properties}>"
79
+ end
80
+
81
+ # Provides a debugging-friendly string with detailed object information.
82
+ def inspect
83
+ class_name = self.class.name.split('::').last
84
+ "<#{class_name} investment_account: #{@investment_account.inspect}, additional_properties:"\
85
+ " #{@additional_properties}>"
86
+ end
87
+ end
88
+ end