xero-ruby 3.4.0 → 3.7.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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xero-ruby/api/finance_api.rb +961 -0
  3. data/lib/xero-ruby/api/payroll_uk_api.rb +2 -2
  4. data/lib/xero-ruby/api_client.rb +12 -1
  5. data/lib/xero-ruby/configuration.rb +2 -0
  6. data/lib/xero-ruby/models/accounting/account.rb +34 -34
  7. data/lib/xero-ruby/models/accounting/account_type.rb +22 -22
  8. data/lib/xero-ruby/models/accounting/action.rb +2 -2
  9. data/lib/xero-ruby/models/accounting/address.rb +2 -2
  10. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +3 -3
  11. data/lib/xero-ruby/models/accounting/bank_transaction.rb +11 -11
  12. data/lib/xero-ruby/models/accounting/batch_payment.rb +4 -4
  13. data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
  14. data/lib/xero-ruby/models/accounting/budget.rb +2 -2
  15. data/lib/xero-ruby/models/accounting/contact.rb +89 -4
  16. data/lib/xero-ruby/models/accounting/contact_group.rb +2 -2
  17. data/lib/xero-ruby/models/accounting/country_code.rb +240 -240
  18. data/lib/xero-ruby/models/accounting/credit_note.rb +8 -8
  19. data/lib/xero-ruby/models/accounting/currency_code.rb +166 -166
  20. data/lib/xero-ruby/models/accounting/employee.rb +4 -4
  21. data/lib/xero-ruby/models/accounting/expense_claim.rb +5 -5
  22. data/lib/xero-ruby/models/accounting/external_link.rb +5 -5
  23. data/lib/xero-ruby/models/accounting/invoice.rb +14 -14
  24. data/lib/xero-ruby/models/accounting/journal.rb +25 -25
  25. data/lib/xero-ruby/models/accounting/line_amount_types.rb +3 -3
  26. data/lib/xero-ruby/models/accounting/line_item.rb +11 -1
  27. data/lib/xero-ruby/models/accounting/line_item_item.rb +272 -0
  28. data/lib/xero-ruby/models/accounting/linked_transaction.rb +8 -8
  29. data/lib/xero-ruby/models/accounting/manual_journal.rb +5 -5
  30. data/lib/xero-ruby/models/accounting/organisation.rb +70 -70
  31. data/lib/xero-ruby/models/accounting/overpayment.rb +6 -6
  32. data/lib/xero-ruby/models/accounting/payment.rb +10 -10
  33. data/lib/xero-ruby/models/accounting/payment_term_type.rb +4 -4
  34. data/lib/xero-ruby/models/accounting/phone.rb +5 -5
  35. data/lib/xero-ruby/models/accounting/prepayment.rb +7 -7
  36. data/lib/xero-ruby/models/accounting/purchase_order.rb +5 -5
  37. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +3 -3
  38. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +6 -6
  39. data/lib/xero-ruby/models/accounting/receipt.rb +5 -5
  40. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +5 -5
  41. data/lib/xero-ruby/models/accounting/report.rb +1 -1
  42. data/lib/xero-ruby/models/accounting/row_type.rb +4 -4
  43. data/lib/xero-ruby/models/accounting/schedule.rb +8 -8
  44. data/lib/xero-ruby/models/accounting/tax_rate.rb +78 -78
  45. data/lib/xero-ruby/models/accounting/tax_type.rb +59 -59
  46. data/lib/xero-ruby/models/accounting/time_zone.rb +109 -109
  47. data/lib/xero-ruby/models/accounting/tracking_category.rb +3 -3
  48. data/lib/xero-ruby/models/accounting/tracking_option.rb +3 -3
  49. data/lib/xero-ruby/models/accounting/user.rb +7 -7
  50. data/lib/xero-ruby/models/app_store/plan.rb +6 -5
  51. data/lib/xero-ruby/models/app_store/product.rb +2 -2
  52. data/lib/xero-ruby/models/app_store/subscription.rb +37 -0
  53. data/lib/xero-ruby/models/app_store/subscription_item.rb +53 -1
  54. data/lib/xero-ruby/models/assets/asset_status.rb +3 -3
  55. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +3 -3
  56. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +11 -11
  57. data/lib/xero-ruby/models/files/object_group.rb +12 -11
  58. data/lib/xero-ruby/models/files/object_type.rb +56 -55
  59. data/lib/xero-ruby/models/finance/account_usage.rb +342 -0
  60. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -0
  61. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -0
  62. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -0
  63. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -0
  64. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -0
  65. data/lib/xero-ruby/models/finance/bank_statement_accounting_response.rb +254 -0
  66. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -0
  67. data/lib/xero-ruby/models/finance/bank_transaction_response.rb +274 -0
  68. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -0
  69. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -0
  70. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -0
  71. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -0
  72. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -0
  73. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -0
  74. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -0
  75. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -0
  76. data/lib/xero-ruby/models/finance/contact_response.rb +232 -0
  77. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -0
  78. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -0
  79. data/lib/xero-ruby/models/finance/credit_note_response.rb +254 -0
  80. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -0
  81. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -0
  82. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -0
  83. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -0
  84. data/lib/xero-ruby/models/finance/invoice_response.rb +254 -0
  85. data/lib/xero-ruby/models/finance/line_item_response.rb +252 -0
  86. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -0
  87. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -0
  88. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -0
  89. data/lib/xero-ruby/models/finance/overpayment_response.rb +254 -0
  90. data/lib/xero-ruby/models/finance/payment_response.rb +312 -0
  91. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -0
  92. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -0
  93. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -0
  94. data/lib/xero-ruby/models/finance/practice_response.rb +262 -0
  95. data/lib/xero-ruby/models/finance/prepayment_response.rb +254 -0
  96. data/lib/xero-ruby/models/finance/problem.rb +252 -0
  97. data/lib/xero-ruby/models/finance/problem_type.rb +44 -0
  98. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -0
  99. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -0
  100. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -0
  101. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -0
  102. data/lib/xero-ruby/models/finance/statement_line_response.rb +346 -0
  103. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -0
  104. data/lib/xero-ruby/models/finance/statement_response.rb +274 -0
  105. data/lib/xero-ruby/models/finance/total_detail.rb +242 -0
  106. data/lib/xero-ruby/models/finance/total_other.rb +242 -0
  107. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -0
  108. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -0
  109. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -0
  110. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -0
  111. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -0
  112. data/lib/xero-ruby/models/finance/user_response.rb +336 -0
  113. data/lib/xero-ruby/models/payroll_au/account_type.rb +23 -23
  114. data/lib/xero-ruby/models/payroll_au/allowance_category.rb +41 -0
  115. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +10 -7
  116. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +6 -6
  117. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +3 -3
  118. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +3 -3
  119. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +14 -4
  120. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +3 -3
  121. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +12 -12
  122. data/lib/xero-ruby/models/payroll_au/employee.rb +11 -11
  123. data/lib/xero-ruby/models/payroll_au/employee_status.rb +2 -2
  124. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +5 -5
  125. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +2 -2
  126. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +2 -2
  127. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +5 -5
  128. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +2 -2
  129. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +4 -4
  130. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +6 -6
  131. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +2 -2
  132. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +7 -7
  133. data/lib/xero-ruby/models/payroll_au/rate_type.rb +3 -3
  134. data/lib/xero-ruby/models/payroll_au/residency_status.rb +3 -3
  135. data/lib/xero-ruby/models/payroll_au/state.rb +8 -8
  136. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +2 -2
  137. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +3 -3
  138. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +4 -4
  139. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +4 -4
  140. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +5 -5
  141. data/lib/xero-ruby/models/payroll_nz/account.rb +4 -4
  142. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +2 -2
  143. data/lib/xero-ruby/models/payroll_nz/benefit.rb +5 -5
  144. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +7 -7
  145. data/lib/xero-ruby/models/payroll_nz/deduction.rb +4 -4
  146. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +18 -18
  147. data/lib/xero-ruby/models/payroll_nz/employee.rb +2 -2
  148. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +4 -4
  149. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +6 -6
  150. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +8 -8
  151. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +5 -5
  152. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +2 -2
  153. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +5 -5
  154. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +3 -3
  155. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +3 -3
  156. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +8 -8
  157. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +5 -5
  158. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +11 -11
  159. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +19 -19
  160. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +2 -2
  161. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +4 -4
  162. data/lib/xero-ruby/models/payroll_uk/account.rb +7 -7
  163. data/lib/xero-ruby/models/payroll_uk/benefit.rb +4 -4
  164. data/lib/xero-ruby/models/payroll_uk/deduction.rb +12 -12
  165. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +26 -26
  166. data/lib/xero-ruby/models/payroll_uk/employee.rb +16 -6
  167. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +4 -4
  168. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +6 -6
  169. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +8 -8
  170. data/lib/xero-ruby/models/payroll_uk/employment.rb +8 -8
  171. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +2 -2
  172. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +11 -11
  173. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +6 -6
  174. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +3 -3
  175. data/lib/xero-ruby/models/payroll_uk/payslip.rb +3 -3
  176. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +5 -5
  177. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +14 -14
  178. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +3 -3
  179. data/lib/xero-ruby/models/projects/charge_type.rb +3 -3
  180. data/lib/xero-ruby/models/projects/currency_code.rb +164 -164
  181. data/lib/xero-ruby/models/projects/project_status.rb +2 -2
  182. data/lib/xero-ruby/models/projects/task.rb +3 -3
  183. data/lib/xero-ruby/models/projects/time_entry.rb +3 -3
  184. data/lib/xero-ruby/version.rb +2 -2
  185. data/lib/xero-ruby.rb +57 -0
  186. data/spec/api_client_spec.rb +3 -0
  187. data/spec/app_store/api/app_store_api_spec.rb +1 -1
  188. data/spec/configuration_spec.rb +1 -0
  189. data/spec/finance/api/finance_api_spec.rb +156 -0
  190. data/spec/finance/models/account_usage_response_spec.rb +58 -0
  191. data/spec/finance/models/account_usage_spec.rb +112 -0
  192. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -0
  193. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -0
  194. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -0
  195. data/spec/finance/models/balance_sheet_response_spec.rb +58 -0
  196. data/spec/finance/models/bank_statement_response_spec.rb +46 -0
  197. data/spec/finance/models/cash_account_response_spec.rb +64 -0
  198. data/spec/finance/models/cash_balance_spec.rb +52 -0
  199. data/spec/finance/models/cash_validation_response_spec.rb +64 -0
  200. data/spec/finance/models/cashflow_account_spec.rb +76 -0
  201. data/spec/finance/models/cashflow_activity_spec.rb +52 -0
  202. data/spec/finance/models/cashflow_response_spec.rb +58 -0
  203. data/spec/finance/models/cashflow_type_spec.rb +52 -0
  204. data/spec/finance/models/current_statement_response_spec.rb +70 -0
  205. data/spec/finance/models/data_source_response_spec.rb +124 -0
  206. data/spec/finance/models/history_record_response_spec.rb +64 -0
  207. data/spec/finance/models/lock_history_model_spec.rb +52 -0
  208. data/spec/finance/models/lock_history_response_spec.rb +52 -0
  209. data/spec/finance/models/pnl_account_class_spec.rb +46 -0
  210. data/spec/finance/models/pnl_account_spec.rb +70 -0
  211. data/spec/finance/models/pnl_account_type_spec.rb +52 -0
  212. data/spec/finance/models/practice_response_spec.rb +64 -0
  213. data/spec/finance/models/problem_spec.rb +58 -0
  214. data/spec/finance/models/problem_type_spec.rb +34 -0
  215. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -0
  216. data/spec/finance/models/report_history_model_spec.rb +52 -0
  217. data/spec/finance/models/report_history_response_spec.rb +52 -0
  218. data/spec/finance/models/statement_balance_response_spec.rb +46 -0
  219. data/spec/finance/models/statement_lines_response_spec.rb +136 -0
  220. data/spec/finance/models/trial_balance_account_spec.rb +94 -0
  221. data/spec/finance/models/trial_balance_entry_spec.rb +46 -0
  222. data/spec/finance/models/trial_balance_movement_spec.rb +58 -0
  223. data/spec/finance/models/trial_balance_response_spec.rb +52 -0
  224. data/spec/finance/models/user_activities_response_spec.rb +52 -0
  225. data/spec/finance/models/user_response_spec.rb +106 -0
  226. metadata +133 -2
