data-and-reporting-sdk 1.0.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 (178) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +104 -0
  4. data/lib/shell_data_reporting_ap_is/api_helper.rb +10 -0
  5. data/lib/shell_data_reporting_ap_is/client.rb +84 -0
  6. data/lib/shell_data_reporting_ap_is/configuration.rb +110 -0
  7. data/lib/shell_data_reporting_ap_is/controllers/base_controller.rb +66 -0
  8. data/lib/shell_data_reporting_ap_is/controllers/customer_controller.rb +478 -0
  9. data/lib/shell_data_reporting_ap_is/controllers/invoice_controller.rb +470 -0
  10. data/lib/shell_data_reporting_ap_is/controllers/o_auth_authorization_controller.rb +42 -0
  11. data/lib/shell_data_reporting_ap_is/controllers/transaction_controller.rb +878 -0
  12. data/lib/shell_data_reporting_ap_is/exceptions/api_exception.rb +10 -0
  13. data/lib/shell_data_reporting_ap_is/exceptions/default_error_exception.rb +32 -0
  14. data/lib/shell_data_reporting_ap_is/exceptions/error_object_exception.rb +54 -0
  15. data/lib/shell_data_reporting_ap_is/exceptions/error_user_access_error1_exception.rb +32 -0
  16. data/lib/shell_data_reporting_ap_is/exceptions/o_auth_provider_exception.rb +48 -0
  17. data/lib/shell_data_reporting_ap_is/http/auth/basic_auth.rb +50 -0
  18. data/lib/shell_data_reporting_ap_is/http/auth/bearer_token.rb +89 -0
  19. data/lib/shell_data_reporting_ap_is/http/http_call_back.rb +10 -0
  20. data/lib/shell_data_reporting_ap_is/http/http_method_enum.rb +10 -0
  21. data/lib/shell_data_reporting_ap_is/http/http_request.rb +10 -0
  22. data/lib/shell_data_reporting_ap_is/http/http_response.rb +10 -0
  23. data/lib/shell_data_reporting_ap_is/models/account_access.rb +128 -0
  24. data/lib/shell_data_reporting_ap_is/models/account_request.rb +252 -0
  25. data/lib/shell_data_reporting_ap_is/models/account_response.rb +111 -0
  26. data/lib/shell_data_reporting_ap_is/models/account_response_accounts_items.rb +750 -0
  27. data/lib/shell_data_reporting_ap_is/models/accounts.rb +65 -0
  28. data/lib/shell_data_reporting_ap_is/models/address.rb +174 -0
  29. data/lib/shell_data_reporting_ap_is/models/associated_account.rb +98 -0
  30. data/lib/shell_data_reporting_ap_is/models/audit_request.rb +256 -0
  31. data/lib/shell_data_reporting_ap_is/models/audit_response.rb +111 -0
  32. data/lib/shell_data_reporting_ap_is/models/audit_response_audits_items.rb +450 -0
  33. data/lib/shell_data_reporting_ap_is/models/bank_account.rb +192 -0
  34. data/lib/shell_data_reporting_ap_is/models/base_model.rb +62 -0
  35. data/lib/shell_data_reporting_ap_is/models/bonus_configuration.rb +419 -0
  36. data/lib/shell_data_reporting_ap_is/models/bonus_history.rb +444 -0
  37. data/lib/shell_data_reporting_ap_is/models/card_day_time_restrictions.rb +159 -0
  38. data/lib/shell_data_reporting_ap_is/models/card_exceptions.rb +268 -0
  39. data/lib/shell_data_reporting_ap_is/models/card_group_request.rb +178 -0
  40. data/lib/shell_data_reporting_ap_is/models/card_group_response.rb +109 -0
  41. data/lib/shell_data_reporting_ap_is/models/card_group_response_card_groups_items.rb +301 -0
  42. data/lib/shell_data_reporting_ap_is/models/card_type_request.rb +145 -0
  43. data/lib/shell_data_reporting_ap_is/models/card_type_response.rb +79 -0
  44. data/lib/shell_data_reporting_ap_is/models/card_type_response_customer_card_types_items.rb +470 -0
  45. data/lib/shell_data_reporting_ap_is/models/card_type_response_error.rb +60 -0
  46. data/lib/shell_data_reporting_ap_is/models/card_usage_restrictions.rb +281 -0
  47. data/lib/shell_data_reporting_ap_is/models/card_usage_summary_request.rb +159 -0
  48. data/lib/shell_data_reporting_ap_is/models/card_usage_summary_response.rb +79 -0
  49. data/lib/shell_data_reporting_ap_is/models/col_co_access.rb +88 -0
  50. data/lib/shell_data_reporting_ap_is/models/current_volume.rb +99 -0
  51. data/lib/shell_data_reporting_ap_is/models/customer_contract.rb +63 -0
  52. data/lib/shell_data_reporting_ap_is/models/customer_detail_request.rb +123 -0
  53. data/lib/shell_data_reporting_ap_is/models/customer_detail_response.rb +437 -0
  54. data/lib/shell_data_reporting_ap_is/models/customer_price_list_request.rb +200 -0
  55. data/lib/shell_data_reporting_ap_is/models/customer_price_list_response.rb +82 -0
  56. data/lib/shell_data_reporting_ap_is/models/default_error_fault.rb +60 -0
  57. data/lib/shell_data_reporting_ap_is/models/default_error_fault_detail.rb +50 -0
  58. data/lib/shell_data_reporting_ap_is/models/delivery_addresses.rb +258 -0
  59. data/lib/shell_data_reporting_ap_is/models/eid_access.rb +75 -0
  60. data/lib/shell_data_reporting_ap_is/models/eid_document.rb +166 -0
  61. data/lib/shell_data_reporting_ap_is/models/eid_document_response.rb +140 -0
  62. data/lib/shell_data_reporting_ap_is/models/eid_download_req.rb +86 -0
  63. data/lib/shell_data_reporting_ap_is/models/eid_download_request.rb +50 -0
  64. data/lib/shell_data_reporting_ap_is/models/eid_search_req.rb +160 -0
  65. data/lib/shell_data_reporting_ap_is/models/eid_search_request.rb +70 -0
  66. data/lib/shell_data_reporting_ap_is/models/error_details.rb +81 -0
  67. data/lib/shell_data_reporting_ap_is/models/error_status.rb +60 -0
  68. data/lib/shell_data_reporting_ap_is/models/error_user_access.rb +50 -0
  69. data/lib/shell_data_reporting_ap_is/models/error_user_access_error.rb +60 -0
  70. data/lib/shell_data_reporting_ap_is/models/exception_product.rb +65 -0
  71. data/lib/shell_data_reporting_ap_is/models/exception_site_location.rb +63 -0
  72. data/lib/shell_data_reporting_ap_is/models/fee_item.rb +977 -0
  73. data/lib/shell_data_reporting_ap_is/models/fee_item_summary_all_of0.rb +194 -0
  74. data/lib/shell_data_reporting_ap_is/models/fee_rule_location.rb +153 -0
  75. data/lib/shell_data_reporting_ap_is/models/fee_rule_product.rb +98 -0
  76. data/lib/shell_data_reporting_ap_is/models/fee_rule_tier.rb +74 -0
  77. data/lib/shell_data_reporting_ap_is/models/fee_summary_response.rb +85 -0
  78. data/lib/shell_data_reporting_ap_is/models/fees_fee_rule_tiers.rb +124 -0
  79. data/lib/shell_data_reporting_ap_is/models/finance_currency.rb +98 -0
  80. data/lib/shell_data_reporting_ap_is/models/fuel_consumption_card.rb +73 -0
  81. data/lib/shell_data_reporting_ap_is/models/fuel_consumption_data.rb +267 -0
  82. data/lib/shell_data_reporting_ap_is/models/fuel_consumption_request.rb +197 -0
  83. data/lib/shell_data_reporting_ap_is/models/fuel_consumption_response.rb +79 -0
  84. data/lib/shell_data_reporting_ap_is/models/invoice_dates_data.rb +62 -0
  85. data/lib/shell_data_reporting_ap_is/models/invoice_dates_request.rb +50 -0
  86. data/lib/shell_data_reporting_ap_is/models/invoice_dates_request_filters.rb +146 -0
  87. data/lib/shell_data_reporting_ap_is/models/invoice_dates_response_data.rb +80 -0
  88. data/lib/shell_data_reporting_ap_is/models/invoice_distribution_method.rb +99 -0
  89. data/lib/shell_data_reporting_ap_is/models/invoice_download_req.rb +99 -0
  90. data/lib/shell_data_reporting_ap_is/models/invoice_download_request.rb +50 -0
  91. data/lib/shell_data_reporting_ap_is/models/invoice_search_additional_document.rb +80 -0
  92. data/lib/shell_data_reporting_ap_is/models/invoice_search_details.rb +913 -0
  93. data/lib/shell_data_reporting_ap_is/models/invoice_search_request.rb +91 -0
  94. data/lib/shell_data_reporting_ap_is/models/invoice_search_request_filters.rb +344 -0
  95. data/lib/shell_data_reporting_ap_is/models/invoice_search_response.rb +127 -0
  96. data/lib/shell_data_reporting_ap_is/models/invoice_summary_details.rb +129 -0
  97. data/lib/shell_data_reporting_ap_is/models/invoice_summary_request.rb +50 -0
  98. data/lib/shell_data_reporting_ap_is/models/invoice_summary_request_filters.rb +345 -0
  99. data/lib/shell_data_reporting_ap_is/models/invoice_summary_response.rb +79 -0
  100. data/lib/shell_data_reporting_ap_is/models/invoices_summaries.rb +221 -0
  101. data/lib/shell_data_reporting_ap_is/models/last_statement_of_account.rb +421 -0
  102. data/lib/shell_data_reporting_ap_is/models/logged_in_user_request.rb +107 -0
  103. data/lib/shell_data_reporting_ap_is/models/logged_in_user_response.rb +394 -0
  104. data/lib/shell_data_reporting_ap_is/models/monthly_invoice_trend.rb +112 -0
  105. data/lib/shell_data_reporting_ap_is/models/multi_priced_transaction_request.rb +360 -0
  106. data/lib/shell_data_reporting_ap_is/models/multi_priced_transaction_request_accounts_items.rb +84 -0
  107. data/lib/shell_data_reporting_ap_is/models/multi_priced_transaction_response.rb +110 -0
  108. data/lib/shell_data_reporting_ap_is/models/multi_priced_transaction_response_transactions_items.rb +1724 -0
  109. data/lib/shell_data_reporting_ap_is/models/o_auth_provider_error_enum.rb +45 -0
  110. data/lib/shell_data_reporting_ap_is/models/o_auth_token.rb +100 -0
  111. data/lib/shell_data_reporting_ap_is/models/past_statement_of_accounts.rb +502 -0
  112. data/lib/shell_data_reporting_ap_is/models/payer_access.rb +147 -0
  113. data/lib/shell_data_reporting_ap_is/models/payer_details.rb +1412 -0
  114. data/lib/shell_data_reporting_ap_is/models/payer_request.rb +126 -0
  115. data/lib/shell_data_reporting_ap_is/models/payer_response.rb +115 -0
  116. data/lib/shell_data_reporting_ap_is/models/payers.rb +109 -0
  117. data/lib/shell_data_reporting_ap_is/models/payments_since_last_soa.rb +322 -0
  118. data/lib/shell_data_reporting_ap_is/models/pin_advice_types.rb +80 -0
  119. data/lib/shell_data_reporting_ap_is/models/price_list.rb +485 -0
  120. data/lib/shell_data_reporting_ap_is/models/price_trans_summary_request.rb +477 -0
  121. data/lib/shell_data_reporting_ap_is/models/price_transaction_request.rb +572 -0
  122. data/lib/shell_data_reporting_ap_is/models/priced_request_data.rb +485 -0
  123. data/lib/shell_data_reporting_ap_is/models/priced_response_data.rb +2132 -0
  124. data/lib/shell_data_reporting_ap_is/models/priced_trans_summary_response.rb +79 -0
  125. data/lib/shell_data_reporting_ap_is/models/priced_trans_summary_response_transactions_summary_items.rb +242 -0
  126. data/lib/shell_data_reporting_ap_is/models/priced_transaction_items_location_items.rb +67 -0
  127. data/lib/shell_data_reporting_ap_is/models/priced_transaction_req_v2_invoice_status_enum.rb +27 -0
  128. data/lib/shell_data_reporting_ap_is/models/priced_transaction_req_v2_period_enum.rb +27 -0
  129. data/lib/shell_data_reporting_ap_is/models/priced_transaction_req_v2_sort_order_enum.rb +37 -0
  130. data/lib/shell_data_reporting_ap_is/models/priced_transaction_request_v2.rb +72 -0
  131. data/lib/shell_data_reporting_ap_is/models/priced_transaction_resp_v2_refund_flag_enum.rb +23 -0
  132. data/lib/shell_data_reporting_ap_is/models/priced_transaction_response.rb +59 -0
  133. data/lib/shell_data_reporting_ap_is/models/priced_transaction_response_transactions_items.rb +1719 -0
  134. data/lib/shell_data_reporting_ap_is/models/priced_transaction_response_v2.rb +110 -0
  135. data/lib/shell_data_reporting_ap_is/models/pricing_current_volume.rb +115 -0
  136. data/lib/shell_data_reporting_ap_is/models/pricing_history.rb +105 -0
  137. data/lib/shell_data_reporting_ap_is/models/purchase_categories.rb +114 -0
  138. data/lib/shell_data_reporting_ap_is/models/recent_transaction_req.rb +217 -0
  139. data/lib/shell_data_reporting_ap_is/models/recent_transaction_request.rb +66 -0
  140. data/lib/shell_data_reporting_ap_is/models/recent_transactions.rb +918 -0
  141. data/lib/shell_data_reporting_ap_is/models/recent_transactions_response.rb +110 -0
  142. data/lib/shell_data_reporting_ap_is/models/role.rb +102 -0
  143. data/lib/shell_data_reporting_ap_is/models/search_doc_req.rb +269 -0
  144. data/lib/shell_data_reporting_ap_is/models/search_documents_invoice.rb +204 -0
  145. data/lib/shell_data_reporting_ap_is/models/search_documents_request.rb +70 -0
  146. data/lib/shell_data_reporting_ap_is/models/search_documents_response.rb +122 -0
  147. data/lib/shell_data_reporting_ap_is/models/search_soa_req.rb +197 -0
  148. data/lib/shell_data_reporting_ap_is/models/search_statement_of_account.rb +220 -0
  149. data/lib/shell_data_reporting_ap_is/models/search_statement_of_account_request.rb +70 -0
  150. data/lib/shell_data_reporting_ap_is/models/search_statement_of_account_response.rb +120 -0
  151. data/lib/shell_data_reporting_ap_is/models/site_location.rb +67 -0
  152. data/lib/shell_data_reporting_ap_is/models/statement_of_account_request.rb +50 -0
  153. data/lib/shell_data_reporting_ap_is/models/statement_of_account_request_filters.rb +197 -0
  154. data/lib/shell_data_reporting_ap_is/models/statement_of_account_resp.rb +138 -0
  155. data/lib/shell_data_reporting_ap_is/models/statement_of_account_response.rb +80 -0
  156. data/lib/shell_data_reporting_ap_is/models/tier.rb +167 -0
  157. data/lib/shell_data_reporting_ap_is/models/transaction_exceptions.rb +1267 -0
  158. data/lib/shell_data_reporting_ap_is/models/transaction_exceptions_request.rb +267 -0
  159. data/lib/shell_data_reporting_ap_is/models/transaction_exceptions_response.rb +100 -0
  160. data/lib/shell_data_reporting_ap_is/models/transaction_fees_request.rb +348 -0
  161. data/lib/shell_data_reporting_ap_is/models/transaction_fees_response.rb +111 -0
  162. data/lib/shell_data_reporting_ap_is/models/update_odometer.rb +62 -0
  163. data/lib/shell_data_reporting_ap_is/models/update_odometer_reference.rb +67 -0
  164. data/lib/shell_data_reporting_ap_is/models/update_odometer_request.rb +146 -0
  165. data/lib/shell_data_reporting_ap_is/models/update_odometer_response.rb +93 -0
  166. data/lib/shell_data_reporting_ap_is/models/usage_summary.rb +202 -0
  167. data/lib/shell_data_reporting_ap_is/models/volume_based_bonus_request.rb +118 -0
  168. data/lib/shell_data_reporting_ap_is/models/volume_based_bonus_response.rb +120 -0
  169. data/lib/shell_data_reporting_ap_is/models/volume_based_pricing_request.rb +103 -0
  170. data/lib/shell_data_reporting_ap_is/models/volume_based_pricing_response.rb +120 -0
  171. data/lib/shell_data_reporting_ap_is/utilities/date_time_helper.rb +11 -0
  172. data/lib/shell_data_reporting_ap_is/utilities/file_wrapper.rb +16 -0
  173. data/lib/shell_data_reporting_ap_is.rb +229 -0
  174. data/test/controllers/controller_test_base.rb +34 -0
  175. data/test/controllers/test_invoice_controller.rb +398 -0
  176. data/test/controllers/test_transaction_controller.rb +235 -0
  177. data/test/http_response_catcher.rb +19 -0
  178. metadata +302 -0
