xero-ruby 3.2.0 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +71 -2
  3. data/lib/xero-ruby/api/accounting_api.rb +11 -2
  4. data/lib/xero-ruby/api/app_store_api.rb +87 -0
  5. data/lib/xero-ruby/api/finance_api.rb +866 -0
  6. data/lib/xero-ruby/api/payroll_au_api.rb +14 -14
  7. data/lib/xero-ruby/api/payroll_nz_api.rb +18 -12
  8. data/lib/xero-ruby/api/payroll_uk_api.rb +14 -2
  9. data/lib/xero-ruby/api_client.rb +30 -4
  10. data/lib/xero-ruby/configuration.rb +4 -0
  11. data/lib/xero-ruby/models/accounting/bank_transfer.rb +35 -1
  12. data/lib/xero-ruby/models/accounting/budget_balance.rb +2 -2
  13. data/lib/xero-ruby/models/accounting/contact.rb +86 -1
  14. data/lib/xero-ruby/models/accounting/payment.rb +11 -1
  15. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -0
  16. data/lib/xero-ruby/models/app_store/plan.rb +310 -0
  17. data/lib/xero-ruby/models/app_store/price.rb +257 -0
  18. data/lib/xero-ruby/models/app_store/problem_details.rb +272 -0
  19. data/lib/xero-ruby/models/app_store/product.rb +288 -0
  20. data/lib/xero-ruby/models/app_store/subscription.rb +324 -0
  21. data/lib/xero-ruby/models/app_store/subscription_item.rb +292 -0
  22. data/lib/xero-ruby/models/finance/account_usage.rb +342 -0
  23. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -0
  24. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -0
  25. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -0
  26. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -0
  27. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -0
  28. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -0
  29. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -0
  30. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -0
  31. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -0
  32. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -0
  33. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -0
  34. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -0
  35. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -0
  36. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -0
  37. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -0
  38. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -0
  39. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -0
  40. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -0
  41. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -0
  42. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -0
  43. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -0
  44. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -0
  45. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -0
  46. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -0
  47. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -0
  48. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -0
  49. data/lib/xero-ruby/models/finance/practice_response.rb +262 -0
  50. data/lib/xero-ruby/models/finance/problem.rb +252 -0
  51. data/lib/xero-ruby/models/finance/problem_type.rb +39 -0
  52. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -0
  53. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -0
  54. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -0
  55. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -0
  56. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -0
  57. data/lib/xero-ruby/models/finance/total_detail.rb +242 -0
  58. data/lib/xero-ruby/models/finance/total_other.rb +242 -0
  59. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -0
  60. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -0
  61. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -0
  62. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -0
  63. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -0
  64. data/lib/xero-ruby/models/finance/user_response.rb +336 -0
  65. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +2 -0
  66. data/lib/xero-ruby/models/payroll_au/employee.rb +30 -1
  67. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -0
  68. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +11 -1
  69. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +4 -4
  70. data/lib/xero-ruby/version.rb +6 -6
  71. data/lib/xero-ruby.rb +51 -0
  72. data/spec/api_client_spec.rb +5 -2
  73. data/spec/app_store/api/app_store_api_spec.rb +45 -0
  74. data/spec/app_store/models/plan_spec.rb +62 -0
  75. data/spec/app_store/models/price_spec.rb +52 -0
  76. data/spec/app_store/models/problem_details_spec.rb +70 -0
  77. data/spec/app_store/models/product_spec.rb +56 -0
  78. data/spec/app_store/models/subscription_item_spec.rb +70 -0
  79. data/spec/app_store/models/subscription_spec.rb +82 -0
  80. data/spec/configuration_spec.rb +1 -0
  81. data/spec/finance/api/finance_api_spec.rb +156 -0
  82. data/spec/finance/models/account_usage_response_spec.rb +58 -0
  83. data/spec/finance/models/account_usage_spec.rb +112 -0
  84. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -0
  85. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -0
  86. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -0
  87. data/spec/finance/models/balance_sheet_response_spec.rb +58 -0
  88. data/spec/finance/models/bank_statement_response_spec.rb +46 -0
  89. data/spec/finance/models/cash_account_response_spec.rb +64 -0
  90. data/spec/finance/models/cash_balance_spec.rb +52 -0
  91. data/spec/finance/models/cash_validation_response_spec.rb +64 -0
  92. data/spec/finance/models/cashflow_account_spec.rb +76 -0
  93. data/spec/finance/models/cashflow_activity_spec.rb +52 -0
  94. data/spec/finance/models/cashflow_response_spec.rb +58 -0
  95. data/spec/finance/models/cashflow_type_spec.rb +52 -0
  96. data/spec/finance/models/current_statement_response_spec.rb +70 -0
  97. data/spec/finance/models/data_source_response_spec.rb +124 -0
  98. data/spec/finance/models/history_record_response_spec.rb +64 -0
  99. data/spec/finance/models/lock_history_model_spec.rb +52 -0
  100. data/spec/finance/models/lock_history_response_spec.rb +52 -0
  101. data/spec/finance/models/pnl_account_class_spec.rb +46 -0
  102. data/spec/finance/models/pnl_account_spec.rb +70 -0
  103. data/spec/finance/models/pnl_account_type_spec.rb +52 -0
  104. data/spec/finance/models/practice_response_spec.rb +64 -0
  105. data/spec/finance/models/problem_spec.rb +58 -0
  106. data/spec/finance/models/problem_type_spec.rb +34 -0
  107. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -0
  108. data/spec/finance/models/report_history_model_spec.rb +52 -0
  109. data/spec/finance/models/report_history_response_spec.rb +52 -0
  110. data/spec/finance/models/statement_balance_response_spec.rb +46 -0
  111. data/spec/finance/models/statement_lines_response_spec.rb +136 -0
  112. data/spec/finance/models/trial_balance_account_spec.rb +94 -0
  113. data/spec/finance/models/trial_balance_entry_spec.rb +46 -0
  114. data/spec/finance/models/trial_balance_movement_spec.rb +58 -0
  115. data/spec/finance/models/trial_balance_response_spec.rb +52 -0
  116. data/spec/finance/models/user_activities_response_spec.rb +52 -0
  117. data/spec/finance/models/user_response_spec.rb +106 -0
  118. metadata +142 -3