@@ -24,9 +24,9 @@ module XeroRuby::Accounting
24
24
 
25
25
  # The status of a tracking option
26
26
  attr_accessor :status
27
- ACTIVE = "ACTIVE".freeze
28
- ARCHIVED = "ARCHIVED".freeze
29
- DELETED = "DELETED".freeze
27
+ ACTIVE ||= "ACTIVE".freeze
28
+ ARCHIVED ||= "ARCHIVED".freeze
29
+ DELETED ||= "DELETED".freeze
30
30
 
31
31
  # Filter by a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9
32
32
  attr_accessor :tracking_category_id
@@ -36,13 +36,13 @@ module XeroRuby::Accounting
36
36
 
37
37
  # User role that defines permissions in Xero and via API (READONLY, INVOICEONLY, STANDARD, FINANCIALADVISER, etc)
38
38
  attr_accessor :organisation_role
39
- READONLY = "READONLY".freeze
40
- INVOICEONLY = "INVOICEONLY".freeze
41
- STANDARD = "STANDARD".freeze
42
- FINANCIALADVISER = "FINANCIALADVISER".freeze
43
- MANAGEDCLIENT = "MANAGEDCLIENT".freeze
44
- CASHBOOKCLIENT = "CASHBOOKCLIENT".freeze
45
- UNKNOWN = "UNKNOWN".freeze
39
+ READONLY ||= "READONLY".freeze
40
+ INVOICEONLY ||= "INVOICEONLY".freeze
41
+ STANDARD ||= "STANDARD".freeze
42
+ FINANCIALADVISER ||= "FINANCIALADVISER".freeze
43
+ MANAGEDCLIENT ||= "MANAGEDCLIENT".freeze
44
+ CASHBOOKCLIENT ||= "CASHBOOKCLIENT".freeze
45
+ UNKNOWN ||= "UNKNOWN".freeze
46
46
 