@@ -0,0 +1,419 @@
1
+ # shell_data_reporting_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellDataReportingApIs
7
+ # BonusConfiguration Model.
8
+ class BonusConfiguration < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Account identifier of the Pricing Account associated with the Payer.
13
+ # @return [Integer]
14
+ attr_accessor :pricing_account_id
15
+
16
+ # Account number of the Pricing Account associated with the Payer.
17
+ # @return [String]
18
+ attr_accessor :pricing_account_number
19
+
20
+ # Short name of the Pricing Account associated with the Payer.
21
+ # @return [String]
22
+ attr_accessor :pricing_account_short_name
23
+
24
+ # Full name of the Pricing Account associated with the Payer.
25
+ # @return [String]
26
+ attr_accessor :pricing_account_full_name
27
+
28
+ # Bonus or association bonus configuration identifier that is associated to
29
+ # the payer.
30
+ # @return [Integer]
31
+ attr_accessor :fee_rule_id
32
+
33
+ # Bonus or association bonus configuration description that is associated to
34
+ # the payer.
35
+ # @return [String]
36
+ attr_accessor :fee_rule_description
37
+
38
+ # The bonus or association bonus configuration becomes effective on the
39
+ # payer from this date.
40
+ # Format: YYYYMMDD
41
+ # @return [String]
42
+ attr_accessor :fee_rule_date_effective
43
+
44
+ # The bonus or association bonus configuration is terminated for the payer
45
+ # on this date.
46
+ # Format: YYYYMMDD
47
+ # @return [String]
48
+ attr_accessor :fee_rule_date_terminated
49
+
50
+ # Configuration to specify how the bonus is paid.
51
+ # Format: ID-Description
52
+ # Example:
53
+ # 1-Pay to Payer
54
+ # 2-Pay to invoice levels before the payer
55
+ # 3-Pay to specific customer
56
+ # 4-Pay to Association Customer
57
+ # 5-Pay to Associated Customers
58
+ # @return [String]
59
+ attr_accessor :bonus_paid_to
60
+
61
+ # Account identifier of the specific account to which the bonus is paid back
62
+ # @return [Integer]
63
+ attr_accessor :bonus_paid_to_account_id
64
+
65
+ # Account number of the specific account to which the bonus is paid back
66
+ # @return [String]
67
+ attr_accessor :bonus_paid_to_account_number
68
+
69
+ # Short name of the specific account to which the bonus is paid back
70
+ # @return [String]
71
+ attr_accessor :bonus_paid_to_account_short_name
72
+
73
+ # Full name of the specific account to which the bonus is paid back
74
+ # @return [String]
75
+ attr_accessor :bonus_paid_to_account_full_name
76
+
77
+ # Frequency of the configuration.
78
+ # Format: ID-Description
79
+ # Examples:
80
+ # 1-Daily (all days)
81
+ # 2-Daily (only working days)
82
+ # 3-Weekly – Monday
83
+ # @return [String]
84
+ attr_accessor :frequency
85
+
86
+ # The next bonus is calculated for the payer on this date.
87
+ # Format: YYYYMMDD
88
+ # @return [String]
89
+ attr_accessor :next_calculation_date
90
+
91
+ # The previous bonus was calculated for the payer on this date.
92
+ # Format: YYYYMMDD
93
+ # @return [String]
94
+ attr_accessor :previous_calculated_date
95
+
96
+ # Fee Rule Basis configured.
97
+ # Format: ID-Description
98
+ # Example:
99
+ # 1-Currency Per Unit
100
+ # 2-Percentage of Uplift
101
+ # 3-Lump Sum
102
+ # @return [String]
103
+ attr_accessor :fee_rule_basis
104
+
105
+ # ISO currency code of the currency configured in the Bonus Configuration,
106
+ # if any.
107
+ # @return [String]
108
+ attr_accessor :fee_rule_currency_code
109
+
110
+ # Currency symbol of the currency configured in the Bonus Configuration, if
111
+ # any.
112
+ # @return [String]
113
+ attr_accessor :fee_rule_currency_symbol
114
+
115
+ # This bonus or association bonus is available from this date.
116
+ # Format: YYYYMMDD
117
+ # @return [String]
118
+ attr_accessor :fee_rule_available_from
119
+
120
+ # This bonus or association bonus configuration will not be available from
121
+ # this date.
122
+ # Format: YYYYMMDD
123
+ # @return [String]
124
+ attr_accessor :fee_rule_available_to
125
+
126
+ # This bonus or association bonus configuration will not be available from
127
+ # this date.
128
+ # Format: YYYYMMDD
129
+ # @return [Array[FeeRuleLocation]]
130
+ attr_accessor :fee_rule_locations
131
+
132
+ # This bonus or association bonus configuration will not be available from
133
+ # this date.
134
+ # Format: YYYYMMDD
135
+ # @return [Array[FeeRuleTier]]
136
+ attr_accessor :fee_rule_tiers
137
+
138
+ # This bonus or association bonus configuration will not be available from
139
+ # this date.
140
+ # Format: YYYYMMDD
141
+ # @return [Array[AssociatedAccount]]
142
+ attr_accessor :associated_accounts
143
+
144
+ # This bonus or association bonus configuration will not be available from
145
+ # this date.
146
+ # Format: YYYYMMDD
147
+ # @return [Array[FeeRuleProduct]]
148
+ attr_accessor :fee_rule_products
149
+
150
+ # A mapping from model property names to API property names.
151
+ def self.names
152
+ @_hash = {} if @_hash.nil?
153
+ @_hash['pricing_account_id'] = 'PricingAccountId'
154
+ @_hash['pricing_account_number'] = 'PricingAccountNumber'
155
+ @_hash['pricing_account_short_name'] = 'PricingAccountShortName'
156
+ @_hash['pricing_account_full_name'] = 'PricingAccountFullName'
157
+ @_hash['fee_rule_id'] = 'FeeRuleId'
158
+ @_hash['fee_rule_description'] = 'FeeRuleDescription'
159
+ @_hash['fee_rule_date_effective'] = 'FeeRuleDateEffective'
160
+ @_hash['fee_rule_date_terminated'] = 'FeeRuleDateTerminated'
161
+ @_hash['bonus_paid_to'] = 'BonusPaidTo'
162
+ @_hash['bonus_paid_to_account_id'] = 'BonusPaidToAccountId'
163
+ @_hash['bonus_paid_to_account_number'] = 'BonusPaidToAccountNumber'
164
+ @_hash['bonus_paid_to_account_short_name'] =
165
+ 'BonusPaidToAccountShortName'
166
+ @_hash['bonus_paid_to_account_full_name'] = 'BonusPaidToAccountFullName'
167
+ @_hash['frequency'] = 'Frequency'
168
+ @_hash['next_calculation_date'] = 'NextCalculationDate'
169
+ @_hash['previous_calculated_date'] = 'PreviousCalculatedDate'
170
+ @_hash['fee_rule_basis'] = 'FeeRuleBasis'
171
+ @_hash['fee_rule_currency_code'] = 'FeeRuleCurrencyCode'
172
+ @_hash['fee_rule_currency_symbol'] = 'FeeRuleCurrencySymbol'
173
+ @_hash['fee_rule_available_from'] = 'FeeRuleAvailableFrom'
174
+ @_hash['fee_rule_available_to'] = 'FeeRuleAvailableTo'
175
+ @_hash['fee_rule_locations'] = 'FeeRuleLocations'
176
+ @_hash['fee_rule_tiers'] = 'FeeRuleTiers'
177
+ @_hash['associated_accounts'] = 'AssociatedAccounts'
178
+ @_hash['fee_rule_products'] = 'FeeRuleProducts'
179
+ @_hash
180
+ end
181
+
182
+ # An array for optional fields
183
+ def self.optionals
184
+ %w[
185
+ pricing_account_id
186
+ pricing_account_number
187
+ pricing_account_short_name
188
+ pricing_account_full_name
189
+ fee_rule_id
190
+ fee_rule_description
191
+ fee_rule_date_effective
192
+ fee_rule_date_terminated
193
+ bonus_paid_to
194
+ bonus_paid_to_account_id
195
+ bonus_paid_to_account_number
196
+ bonus_paid_to_account_short_name
197
+ bonus_paid_to_account_full_name
198
+ frequency
199
+ next_calculation_date
200
+ previous_calculated_date
201
+ fee_rule_basis
202
+ fee_rule_currency_code
203
+ fee_rule_currency_symbol
204
+ fee_rule_available_from
205
+ fee_rule_available_to
206
+ fee_rule_locations
207
+ fee_rule_tiers
208
+ associated_accounts
209
+ fee_rule_products
210
+ ]
211
+ end
212
+
213
+ # An array for nullable fields
214
+ def self.nullables
215
+ %w[
216
+ pricing_account_id
217
+ pricing_account_number
218
+ pricing_account_short_name
219
+ pricing_account_full_name
220
+ fee_rule_id
221
+ fee_rule_description
222
+ fee_rule_date_effective
223
+ fee_rule_date_terminated
224
+ bonus_paid_to
225
+ bonus_paid_to_account_id
226
+ bonus_paid_to_account_number
227
+ bonus_paid_to_account_short_name
228
+ bonus_paid_to_account_full_name
229
+ frequency
230
+ next_calculation_date
231
+ previous_calculated_date
232
+ fee_rule_basis
233
+ fee_rule_currency_code
234
+ fee_rule_currency_symbol
235
+ fee_rule_available_from
236
+ fee_rule_available_to
237
+ ]
238
+ end
239
+
240
+ def initialize(pricing_account_id = SKIP,
241
+ pricing_account_number = SKIP,
242
+ pricing_account_short_name = SKIP,
243
+ pricing_account_full_name = SKIP,
244
+ fee_rule_id = SKIP,
245
+ fee_rule_description = SKIP,
246
+ fee_rule_date_effective = SKIP,
247
+ fee_rule_date_terminated = SKIP,
248
+ bonus_paid_to = SKIP,
249
+ bonus_paid_to_account_id = SKIP,
250
+ bonus_paid_to_account_number = SKIP,
251
+ bonus_paid_to_account_short_name = SKIP,
252
+ bonus_paid_to_account_full_name = SKIP,
253
+ frequency = SKIP,
254
+ next_calculation_date = SKIP,
255
+ previous_calculated_date = SKIP,
256
+ fee_rule_basis = SKIP,
257
+ fee_rule_currency_code = SKIP,
258
+ fee_rule_currency_symbol = SKIP,
259
+ fee_rule_available_from = SKIP,
260
+ fee_rule_available_to = SKIP,
261
+ fee_rule_locations = SKIP,
262
+ fee_rule_tiers = SKIP,
263
+ associated_accounts = SKIP,
264
+ fee_rule_products = SKIP)
265
+ @pricing_account_id = pricing_account_id unless pricing_account_id == SKIP
266
+ @pricing_account_number = pricing_account_number unless pricing_account_number == SKIP
267
+ unless pricing_account_short_name == SKIP
268
+ @pricing_account_short_name =
269
+ pricing_account_short_name
270
+ end
271
+ unless pricing_account_full_name == SKIP
272
+ @pricing_account_full_name =
273
+ pricing_account_full_name
274
+ end
275
+ @fee_rule_id = fee_rule_id unless fee_rule_id == SKIP
276
+ @fee_rule_description = fee_rule_description unless fee_rule_description == SKIP
277
+ @fee_rule_date_effective = fee_rule_date_effective unless fee_rule_date_effective == SKIP
278
+ @fee_rule_date_terminated = fee_rule_date_terminated unless fee_rule_date_terminated == SKIP
279
+ @bonus_paid_to = bonus_paid_to unless bonus_paid_to == SKIP
280
+ @bonus_paid_to_account_id = bonus_paid_to_account_id unless bonus_paid_to_account_id == SKIP
281
+ unless bonus_paid_to_account_number == SKIP
282
+ @bonus_paid_to_account_number =
283
+ bonus_paid_to_account_number
284
+ end
285
+ unless bonus_paid_to_account_short_name == SKIP
286
+ @bonus_paid_to_account_short_name =
287
+ bonus_paid_to_account_short_name
288
+ end
289
+ unless bonus_paid_to_account_full_name == SKIP
290
+ @bonus_paid_to_account_full_name =
291
+ bonus_paid_to_account_full_name
292
+ end
293
+ @frequency = frequency unless frequency == SKIP
294
+ @next_calculation_date = next_calculation_date unless next_calculation_date == SKIP
295
+ @previous_calculated_date = previous_calculated_date unless previous_calculated_date == SKIP
296
+ @fee_rule_basis = fee_rule_basis unless fee_rule_basis == SKIP
297
+ @fee_rule_currency_code = fee_rule_currency_code unless fee_rule_currency_code == SKIP
298
+ @fee_rule_currency_symbol = fee_rule_currency_symbol unless fee_rule_currency_symbol == SKIP
299
+ @fee_rule_available_from = fee_rule_available_from unless fee_rule_available_from == SKIP
300
+ @fee_rule_available_to = fee_rule_available_to unless fee_rule_available_to == SKIP
301
+ @fee_rule_locations = fee_rule_locations unless fee_rule_locations == SKIP
302
+ @fee_rule_tiers = fee_rule_tiers unless fee_rule_tiers == SKIP
303
+ @associated_accounts = associated_accounts unless associated_accounts == SKIP
304
+ @fee_rule_products = fee_rule_products unless fee_rule_products == SKIP
305
+ end
306
+
307
+ # Creates an instance of the object from a hash.
308
+ def self.from_hash(hash)
309
+ return nil unless hash
310
+
311
+ # Extract variables from the hash.
312
+ pricing_account_id =
313
+ hash.key?('PricingAccountId') ? hash['PricingAccountId'] : SKIP
314
+ pricing_account_number =
315
+ hash.key?('PricingAccountNumber') ? hash['PricingAccountNumber'] : SKIP
316
+ pricing_account_short_name =
317
+ hash.key?('PricingAccountShortName') ? hash['PricingAccountShortName'] : SKIP
318
+ pricing_account_full_name =
319
+ hash.key?('PricingAccountFullName') ? hash['PricingAccountFullName'] : SKIP
320
+ fee_rule_id = hash.key?('FeeRuleId') ? hash['FeeRuleId'] : SKIP
321
+ fee_rule_description =
322
+ hash.key?('FeeRuleDescription') ? hash['FeeRuleDescription'] : SKIP
323
+ fee_rule_date_effective =
324
+ hash.key?('FeeRuleDateEffective') ? hash['FeeRuleDateEffective'] : SKIP
325
+ fee_rule_date_terminated =
326
+ hash.key?('FeeRuleDateTerminated') ? hash['FeeRuleDateTerminated'] : SKIP
327
+ bonus_paid_to = hash.key?('BonusPaidTo') ? hash['BonusPaidTo'] : SKIP
328
+ bonus_paid_to_account_id =
329
+ hash.key?('BonusPaidToAccountId') ? hash['BonusPaidToAccountId'] : SKIP
330
+ bonus_paid_to_account_number =
331
+ hash.key?('BonusPaidToAccountNumber') ? hash['BonusPaidToAccountNumber'] : SKIP
332
+ bonus_paid_to_account_short_name =
333
+ hash.key?('BonusPaidToAccountShortName') ? hash['BonusPaidToAccountShortName'] : SKIP
334
+ bonus_paid_to_account_full_name =
335
+ hash.key?('BonusPaidToAccountFullName') ? hash['BonusPaidToAccountFullName'] : SKIP
336
+ frequency = hash.key?('Frequency') ? hash['Frequency'] : SKIP
337
+ next_calculation_date =
338
+ hash.key?('NextCalculationDate') ? hash['NextCalculationDate'] : SKIP
339
+ previous_calculated_date =
340
+ hash.key?('PreviousCalculatedDate') ? hash['PreviousCalculatedDate'] : SKIP
341
+ fee_rule_basis = hash.key?('FeeRuleBasis') ? hash['FeeRuleBasis'] : SKIP
342
+ fee_rule_currency_code =
343
+ hash.key?('FeeRuleCurrencyCode') ? hash['FeeRuleCurrencyCode'] : SKIP
344
+ fee_rule_currency_symbol =
345
+ hash.key?('FeeRuleCurrencySymbol') ? hash['FeeRuleCurrencySymbol'] : SKIP
346
+ fee_rule_available_from =
347
+ hash.key?('FeeRuleAvailableFrom') ? hash['FeeRuleAvailableFrom'] : SKIP
348
+ fee_rule_available_to =
349
+ hash.key?('FeeRuleAvailableTo') ? hash['FeeRuleAvailableTo'] : SKIP
350
+ # Parameter is an array, so we need to iterate through it
351
+ fee_rule_locations = nil
352
+ unless hash['FeeRuleLocations'].nil?
353
+ fee_rule_locations = []
354
+ hash['FeeRuleLocations'].each do |structure|
355
+ fee_rule_locations << (FeeRuleLocation.from_hash(structure) if structure)
356
+ end
357
+ end
358
+
359
+ fee_rule_locations = SKIP unless hash.key?('FeeRuleLocations')
360
+ # Parameter is an array, so we need to iterate through it
361
+ fee_rule_tiers = nil
362
+ unless hash['FeeRuleTiers'].nil?
363
+ fee_rule_tiers = []
364
+ hash['FeeRuleTiers'].each do |structure|
365
+ fee_rule_tiers << (FeeRuleTier.from_hash(structure) if structure)
366
+ end
367
+ end
368
+
369
+ fee_rule_tiers = SKIP unless hash.key?('FeeRuleTiers')
370
+ # Parameter is an array, so we need to iterate through it
371
+ associated_accounts = nil
372
+ unless hash['AssociatedAccounts'].nil?
373
+ associated_accounts = []
374
+ hash['AssociatedAccounts'].each do |structure|
375
+ associated_accounts << (AssociatedAccount.from_hash(structure) if structure)
376
+ end
377
+ end
378
+
379
+ associated_accounts = SKIP unless hash.key?('AssociatedAccounts')
380
+ # Parameter is an array, so we need to iterate through it
381
+ fee_rule_products = nil
382
+ unless hash['FeeRuleProducts'].nil?
383
+ fee_rule_products = []
384
+ hash['FeeRuleProducts'].each do |structure|
385
+ fee_rule_products << (FeeRuleProduct.from_hash(structure) if structure)
386
+ end
387
+ end
388
+
389
+ fee_rule_products = SKIP unless hash.key?('FeeRuleProducts')
390
+
391
+ # Create object from extracted values.
392
+ BonusConfiguration.new(pricing_account_id,
393
+ pricing_account_number,
394
+ pricing_account_short_name,
395
+ pricing_account_full_name,
396
+ fee_rule_id,
397
+ fee_rule_description,
398
+ fee_rule_date_effective,
399
+ fee_rule_date_terminated,
400
+ bonus_paid_to,
401
+ bonus_paid_to_account_id,
402
+ bonus_paid_to_account_number,
403
+ bonus_paid_to_account_short_name,
404
+ bonus_paid_to_account_full_name,
405
+ frequency,
406
+ next_calculation_date,
407
+ previous_calculated_date,
408
+ fee_rule_basis,
409
+ fee_rule_currency_code,
410
+ fee_rule_currency_symbol,
411
+ fee_rule_available_from,
412
+ fee_rule_available_to,
413
+ fee_rule_locations,
414
+ fee_rule_tiers,
415
+ associated_accounts,
416
+ fee_rule_products)
417
+ end
418
+ end
419
+ end