@@ -633,7 +633,7 @@ module XeroRuby
633
633
  # Searches payroll employees
634
634
  # @param xero_tenant_id [String] Xero identifier for Tenant
635
635
  # @param [Hash] opts the optional parameters
636
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
636
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
637
637
  # @option opts [String] :where Filter by an any element
638
638
  # @option opts [String] :order Order by an any element
639
639
  # @option opts [Integer] :page e.g. page=1 – Up to 100 employees will be returned in a single API call
@@ -646,7 +646,7 @@ module XeroRuby
646
646
  # Searches payroll employees
647
647
  # @param xero_tenant_id [String] Xero identifier for Tenant
648
648
  # @param [Hash] opts the optional parameters
649
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
649
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
650
650
  # @option opts [String] :where Filter by an any element
651
651
  # @option opts [String] :order Order by an any element
652
652
  # @option opts [Integer] :page e.g. page=1 – Up to 100 employees will be returned in a single API call
@@ -789,7 +789,7 @@ module XeroRuby
789
789
  # Retrieves leave applications
790
790
  # @param xero_tenant_id [String] Xero identifier for Tenant
791
791
  # @param [Hash] opts the optional parameters
792
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
792
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
793
793
  # @option opts [String] :where Filter by an any element
794
794
  # @option opts [String] :order Order by an any element
795
795
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -802,7 +802,7 @@ module XeroRuby
802
802
  # Retrieves leave applications
803
803
  # @param xero_tenant_id [String] Xero identifier for Tenant
804
804
  # @param [Hash] opts the optional parameters
805
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
805
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
806
806
  # @option opts [String] :where Filter by an any element
807
807
  # @option opts [String] :order Order by an any element
808
808
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -870,7 +870,7 @@ module XeroRuby
870
870
  # Retrieves pay items
871
871
  # @param xero_tenant_id [String] Xero identifier for Tenant
872
872
  # @param [Hash] opts the optional parameters
873
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
873
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
874
874
  # @option opts [String] :where Filter by an any element
875
875
  # @option opts [String] :order Order by an any element
876
876
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -883,7 +883,7 @@ module XeroRuby
883
883
  # Retrieves pay items
884
884
  # @param xero_tenant_id [String] Xero identifier for Tenant
885
885
  # @param [Hash] opts the optional parameters
886
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
886
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
887
887
  # @option opts [String] :where Filter by an any element
888
888
  # @option opts [String] :order Order by an any element
889
889
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -1026,7 +1026,7 @@ module XeroRuby
1026
1026
  # Retrieves pay runs
1027
1027
  # @param xero_tenant_id [String] Xero identifier for Tenant
1028
1028
  # @param [Hash] opts the optional parameters
1029
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1029
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1030
1030
  # @option opts [String] :where Filter by an any element
1031
1031
  # @option opts [String] :order Order by an any element
1032
1032
  # @option opts [Integer] :page e.g. page=1 – Up to 100 PayRuns will be returned in a single API call
@@ -1039,7 +1039,7 @@ module XeroRuby
1039
1039
  # Retrieves pay runs
1040
1040
  # @param xero_tenant_id [String] Xero identifier for Tenant
1041
1041
  # @param [Hash] opts the optional parameters
1042
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1042
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1043
1043
  # @option opts [String] :where Filter by an any element
1044
1044
  # @option opts [String] :order Order by an any element
1045
1045
  # @option opts [Integer] :page e.g. page=1 – Up to 100 PayRuns will be returned in a single API call
@@ -1182,7 +1182,7 @@ module XeroRuby
1182
1182
  # Retrieves payroll calendars
1183
1183
  # @param xero_tenant_id [String] Xero identifier for Tenant
1184
1184
  # @param [Hash] opts the optional parameters
1185
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1185
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1186
1186
  # @option opts [String] :where Filter by an any element
1187
1187
  # @option opts [String] :order Order by an any element
1188
1188
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -1195,7 +1195,7 @@ module XeroRuby
1195
1195
  # Retrieves payroll calendars
1196
1196
  # @param xero_tenant_id [String] Xero identifier for Tenant
1197
1197
  # @param [Hash] opts the optional parameters