47
47
  class EnumAttributeValidator
48
48
  attr_reader :datatype
@@ -22,10 +22,11 @@ module XeroRuby::AppStore
22
22
  # The name of the plan. It is used in the invoice line item description.
23
23
  attr_accessor :name
24
24
 
25
- # Status of the plan. Available statuses are ACTIVE, PENDING_ACTIVATION.
25
+ # Status of the plan. Available statuses are ACTIVE, CANCELED, and PENDING_ACTIVATION.
26
26
  attr_accessor :status
27
- ACTIVE = "ACTIVE".freeze
28
- PENDING_ACTIVATION = "PENDING_ACTIVATION".freeze
27
+ ACTIVE ||= "ACTIVE".freeze
28
+ CANCELED ||= "CANCELED".freeze
29
+ PENDING_ACTIVATION ||= "PENDING_ACTIVATION".freeze
29
30
 
30
31
  # List of the subscription items belonging to the plan. It does not include cancelled subscription items.
31
32
  attr_accessor :subscription_items
@@ -135,7 +136,7 @@ module XeroRuby::AppStore
135
136
  return false if @id.nil?
136
137
  return false if @name.nil?
137
138
  return false if @status.nil?
138
- status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "PENDING_ACTIVATION"])
139
+ status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PENDING_ACTIVATION"])
139
140
  return false unless status_validator.valid?(@status)