1198
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1198
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1199
1199
  # @option opts [String] :where Filter by an any element
1200
1200
  # @option opts [String] :order Order by an any element
1201
1201
  # @option opts [Integer] :page e.g. page=1 – Up to 100 objects will be returned in a single API call
@@ -1557,7 +1557,7 @@ module XeroRuby
1557
1557
  # Retrieves superfunds
1558
1558
  # @param xero_tenant_id [String] Xero identifier for Tenant
1559
1559
  # @param [Hash] opts the optional parameters
1560
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1560
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1561
1561
  # @option opts [String] :where Filter by an any element
1562
1562
  # @option opts [String] :order Order by an any element
1563
1563
  # @option opts [Integer] :page e.g. page=1 – Up to 100 SuperFunds will be returned in a single API call
@@ -1570,7 +1570,7 @@ module XeroRuby
1570
1570
  # Retrieves superfunds
1571
1571
  # @param xero_tenant_id [String] Xero identifier for Tenant
1572
1572
  # @param [Hash] opts the optional parameters
1573
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1573
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1574
1574
  # @option opts [String] :where Filter by an any element
1575
1575
  # @option opts [String] :order Order by an any element
1576
1576
  # @option opts [Integer] :page e.g. page=1 – Up to 100 SuperFunds will be returned in a single API call
@@ -1713,7 +1713,7 @@ module XeroRuby
1713
1713
  # Retrieves timesheets
1714
1714
  # @param xero_tenant_id [String] Xero identifier for Tenant
1715
1715
  # @param [Hash] opts the optional parameters
1716
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1716
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1717
1717
  # @option opts [String] :where Filter by an any element
1718
1718
  # @option opts [String] :order Order by an any element
1719
1719
  # @option opts [Integer] :page e.g. page=1 – Up to 100 timesheets will be returned in a single API call
@@ -1726,7 +1726,7 @@ module XeroRuby
1726
1726
  # Retrieves timesheets
1727
1727
  # @param xero_tenant_id [String] Xero identifier for Tenant
1728
1728
  # @param [Hash] opts the optional parameters
1729
- # @option opts [String] :if_modified_since Only records created or modified since this timestamp will be returned
1729
+ # @option opts [DateTime] :if_modified_since Only records created or modified since this timestamp will be returned
1730
1730
  # @option opts [String] :where Filter by an any element
1731
1731
  # @option opts [String] :order Order by an any element
1732
1732
  # @option opts [Integer] :page e.g. page=1 – Up to 100 timesheets will be returned in a single API call
@@ -3150,8 +3150,7 @@ module XeroRuby
3150
3150
  # Retrieves employees
3151
3151
  # @param xero_tenant_id [String] Xero identifier for Tenant
3152
3152
  # @param [Hash] opts the optional parameters
3153
- # @option opts [String] :first_name Filter by first name
3154
- # @option opts [String] :last_name Filter by last name
3153
+ # @option opts [String] :filter Filter by first name and/or lastname
3155
3154
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
3156
3155
  # @return [Employees]
3157
3156
  def get_employees(xero_tenant_id, opts = {})
@@ -3162,8 +3161,7 @@ module XeroRuby
3162
3161
  # Retrieves employees
3163
3162
  # @param xero_tenant_id [String] Xero identifier for Tenant
3164
3163
  # @param [Hash] opts the optional parameters
3165
- # @option opts [String] :first_name Filter by first name
3166
- # @option opts [String] :last_name Filter by last name
3164
+ # @option opts [String] :filter Filter by first name and/or lastname
3167
3165
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
3168
3166
  # @return [Array<(Employees, Integer, Hash)>] Employees data, response status code and response headers
3169
3167
  def get_employees_with_http_info(xero_tenant_id, options = {})
@@ -3183,8 +3181,7 @@ module XeroRuby
3183
3181
 
3184
3182
  # query parameters
3185
3183
  query_params = opts[:query_params] || {}
3186
- query_params[:'firstName'] = opts[:'first_name'] if !opts[:'first_name'].nil?
3187
- query_params[:'lastName'] = opts[:'last_name'] if !opts[:'last_name'].nil?
3184
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
3188
3185
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
3189
3186
 
3190
3187
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
@@ -4419,8 +4416,11 @@ module XeroRuby
4419
4416
  # @param xero_tenant_id [String] Xero identifier for Tenant
4420
4417
  # @param [Hash] opts the optional parameters
4421
4418
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
4422
- # @option opts [String] :employee_id By default get Timesheets will return the timesheets for all employees in an organization. You can add GET https://…/timesheets?filter&#x3D;employeeId&#x3D;&#x3D;{EmployeeID} to get only the timesheets of a particular employee.
4423
- # @option opts [String] :payroll_calendar_id By default get Timesheets will return all the timesheets for an organization. You can add GET https://…/timesheets?filter&#x3D;payrollCalendarId&#x3D;&#x3D;{PayrollCalendarID} to filter the timesheets by payroll calendar id
4419
+ # @option opts [String] :filter Filter by employeeId and/or payrollCalendarId
4420
+ # @option opts [String] :status filter results by any timesheets with a matching timesheet status
4421
+ # @option opts [String] :start_date filter results by any timesheets with a startDate on or after the provided date
4422
+ # @option opts [String] :end_date filter results by any timesheets with a endDate on or before the provided date
4423
+ # @option opts [String] :sort sort the order of timesheets returned. The default is based on the timesheets createdDate, sorted oldest to newest. Currently, the only other option is to reverse the order based on the timesheets startDate, sorted newest to oldest.
4424
4424
  # @return [Timesheets]
4425
4425
  def get_timesheets(xero_tenant_id, opts = {})
4426
4426
  data, _status_code, _headers = get_timesheets_with_http_info(xero_tenant_id, opts)
@@ -4431,8 +4431,11 @@ module XeroRuby
4431
4431
  # @param xero_tenant_id [String] Xero identifier for Tenant
4432
4432
  # @param [Hash] opts the optional parameters
4433
4433
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
4434
- # @option opts [String] :employee_id By default get Timesheets will return the timesheets for all employees in an organization. You can add GET https://…/timesheets?filter&#x3D;employeeId&#x3D;&#x3D;{EmployeeID} to get only the timesheets of a particular employee.
4435
- # @option opts [String] :payroll_calendar_id By default get Timesheets will return all the timesheets for an organization. You can add GET https://…/timesheets?filter&#x3D;payrollCalendarId&#x3D;&#x3D;{PayrollCalendarID} to filter the timesheets by payroll calendar id
4434
+ # @option opts [String] :filter Filter by employeeId and/or payrollCalendarId
4435
+ # @option opts [String] :status filter results by any timesheets with a matching timesheet status
4436
+ # @option opts [String] :start_date filter results by any timesheets with a startDate on or after the provided date
4437
+ # @option opts [String] :end_date filter results by any timesheets with a endDate on or before the provided date
4438
+ # @option opts [String] :sort sort the order of timesheets returned. The default is based on the timesheets createdDate, sorted oldest to newest. Currently, the only other option is to reverse the order based on the timesheets startDate, sorted newest to oldest.
4436
4439
  # @return [Array<(Timesheets, Integer, Hash)>] Timesheets data, response status code and response headers
4437
4440
  def get_timesheets_with_http_info(xero_tenant_id, options = {})
4438
4441
  opts = options.dup
@@ -4452,8 +4455,11 @@ module XeroRuby
4452
4455
  # query parameters
4453
4456
  query_params = opts[:query_params] || {}
4454
4457
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
4455
- query_params[:'employeeId'] = opts[:'employee_id'] if !opts[:'employee_id'].nil?
4456
- query_params[:'payrollCalendarId'] = opts[:'payroll_calendar_id'] if !opts[:'payroll_calendar_id'].nil?
4458
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
4459
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
4460
+ query_params[:'startDate'] = opts[:'start_date'] if !opts[:'start_date'].nil?
4461
+ query_params[:'endDate'] = opts[:'end_date'] if !opts[:'end_date'].nil?
4462
+ query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
4457
4463
 
4458
4464
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
4459
4465
  query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
@@ -4644,7 +4644,11 @@ module XeroRuby
4644
4644
  # @param xero_tenant_id [String] Xero identifier for Tenant
4645
4645
  # @param [Hash] opts the optional parameters
4646
4646
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
4647
- # @option opts [String] :filter Filter by first name and/or lastname
4647
+ # @option opts [String] :filter Filter by employeeId and/or payrollCalendarId
4648
+ # @option opts [String] :status filter results by any timesheets with a matching timesheet status
4649
+ # @option opts [String] :start_date filter results by any timesheets with a startDate on or after the provided date
4650
+ # @option opts [String] :end_date filter results by any timesheets with a endDate on or before the provided date
4651
+ # @option opts [String] :sort sort the order of timesheets returned. The default is based on the timesheets createdDate, sorted oldest to newest. Currently, the only other option is to reverse the order based on the timesheets startDate, sorted newest to oldest.
4648
4652
  # @return [Timesheets]
4649
4653
  def get_timesheets(xero_tenant_id, opts = {})
4650
4654
  data, _status_code, _headers = get_timesheets_with_http_info(xero_tenant_id, opts)
@@ -4655,7 +4659,11 @@ module XeroRuby
4655
4659
  # @param xero_tenant_id [String] Xero identifier for Tenant
4656
4660
  # @param [Hash] opts the optional parameters
4657
4661
  # @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
4658
- # @option opts [String] :filter Filter by first name and/or lastname
4662
+ # @option opts [String] :filter Filter by employeeId and/or payrollCalendarId
4663
+ # @option opts [String] :status filter results by any timesheets with a matching timesheet status
4664
+ # @option opts [String] :start_date filter results by any timesheets with a startDate on or after the provided date
4665
+ # @option opts [String] :end_date filter results by any timesheets with a endDate on or before the provided date
4666
+ # @option opts [String] :sort sort the order of timesheets returned. The default is based on the timesheets createdDate, sorted oldest to newest. Currently, the only other option is to reverse the order based on the timesheets startDate, sorted newest to oldest.
4659
4667
  # @return [Array<(Timesheets, Integer, Hash)>] Timesheets data, response status code and response headers
4660
4668
  def get_timesheets_with_http_info(xero_tenant_id, options = {})
4661
4669
  opts = options.dup
@@ -4676,6 +4684,10 @@ module XeroRuby
4676
4684
  query_params = opts[:query_params] || {}