140
141
  return false if @subscription_items.nil?
141
142
  true
@@ -144,7 +145,7 @@ module XeroRuby::AppStore
144
145
  # Custom attribute writer method checking allowed values (enum).
145
146
  # @param [Object] status Object to be assigned
146
147
  def status=(status)
147
- validator = EnumAttributeValidator.new('String', ["ACTIVE", "PENDING_ACTIVATION"])
148
+ validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PENDING_ACTIVATION"])
148
149
  unless validator.valid?(status)
149
150
  fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
150
151
  end
@@ -24,8 +24,8 @@ module XeroRuby::AppStore
24
24
 
25
25
  # The pricing model of the product: * FIXED: Customers are charged a fixed amount for each billing period * PER_SEAT: Customers are charged based on the number of units they purchase
26
26
  attr_accessor :type
27
- FIXED = "FIXED".freeze
28
- PER_SEAT = "PER_SEAT".freeze
27
+ FIXED ||= "FIXED".freeze
28
+ PER_SEAT ||= "PER_SEAT".freeze
29
29
 
30
30
  # The unit of the per seat product. e.g. \"user\", \"organisation\", \"SMS\", etc
31
31
  attr_accessor :seat_unit
@@ -36,10 +36,35 @@ module XeroRuby::AppStore
36
36
 
37
37
  # Status of the subscription. Available statuses are ACTIVE, CANCELED, and PAST_DUE.
38
38
  attr_accessor :status
39
+ ACTIVE ||= "ACTIVE".freeze
40
+ CANCELED ||= "CANCELED".freeze
41
+ PAST_DUE ||= "PAST_DUE".freeze
39
42
 
40
43
  # Boolean used to indicate if the subscription is in test mode
41
44
  attr_accessor :test_mode
42
45
 
46
+ class EnumAttributeValidator
47
+ attr_reader :datatype
48
+ attr_reader :allowable_values
49
+
50
+ def initialize(datatype, allowable_values)
51
+ @allowable_values = allowable_values.map do |value|
52
+ case datatype.to_s
53
+ when /Integer/i
54
+ value.to_i
55
+ when /Float/i
56
+ value.to_f
57
+ else
58
+ value
59
+ end
60
+ end
61
+ end
62
+
63
+ def valid?(value)
64
+ !value || allowable_values.include?(value)
65
+ end
66
+ end
67
+
43
68
  # Attribute mapping from ruby-style variable name to JSON key.
44
69
  def self.attribute_map
45
70
  {
@@ -158,9 +183,21 @@ module XeroRuby::AppStore
158
183
  return false if @plans.nil?
159
184
  return false if @start_date.nil?
160
185
  return false if @status.nil?
186
+ status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PAST_DUE"])
187
+ return false unless status_validator.valid?(@status)
161
188
  true
162
189
  end
163
190
 
191
+ # Custom attribute writer method checking allowed values (enum).
192
+ # @param [Object] status Object to be assigned
193
+ def status=(status)
194
+ validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PAST_DUE"])
195
+ unless validator.valid?(status)
196
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
197
+ end
198
+ @status = status
199
+ end
200
+
164
201
  # Checks equality by comparing each attribute.
165
202
  # @param [Object] Object to be compared
166
203
  def ==(o)
@@ -31,9 +31,37 @@ module XeroRuby::AppStore
31
31
  # Date the subscription started, or will start. Note: this could be in the future for downgrades or reduced number of seats that haven't taken effect yet.
32
32
  attr_accessor :start_date
33
33
 
34
+ # Status of the subscription item. Available statuses are ACTIVE, CANCELED, and PENDING_ACTIVATION.
35
+ attr_accessor :status
36
+ ACTIVE ||= "ACTIVE".freeze
37
+ CANCELED ||= "CANCELED".freeze
38
+ PENDING_ACTIVATION ||= "PENDING_ACTIVATION".freeze
39
+
34
40
  # If the subscription is a test subscription
35
41
  attr_accessor :test_mode
36
42
 
43
+ class EnumAttributeValidator
44
+ attr_reader :datatype
45
+ attr_reader :allowable_values
46
+
47
+ def initialize(datatype, allowable_values)
48
+ @allowable_values = allowable_values.map do |value|
49
+ case datatype.to_s
50
+ when /Integer/i
51
+ value.to_i
52
+ when /Float/i
53
+ value.to_f
54
+ else
55
+ value
56
+ end
57
+ end
58
+ end
59
+
60
+ def valid?(value)
61
+ !value || allowable_values.include?(value)
62
+ end
63
+ end
64
+
37
65
  # Attribute mapping from ruby-style variable name to JSON key.
38
66
  def self.attribute_map
39
67
  {
@@ -42,6 +70,7 @@ module XeroRuby::AppStore
42
70
  :'price' => :'price',
43
71
  :'product' => :'product',
44
72
  :'start_date' => :'startDate',
73
+ :'status' => :'status',
45
74
  :'test_mode' => :'testMode'
46
75
  }
47
76
  end
@@ -54,6 +83,7 @@ module XeroRuby::AppStore
54
83
  :'price' => :'Price',
55
84
  :'product' => :'Product',
56
85
  :'start_date' => :'DateTime',
86
+ :'status' => :'String',
57
87
  :'test_mode' => :'Boolean'
58
88
  }
59
89
  end
@@ -93,6 +123,10 @@ module XeroRuby::AppStore
93
123
  self.start_date = attributes[:'start_date']
94
124
  end
95
125
 
126
+ if attributes.key?(:'status')
127
+ self.status = attributes[:'status']
128
+ end
129
+
96
130
  if attributes.key?(:'test_mode')
97
131
  self.test_mode = attributes[:'test_mode']
98
132
  end
@@ -118,6 +152,10 @@ module XeroRuby::AppStore
118
152
  invalid_properties.push('invalid value for "start_date", start_date cannot be nil.')
119
153
  end
120
154
 
155
+ if @status.nil?
156
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
157
+ end
158
+
121
159
  invalid_properties
122
160
  end
123
161
 
@@ -128,9 +166,22 @@ module XeroRuby::AppStore
128
166
  return false if @price.nil?
129
167
  return false if @product.nil?
130
168
  return false if @start_date.nil?
169
+ return false if @status.nil?
170
+ status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PENDING_ACTIVATION"])
171
+ return false unless status_validator.valid?(@status)
131
172
  true
132
173
  end
133
174
 
175
+ # Custom attribute writer method checking allowed values (enum).
176
+ # @param [Object] status Object to be assigned
177
+ def status=(status)
178
+ validator = EnumAttributeValidator.new('String', ["ACTIVE", "CANCELED", "PENDING_ACTIVATION"])
179
+ unless validator.valid?(status)
180
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
181
+ end
182
+ @status = status
183
+ end
184
+
134
185
  # Checks equality by comparing each attribute.