4677
4685
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
4678
4686
  query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
4687
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
4688
+ query_params[:'startDate'] = opts[:'start_date'] if !opts[:'start_date'].nil?
4689
+ query_params[:'endDate'] = opts[:'end_date'] if !opts[:'end_date'].nil?
4690
+ query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
4679
4691
 
4680
4692
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
4681
4693
  query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
@@ -57,9 +57,17 @@ module XeroRuby
57
57
  end
58
58
 
59
59
  def authorization_url
60
- url = "#{@config.login_url}?response_type=code&client_id=#{@client_id}&redirect_uri=#{@redirect_uri}&scope=#{CGI.escape(@scopes)}"
61
- url << "&state=#{@state}" if @state
62
- return url
60
+ url = URI.parse(@config.login_url)
61
+ url.query = URI.encode_www_form(
62
+ {
63
+ response_type: 'code',
64
+ client_id: @client_id,
65
+ redirect_uri: @redirect_uri,
66
+ scope: @scopes,
67
+ state: @state
68
+ }.compact
69
+ )
70
+ url.to_s
63
71
  end
64
72
 
65
73
  def accounting_api
@@ -97,6 +105,16 @@ module XeroRuby
97
105
  XeroRuby::PayrollUkApi.new(self)
98
106
  end
99
107
 
108
+ def app_store_api
109
+ @config.base_url = @config.app_store_url
110
+ XeroRuby::AppStoreApi.new(self)
111
+ end
112
+
113
+ def finance_api
114
+ @config.base_url = @config.finance_url
115
+ XeroRuby::FinanceApi.new(self)
116
+ end
117
+
100
118
  # Token Helpers
101
119
  def token_set
102
120
  @config.token_set
@@ -271,12 +289,16 @@ module XeroRuby
271
289
  method_base_url = @config.payroll_uk_url
272
290
  when "ProjectApi"
273
291
  method_base_url = @config.project_url
292
+ when "AppStoreApi"
293
+ method_base_url = @config.app_store_url
294
+ when "FinanceApi"
295
+ method_base_url = @config.finance_url
274
296
  else
275
297
  method_base_url = @config.accounting_url
276
298
  end
277
299
 
278
300
  connection = Faraday.new(:url => method_base_url, :ssl => ssl_options) do |conn|
279
- conn.basic_auth(config.username, config.password)
301
+ conn.request(:basic_auth, config.username, config.password)
280
302
  if opts[:header_params]["Content-Type"] == "multipart/form-data"
281
303
  conn.request :multipart
282
304
  conn.request :url_encoded
@@ -493,6 +515,10 @@ module XeroRuby
493
515
  XeroRuby::PayrollNz.const_get(return_type).build_from_hash(data)
494
516
  when 'PayrollUkApi'
495
517
  XeroRuby::PayrollUk.const_get(return_type).build_from_hash(data)
518
+ when 'AppStoreApi'
519
+ XeroRuby::AppStore.const_get(return_type).build_from_hash(data)
520
+ when 'FinanceApi'
521
+ XeroRuby::Finance.const_get(return_type).build_from_hash(data)
496
522
  else
497
523
  XeroRuby::Accounting.const_get(return_type).build_from_hash(data)
498
524
  end
@@ -33,6 +33,8 @@ module XeroRuby
33
33
  attr_accessor :payroll_au_url
34
34
  attr_accessor :payroll_nz_url
35
35
  attr_accessor :payroll_uk_url
36
+ attr_accessor :app_store_url
37
+ attr_accessor :finance_url
36
38
 
37
39
  # Defines API keys used with API Key authentications.
38
40
  #
@@ -149,6 +151,8 @@ module XeroRuby
149
151
  @payroll_au_url = 'https://api.xero.com/payroll.xro/1.0/'
150
152
  @payroll_nz_url = 'https://api.xero.com/payroll.xro/2.0/'
151
153
  @payroll_uk_url = 'https://api.xero.com/payroll.xro/2.0/'
154
+ @app_store_url = 'https://api.xero.com/appstore/2.0/'
155
+ @finance_url = 'https://api.xero.com/finance.xro/1.0/'
152
156
  @access_token = nil
153
157
  @id_token = nil
154
158
  @api_key = {}
@@ -40,6 +40,15 @@ module XeroRuby::Accounting
40
40
  # The Bank Transaction ID for the destination account
41
41
  attr_accessor :to_bank_transaction_id
42
42
 
43
+ # The Bank Transaction boolean to show if it is reconciled for the source account
44
+ attr_accessor :from_is_reconciled
45
+
46
+ # The Bank Transaction boolean to show if it is reconciled for the destination account
47
+ attr_accessor :to_is_reconciled
48
+
49
+ # Reference for the transactions.
50
+ attr_accessor :reference
51
+
43
52
  # Boolean to indicate if a Bank Transfer has an attachment
44
53
  attr_accessor :has_attachments
45
54
 
@@ -60,6 +69,9 @@ module XeroRuby::Accounting
60
69
  :'currency_rate' => :'CurrencyRate',
61
70
  :'from_bank_transaction_id' => :'FromBankTransactionID',
62
71
  :'to_bank_transaction_id' => :'ToBankTransactionID',