135
186
  # @param [Object] Object to be compared
136
187
  def ==(o)
@@ -141,6 +192,7 @@ module XeroRuby::AppStore
141
192
  price == o.price &&
142
193
  product == o.product &&
143
194
  start_date == o.start_date &&
195
+ status == o.status &&
144
196
  test_mode == o.test_mode
145
197
  end
146
198
 
@@ -153,7 +205,7 @@ module XeroRuby::AppStore
153
205
  # Calculates hash code according to all attributes.
154
206
  # @return [Integer] Hash code
155
207
  def hash
156
- [end_date, id, price, product, start_date, test_mode].hash
208
+ [end_date, id, price, product, start_date, status, test_mode].hash
157
209
  end
158
210
 
159
211
  # Builds the object from hash
@@ -14,9 +14,9 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Assets
16
16
  class AssetStatus
17
- DRAFT = "Draft".freeze
18
- REGISTERED = "Registered".freeze
19
- DISPOSED = "Disposed".freeze
17
+ DRAFT ||= "Draft".freeze
18
+ REGISTERED ||= "Registered".freeze
19
+ DISPOSED ||= "Disposed".freeze
20
20
 
21
21
  # Builds the enum from string
22
22
  # @param [String] The enum value in the form of the string
@@ -14,9 +14,9 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Assets
16
16
  class AssetStatusQueryParam
17
- DRAFT = "DRAFT".freeze
18
- REGISTERED = "REGISTERED".freeze
19
- DISPOSED = "DISPOSED".freeze
17
+ DRAFT ||= "DRAFT".freeze
18
+ REGISTERED ||= "REGISTERED".freeze
19
+ DISPOSED ||= "DISPOSED".freeze
20
20
 
21
21
  # Builds the enum from string
22
22
  # @param [String] The enum value in the form of the string
@@ -18,17 +18,17 @@ module XeroRuby::Assets
18
18
  class BookDepreciationSetting
19
19
  # The method of depreciation applied to this asset. See Depreciation Methods
20
20
  attr_accessor :depreciation_method
21
- NO_DEPRECIATION = "NoDepreciation".freeze
22
- STRAIGHT_LINE = "StraightLine".freeze
23
- DIMINISHING_VALUE100 = "DiminishingValue100".freeze
24
- DIMINISHING_VALUE150 = "DiminishingValue150".freeze
25
- DIMINISHING_VALUE200 = "DiminishingValue200".freeze
26
- FULL_DEPRECIATION = "FullDepreciation".freeze
21
+ NO_DEPRECIATION ||= "NoDepreciation".freeze
22
+ STRAIGHT_LINE ||= "StraightLine".freeze
23
+ DIMINISHING_VALUE100 ||= "DiminishingValue100".freeze
24
+ DIMINISHING_VALUE150 ||= "DiminishingValue150".freeze
25
+ DIMINISHING_VALUE200 ||= "DiminishingValue200".freeze
26
+ FULL_DEPRECIATION ||= "FullDepreciation".freeze
27
27
 
28
28
  # The method of averaging applied to this asset. See Averaging Methods
29
29
  attr_accessor :averaging_method
30
- FULL_MONTH = "FullMonth".freeze
31
- ACTUAL_DAYS = "ActualDays".freeze
30
+ FULL_MONTH ||= "FullMonth".freeze
31
+ ACTUAL_DAYS ||= "ActualDays".freeze
32
32
 
33
33
  # The rate of depreciation (e.g. 0.05)
34
34
  attr_accessor :depreciation_rate
@@ -38,9 +38,9 @@ module XeroRuby::Assets
38
38
 
39
39
  # See Depreciation Calculation Methods
40
40
  attr_accessor :depreciation_calculation_method
41
- RATE = "Rate".freeze
42
- LIFE = "Life".freeze
43
- NONE = "None".freeze
41
+ RATE ||= "Rate".freeze
42
+ LIFE ||= "Life".freeze
43
+ NONE ||= "None".freeze
44
44
 
45
45
  # Unique Xero identifier for the depreciable object
46
46
  attr_accessor :depreciable_object_id
@@ -14,17 +14,18 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Files
16
16
  class ObjectGroup
17
- ACCOUNT = "Account".freeze
18
- BANK_TRANSACTION = "BankTransaction".freeze
19
- CONTACT = "Contact".freeze
20
- CREDIT_NOTE = "CreditNote".freeze
21
- INVOICE = "Invoice".freeze
22
- ITEM = "Item".freeze
23
- MANUAL_JOURNAL = "ManualJournal".freeze
24
- OVERPAYMENT = "Overpayment".freeze
25
- PAYMENT = "Payment".freeze
26
- PREPAYMENT = "Prepayment".freeze
27
- RECEIPT = "Receipt".freeze
17
+ ACCOUNT ||= "Account".freeze
18
+ BANK_TRANSACTION ||= "BankTransaction".freeze
19
+ CONTACT ||= "Contact".freeze
20
+ CREDIT_NOTE ||= "CreditNote".freeze
21
+ INVOICE ||= "Invoice".freeze
22
+ ITEM ||= "Item".freeze
23
+ MANUAL_JOURNAL ||= "ManualJournal".freeze
24
+ OVERPAYMENT ||= "Overpayment".freeze
25
+ PAYMENT ||= "Payment".freeze
26
+ PREPAYMENT ||= "Prepayment".freeze
27
+ QUOTE ||= "Quote".freeze
28
+ RECEIPT ||= "Receipt".freeze
28
29
 
29
30
  # Builds the enum from string
30
31
  # @param [String] The enum value in the form of the string
@@ -14,61 +14,62 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Files
16
16
  class ObjectType