72
+ :'from_is_reconciled' => :'FromIsReconciled',
73
+ :'to_is_reconciled' => :'ToIsReconciled',
74
+ :'reference' => :'Reference',
63
75
  :'has_attachments' => :'HasAttachments',
64
76
  :'created_date_utc' => :'CreatedDateUTC',
65
77
  :'validation_errors' => :'ValidationErrors'
@@ -77,6 +89,9 @@ module XeroRuby::Accounting
77
89
  :'currency_rate' => :'BigDecimal',
78
90
  :'from_bank_transaction_id' => :'String',
79
91
  :'to_bank_transaction_id' => :'String',
92
+ :'from_is_reconciled' => :'Boolean',
93
+ :'to_is_reconciled' => :'Boolean',
94
+ :'reference' => :'String',
80
95
  :'has_attachments' => :'Boolean',
81
96
  :'created_date_utc' => :'DateTime',
82
97
  :'validation_errors' => :'Array<ValidationError>'
@@ -130,6 +145,22 @@ module XeroRuby::Accounting
130
145
  self.to_bank_transaction_id = attributes[:'to_bank_transaction_id']
131
146
  end
132
147
 
148
+ if attributes.key?(:'from_is_reconciled')
149
+ self.from_is_reconciled = attributes[:'from_is_reconciled']
150
+ else
151
+ self.from_is_reconciled = false
152
+ end
153
+
154
+ if attributes.key?(:'to_is_reconciled')
155
+ self.to_is_reconciled = attributes[:'to_is_reconciled']
156
+ else
157
+ self.to_is_reconciled = false
158
+ end
159
+
160
+ if attributes.key?(:'reference')
161
+ self.reference = attributes[:'reference']
162
+ end
163
+
133
164
  if attributes.key?(:'has_attachments')
134
165
  self.has_attachments = attributes[:'has_attachments']
135
166
  else
@@ -188,6 +219,9 @@ module XeroRuby::Accounting
188
219
  currency_rate == o.currency_rate &&
189
220
  from_bank_transaction_id == o.from_bank_transaction_id &&
190
221
  to_bank_transaction_id == o.to_bank_transaction_id &&
222
+ from_is_reconciled == o.from_is_reconciled &&
223
+ to_is_reconciled == o.to_is_reconciled &&
224
+ reference == o.reference &&
191
225
  has_attachments == o.has_attachments &&
192
226
  created_date_utc == o.created_date_utc &&
193
227
  validation_errors == o.validation_errors
@@ -202,7 +236,7 @@ module XeroRuby::Accounting
202
236
  # Calculates hash code according to all attributes.
203
237
  # @return [Integer] Hash code
204
238
  def hash
205
- [from_bank_account, to_bank_account, amount, date, bank_transfer_id, currency_rate, from_bank_transaction_id, to_bank_transaction_id, has_attachments, created_date_utc, validation_errors].hash
239
+ [from_bank_account, to_bank_account, amount, date, bank_transfer_id, currency_rate, from_bank_transaction_id, to_bank_transaction_id, from_is_reconciled, to_is_reconciled, reference, has_attachments, created_date_utc, validation_errors].hash
206
240
  end
207
241
 
208
242
  # Builds the object from hash
@@ -42,8 +42,8 @@ module XeroRuby::Accounting
42
42
  def self.openapi_types
43
43
  {
44
44
  :'period' => :'Date',
45
- :'amount' => :'Integer',
46
- :'unit_amount' => :'Integer',
45
+ :'amount' => :'BigDecimal',
46
+ :'unit_amount' => :'BigDecimal',
47
47
  :'notes' => :'String'
48
48
  }
49
49
  end
@@ -19,6 +19,9 @@ module XeroRuby::Accounting
19
19
  # Xero identifier
20
20
  attr_accessor :contact_id
21
21
 
22
+ # ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber.
23
+ attr_accessor :merged_to_contact_id
24
+
22
25
  # This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero.
23
26
  attr_accessor :contact_number
24
27
 
@@ -40,6 +43,9 @@ module XeroRuby::Accounting
40
43
  # Last name of contact person (max length = 255)
41
44
  attr_accessor :last_name
42
45
 
46
+ # Company registration number (max length = 50)
47
+ attr_accessor :company_number
48
+
43
49
  # Email address of contact person (umlauts not supported) (max length = 255)
44
50
  attr_accessor :email_address
45
51
 
@@ -73,6 +79,18 @@ module XeroRuby::Accounting
73
79
  # true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact.
74
80
  attr_accessor :is_customer
75
81
 
82
+ # The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
83
+ attr_accessor :sales_default_line_amount_type
84
+ INCLUSIVE = "INCLUSIVE".freeze
85
+ EXCLUSIVE = "EXCLUSIVE".freeze
86
+ # NONE = "NONE".freeze
87
+
88
+ # The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
89
+ attr_accessor :purchases_default_line_amount_type
90
+ # INCLUSIVE = "INCLUSIVE".freeze
91
+ # EXCLUSIVE = "EXCLUSIVE".freeze
92
+ # NONE = "NONE".freeze
93
+
76
94
 
77
95
  attr_accessor :default_currency
78
96
 
@@ -162,12 +180,14 @@ module XeroRuby::Accounting
162
180
  def self.attribute_map
163
181
  {
164
182
  :'contact_id' => :'ContactID',
183
+ :'merged_to_contact_id' => :'MergedToContactID',
165
184
  :'contact_number' => :'ContactNumber',
166
185
  :'account_number' => :'AccountNumber',
167
186
  :'contact_status' => :'ContactStatus',
168
187
  :'name' => :'Name',
169
188
  :'first_name' => :'FirstName',
170
189
  :'last_name' => :'LastName',
190
+ :'company_number' => :'CompanyNumber',
171
191
  :'email_address' => :'EmailAddress',
172
192
  :'skype_user_name' => :'SkypeUserName',
173
193
  :'contact_persons' => :'ContactPersons',
@@ -179,6 +199,8 @@ module XeroRuby::Accounting
179
199
  :'phones' => :'Phones',
180
200
  :'is_supplier' => :'IsSupplier',
181
201
  :'is_customer' => :'IsCustomer',
202
+ :'sales_default_line_amount_type' => :'SalesDefaultLineAmountType',
203
+ :'purchases_default_line_amount_type' => :'PurchasesDefaultLineAmountType',
182
204
  :'default_currency' => :'DefaultCurrency',
183
205
  :'xero_network_key' => :'XeroNetworkKey',
184
206
  :'sales_default_account_code' => :'SalesDefaultAccountCode',
@@ -207,12 +229,14 @@ module XeroRuby::Accounting
207
229
  def self.openapi_types
208
230
  {
209
231
  :'contact_id' => :'String',
232
+ :'merged_to_contact_id' => :'String',
210
233
  :'contact_number' => :'String',
211
234
  :'account_number' => :'String',
212
235
  :'contact_status' => :'String',
213
236
  :'name' => :'String',
214
237
  :'first_name' => :'String',
215
238
  :'last_name' => :'String',
239
+ :'company_number' => :'String',
216
240
  :'email_address' => :'String',
217
241
  :'skype_user_name' => :'String',
218
242
  :'contact_persons' => :'Array<ContactPerson>',
@@ -224,6 +248,8 @@ module XeroRuby::Accounting
224
248
  :'phones' => :'Array<Phone>',
225
249
  :'is_supplier' => :'Boolean',
226
250
  :'is_customer' => :'Boolean',
251
+ :'sales_default_line_amount_type' => :'String',
252
+ :'purchases_default_line_amount_type' => :'String',
227
253
  :'default_currency' => :'CurrencyCode',
228
254
  :'xero_network_key' => :'String',
229
255
  :'sales_default_account_code' => :'String',
@@ -267,6 +293,10 @@ module XeroRuby::Accounting
267
293
  self.contact_id = attributes[:'contact_id']
268
294
  end
269
295
 
296
+ if attributes.key?(:'merged_to_contact_id')
297
+ self.merged_to_contact_id = attributes[:'merged_to_contact_id']
298
+ end
299
+
270
300
  if attributes.key?(:'contact_number')
271
301
  self.contact_number = attributes[:'contact_number']
272
302
  end
@@ -291,6 +321,10 @@ module XeroRuby::Accounting
291
321
  self.last_name = attributes[:'last_name']
292
322
  end
293
323
 
324
+ if attributes.key?(:'company_number')
325
+ self.company_number = attributes[:'company_number']
326
+ end
327
+
294
328
  if attributes.key?(:'email_address')
295
329
  self.email_address = attributes[:'email_address']
296
330
  end
@@ -341,6 +375,14 @@ module XeroRuby::Accounting
341
375
  self.is_customer = attributes[:'is_customer']
342
376
  end
343
377
 
378
+ if attributes.key?(:'sales_default_line_amount_type')
379
+ self.sales_default_line_amount_type = attributes[:'sales_default_line_amount_type']
380
+ end
381
+
382
+ if attributes.key?(:'purchases_default_line_amount_type')
383
+ self.purchases_default_line_amount_type = attributes[:'purchases_default_line_amount_type']
384
+ end
385
+
344
386
  if attributes.key?(:'default_currency')
345
387
  self.default_currency = attributes[:'default_currency']
346
388
  end
@@ -464,6 +506,10 @@ module XeroRuby::Accounting
464
506
  invalid_properties.push('invalid value for "last_name", the character length must be smaller than or equal to 255.')
465
507
  end
466
508
 
509
+ if !@company_number.nil? && @company_number.to_s.length > 50
510
+ invalid_properties.push('invalid value for "company_number", the character length must be smaller than or equal to 50.')
511
+ end
512
+
467
513
  if !@email_address.nil? && @email_address.to_s.length > 255
468
514
  invalid_properties.push('invalid value for "email_address", the character length must be smaller than or equal to 255.')
469
515
  end
@@ -485,8 +531,13 @@ module XeroRuby::Accounting
485
531
  return false if !@name.nil? && @name.to_s.length > 255
486
532
  return false if !@first_name.nil? && @first_name.to_s.length > 255
487
533
  return false if !@last_name.nil? && @last_name.to_s.length > 255
534
+ return false if !@company_number.nil? && @company_number.to_s.length > 50
488
535
  return false if !@email_address.nil? && @email_address.to_s.length > 255
489
536
  return false if !@tax_number.nil? && @tax_number.to_s.length > 50
537
+ sales_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
538
+ return false unless sales_default_line_amount_type_validator.valid?(@sales_default_line_amount_type)
539
+ purchases_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
540
+ return false unless purchases_default_line_amount_type_validator.valid?(@purchases_default_line_amount_type)
490
541
  true
491
542
  end
492
543
 
@@ -550,6 +601,16 @@ module XeroRuby::Accounting
550
601
  @last_name = last_name
551
602
  end
552
603
 
604
+ # Custom attribute writer method with validation
605
+ # @param [Object] company_number Value to be assigned
606
+ def company_number=(company_number)
607
+ if !company_number.nil? && company_number.to_s.length > 50
608
+ fail ArgumentError, 'invalid value for "company_number", the character length must be smaller than or equal to 50.'
609
+ end
610
+
611
+ @company_number = company_number
612
+ end
613
+
553
614
  # Custom attribute writer method with validation
554
615
  # @param [Object] email_address Value to be assigned
555
616
  def email_address=(email_address)
@@ -570,18 +631,40 @@ module XeroRuby::Accounting
570
631
  @tax_number = tax_number
571
632
  end
572
633
 
634
+ # Custom attribute writer method checking allowed values (enum).
635
+ # @param [Object] sales_default_line_amount_type Object to be assigned
636
+ def sales_default_line_amount_type=(sales_default_line_amount_type)
637
+ validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
638
+ unless validator.valid?(sales_default_line_amount_type)
639
+ fail ArgumentError, "invalid value for \"sales_default_line_amount_type\", must be one of #{validator.allowable_values}."
640
+ end
641
+ @sales_default_line_amount_type = sales_default_line_amount_type
642
+ end
643
+
644
+ # Custom attribute writer method checking allowed values (enum).
645
+ # @param [Object] purchases_default_line_amount_type Object to be assigned
646
+ def purchases_default_line_amount_type=(purchases_default_line_amount_type)
647
+ validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
648
+ unless validator.valid?(purchases_default_line_amount_type)
649
+ fail ArgumentError, "invalid value for \"purchases_default_line_amount_type\", must be one of #{validator.allowable_values}."
650
+ end
651
+ @purchases_default_line_amount_type = purchases_default_line_amount_type
652
+ end
653
+
573
654
  # Checks equality by comparing each attribute.
574
655
  # @param [Object] Object to be compared
575
656
  def ==(o)
576
657
  return true if self.equal?(o)
577
658
  self.class == o.class &&
578
659
  contact_id == o.contact_id &&
660
+ merged_to_contact_id == o.merged_to_contact_id &&
579
661
  contact_number == o.contact_number &&
580
662
  account_number == o.account_number &&
581
663
  contact_status == o.contact_status &&
582
664
  name == o.name &&
583
665
  first_name == o.first_name &&
584
666
  last_name == o.last_name &&
667
+ company_number == o.company_number &&
585
668
  email_address == o.email_address &&
586
669
  skype_user_name == o.skype_user_name &&
587
670
  contact_persons == o.contact_persons &&
@@ -593,6 +676,8 @@ module XeroRuby::Accounting
593
676
  phones == o.phones &&
594
677
  is_supplier == o.is_supplier &&
595
678
  is_customer == o.is_customer &&
679
+ sales_default_line_amount_type == o.sales_default_line_amount_type &&
680
+ purchases_default_line_amount_type == o.purchases_default_line_amount_type &&
596
681
  default_currency == o.default_currency &&
597
682
  xero_network_key == o.xero_network_key &&
598
683
  sales_default_account_code == o.sales_default_account_code &&
@@ -625,7 +710,7 @@ module XeroRuby::Accounting
625
710
  # Calculates hash code according to all attributes.
626
711
  # @return [Integer] Hash code
627
712
  def hash
628
- [contact_id, contact_number, account_number, contact_status, name, first_name, last_name, email_address, skype_user_name, contact_persons, bank_account_details, tax_number, accounts_receivable_tax_type, accounts_payable_tax_type, addresses, phones, is_supplier, is_customer, default_currency, xero_network_key, sales_default_account_code, purchases_default_account_code, sales_tracking_categories, purchases_tracking_categories, tracking_category_name, tracking_category_option, payment_terms, updated_date_utc, contact_groups, website, branding_theme, batch_payments, discount, balances, attachments, has_attachments, validation_errors, has_validation_errors, status_attribute_string].hash
713
+ [contact_id, merged_to_contact_id, contact_number, account_number, contact_status, name, first_name, last_name, company_number, email_address, skype_user_name, contact_persons, bank_account_details, tax_number, accounts_receivable_tax_type, accounts_payable_tax_type, addresses, phones, is_supplier, is_customer, sales_default_line_amount_type, purchases_default_line_amount_type, default_currency, xero_network_key, sales_default_account_code, purchases_default_account_code, sales_tracking_categories, purchases_tracking_categories, tracking_category_name, tracking_category_option, payment_terms, updated_date_utc, contact_groups, website, branding_theme, batch_payments, discount, balances, attachments, has_attachments, validation_errors, has_validation_errors, status_attribute_string].hash
629
714
  end
630
715
 
631
716
  # Builds the object from hash