17
- UNKNOWN = "Unknown".freeze
18
- ACCPAY = "Accpay".freeze
19
- ACC_PAY_CREDIT = "AccPayCredit".freeze
20
- ACC_PAY_PAYMENT = "AccPayPayment".freeze
21
- ACC_REC = "AccRec".freeze
22
- ACC_REC_CREDIT = "AccRecCredit".freeze
23
- ACC_REC_PAYMENT = "AccRecPayment".freeze
24
- ADJUSTMENT = "Adjustment".freeze
25
- AP_CREDIT_PAYMENT = "ApCreditPayment".freeze
26
- AP_OVER_PAYMENT = "ApOverPayment".freeze
27
- AP_OVER_PAYMENT_PAYMENT = "ApOverPaymentPayment".freeze
28
- AP_OVER_PAYMENT_SOURCE_PAYMENT = "ApOverPaymentSourcePayment".freeze
29
- AP_PREPAYMENT = "ApPrepayment".freeze
30
- AP_PREPAYMENT_PAYMENT = "ApPrepaymentPayment".freeze
31
- AP_PREPAYMENT_SOURCE_PAYMENT = "ApPrepaymentSourcePayment".freeze
32
- AR_CREDIT_PAYMENT = "ArCreditPayment".freeze
33
- AR_OVER_PAYMENT = "ArOverPayment".freeze
34
- AR_OVERPAYMENT_PAYMENT = "ArOverpaymentPayment".freeze
35
- AR_OVERPAYMENT_SOURCE_PAYMENT = "ArOverpaymentSourcePayment".freeze
36
- AR_PREPAYMENT = "ArPrepayment".freeze
37
- AR_PREPAYMENT_PAYMENT = "ArPrepaymentPayment".freeze
38
- AR_PREPAYMENT_SOURCE_PAYMENT = "ArPrepaymentSourcePayment".freeze
39
- CASH_PAID = "CashPaid".freeze
40
- CASH_REC = "CashRec".freeze
41
- EXP_PAYMENT = "ExpPayment".freeze
42
- MAN_JOURNAL = "ManJournal".freeze
43
- PURCHASE_ORDER = "PurchaseOrder".freeze
44
- RECEIPT = "Receipt".freeze
45
- TRANSFER = "Transfer".freeze
46
- ACCOUNT = "Account".freeze
47
- CONTACT = "Contact".freeze
48
- BUSINESS = "Business".freeze
49
- EMPLOYEE = "Employee".freeze
50
- PERSON = "Person".freeze
51
- USER = "User".freeze
52
- ORG = "Org".freeze
53
- FIXED_ASSET = "FixedAsset".freeze
54
- PAY_RUN = "PayRun".freeze
55
- PRICE_LIST_ITEM = "PriceListItem".freeze
56
- BANK = "Bank".freeze
57
- CURRENT = "Current".freeze
58
- EQUITY = "Equity".freeze
59
- EXPENSE = "Expense".freeze
60
- FIXED = "Fixed".freeze
61
- LIABILITY = "Liability".freeze
62
- PREPAYMENT = "Prepayment".freeze
63
- REVENUE = "Revenue".freeze
64
- SALES = "Sales".freeze
65
- OVERHEADS = "Overheads".freeze
66
- DEPRECIATN = "Depreciatn".freeze
67
- OTHER_INCOME = "OtherIncome".freeze
68
- DIRECT_COSTS = "DirectCosts".freeze
69
- CURRLIAB = "Currliab".freeze
70
- TERMLIAB = "Termliab".freeze
71
- NON_CURRENT = "NonCurrent".freeze
17
+ UNKNOWN ||= "Unknown".freeze
18
+ ACCPAY ||= "Accpay".freeze
19
+ ACC_PAY_CREDIT ||= "AccPayCredit".freeze
20
+ ACC_PAY_PAYMENT ||= "AccPayPayment".freeze
21
+ ACC_REC ||= "AccRec".freeze
22
+ ACC_REC_CREDIT ||= "AccRecCredit".freeze
23
+ ACC_REC_PAYMENT ||= "AccRecPayment".freeze
24
+ ADJUSTMENT ||= "Adjustment".freeze
25
+ AP_CREDIT_PAYMENT ||= "ApCreditPayment".freeze
26
+ AP_OVER_PAYMENT ||= "ApOverPayment".freeze
27
+ AP_OVER_PAYMENT_PAYMENT ||= "ApOverPaymentPayment".freeze
28
+ AP_OVER_PAYMENT_SOURCE_PAYMENT ||= "ApOverPaymentSourcePayment".freeze
29
+ AP_PREPAYMENT ||= "ApPrepayment".freeze
30
+ AP_PREPAYMENT_PAYMENT ||= "ApPrepaymentPayment".freeze
31
+ AP_PREPAYMENT_SOURCE_PAYMENT ||= "ApPrepaymentSourcePayment".freeze
32
+ AR_CREDIT_PAYMENT ||= "ArCreditPayment".freeze
33
+ AR_OVER_PAYMENT ||= "ArOverPayment".freeze
34
+ AR_OVERPAYMENT_PAYMENT ||= "ArOverpaymentPayment".freeze
35
+ AR_OVERPAYMENT_SOURCE_PAYMENT ||= "ArOverpaymentSourcePayment".freeze
36
+ AR_PREPAYMENT ||= "ArPrepayment".freeze
37
+ AR_PREPAYMENT_PAYMENT ||= "ArPrepaymentPayment".freeze
38
+ AR_PREPAYMENT_SOURCE_PAYMENT ||= "ArPrepaymentSourcePayment".freeze
39
+ CASH_PAID ||= "CashPaid".freeze
40
+ CASH_REC ||= "CashRec".freeze
41
+ EXP_PAYMENT ||= "ExpPayment".freeze
42
+ MAN_JOURNAL ||= "ManJournal".freeze
43
+ PURCHASE_ORDER ||= "PurchaseOrder".freeze
44
+ RECEIPT ||= "Receipt".freeze
45
+ TRANSFER ||= "Transfer".freeze
46
+ ACCOUNT ||= "Account".freeze
47
+ CONTACT ||= "Contact".freeze
48
+ BUSINESS ||= "Business".freeze
49
+ EMPLOYEE ||= "Employee".freeze
50
+ PERSON ||= "Person".freeze
51
+ USER ||= "User".freeze
52
+ ORG ||= "Org".freeze
53
+ FIXED_ASSET ||= "FixedAsset".freeze
54
+ PAY_RUN ||= "PayRun".freeze
55
+ PRICE_LIST_ITEM ||= "PriceListItem".freeze
56
+ BANK ||= "Bank".freeze
57
+ CURRENT ||= "Current".freeze
58
+ EQUITY ||= "Equity".freeze
59
+ EXPENSE ||= "Expense".freeze
60
+ FIXED ||= "Fixed".freeze
61
+ LIABILITY ||= "Liability".freeze
62
+ PREPAYMENT ||= "Prepayment".freeze
63
+ REVENUE ||= "Revenue".freeze
64
+ SALES ||= "Sales".freeze
65
+ OVERHEADS ||= "Overheads".freeze
66
+ DEPRECIATN ||= "Depreciatn".freeze
67
+ OTHER_INCOME ||= "OtherIncome".freeze
68
+ DIRECT_COSTS ||= "DirectCosts".freeze
69
+ CURRLIAB ||= "Currliab".freeze
70
+ TERMLIAB ||= "Termliab".freeze
71
+ NON_CURRENT ||= "NonCurrent".freeze
72
+ SALES_QUOTE ||= "SalesQuote".freeze
72
73
 
73
74
  # Builds the enum from string
74
75
  # @param [String] The enum value in the form of the string