xero-ruby 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ae2e1e237fab6b52d50d627b80103dd5dfd23e93a708edcbc99ba0105cce082
4
- data.tar.gz: 44b6ee803d4f1e972eb14b1f395e2cd1671168e0fb8aa3bcfff7d6676ef1b1e1
3
+ metadata.gz: eec58bb28471c43b81d1bed37d1201cab4f323a15c16eef399c36f3d17b83c2f
4
+ data.tar.gz: ca0c2bcacb4cf2bdff3b21dd8942ff3fef968ce9dfa1aba7055409dd5b06125e
5
5
  SHA512:
6
- metadata.gz: 3ecea5bea8d526518613debfd630dee295a2b2b5fcf436cdad243c8814956a1c63ddaa5cfdedd6c922e59be40310ae43d095bcb4bb79c35a3ae1aa0cf1c6ff51
7
- data.tar.gz: 5d205bea89d635e035986f0f585b515e0685a9844f6826f11722f0de5cc876cab330bb2ffcd52205e8c009b876f56d99a90ac4781f4bbead7f3c13caf33e5f81
6
+ metadata.gz: 9d647375ed88c3154a5bdcb1156c5da25ef1dd47c1d2d1485bfa4dd5326264d2d6d2e6cbaf11c98c7bfdc05aeec5a0acd3409a9c655ae8c1a6ea460320aa7123
7
+ data.tar.gz: 5bcef855ca40c2175d801820a0ae17920382db45033a774959e05a080ede1ff4769ad129e8b5dcda0f3ae7c95fa03a9e86c09c2b6012bba1e0745002fe79f92f
data/README.md CHANGED
@@ -7,22 +7,18 @@ Xero Ruby SDK for OAuth 2.0 generated from [Xero API OpenAPI Spec](https://githu
7
7
  Xero Ruby SDK supports Xero's OAuth2.0 authentication and the following Xero API sets.
8
8
 
9
9
  ## API Client Docs
10
- * [Accounting Api Docs](/docs/accounting/AccountingApi.md)
10
+
11
+ * Core [Accounting Api Docs](https://xeroapi.github.io/xero-ruby/accounting/index.html)
12
+ ---
11
13
  * [Asset Api Docs](/docs/assets/AssetApi.md)
12
14
  * [Project Api Docs](docs/projects/ProjectApi.md)
13
- * [File Api Docs](docs/files/FileApi.md)
15
+ * [Files Api Docs](docs/files/FileApi.md)
14
16
  * [Payroll Docs (AU)](docs/payroll_au/PayrollAuApi.md)
15
17
  * [Payroll Docs (NZ)](docs/payroll_nz/PayrollNzApi.md)
16
18
  * [Payroll Docs (UK)](docs/payroll_uk/PayrollUkApi.md)
17
19
 
18
20
  ## API Model Docs
19
- * [Accounting Models Docs](/docs/accounting/)
20
- * [Asset Models Docs](/docs/assets/)
21
- * [Project Models Docs](/docs/projects/)
22
- * [File Models Docs](/docs/files/)
23
- * [Payroll Models (AU)](docs/payroll_au/)
24
- * [Payroll Models (NZ)](docs/payroll_nz/)
25
- * [Payroll Models (UK)](docs/payroll_uk/)
21
+ * [XeroRuby Models Docs](/docs/)
26
22
 
27
23
  ## Sample Apps
28
24
  We have two apps showing SDK usage.
@@ -31,9 +27,6 @@ We have two apps showing SDK usage.
31
27
 
32
28
  ![sample-app](https://i.imgur.com/OOEn55G.png)
33
29
 
34
- ## Looking for OAuth 1.0a support?
35
- Check out the [Xeroizer](https://github.com/waynerobinson/xeroizer) gem (maintained by community).
36
-
37
30
  ---
38
31
  ## Installation
39
32
  To install this gem to your current gemset.
@@ -49,7 +42,7 @@ gem 'xero-ruby'
49
42
  * Create a [free Xero user account](https://www.xero.com/us/signup/api/)
50
43
  * Login to your Xero developer [/myapps](https://developer.xero.com/myapps) dashboard & create an API application and note your API app's credentials.
51
44
 
52
- ### Creating a Client
45
+ ### Creating a client
53
46
  * Get the credential values from an API application at https://developer.xero.com/myapps/.
54
47
  * Include [neccesary scopes](https://developer.xero.com/documentation/oauth2/scopes) as a space-seperated list
55
48
  * example => "`openid profile email accounting.transactions accounting.settings`"
@@ -77,10 +70,11 @@ To generate a valid `token_set` send a user to the `authorization_url`:
77
70
  redirect_to @authorization_url
78
71
  ```
79
72
 
80
- Xero will then redirect back to the URI defined in your ENV['REDIRECT_URI'] variable.
73
+ Xero will then redirect back to the URI defined in your `redirect_uri` config.
74
+
81
75
  *This must match **exactly** with the variable in your /myapps dashboard.*
82
76
 
83
- In your callback route catch, calling `get_token_set_from_callback` will exchange the temp code in your params, with a valid `token_set` that you can use to make API calls.
77
+ In your callback, calling `get_token_set_from_callback` will exchange the temporary code Xero return, with a valid `token_set` that you can use to make API calls.
84
78
  ```ruby
85
79
  # => http://localhost:3000/oauth/callback
86
80
 
@@ -93,11 +87,12 @@ puts params['state']
93
87
  ```
94
88
 
95
89
  ## Making API calls once you have a token_set
96
- For use outside of the initial auth flow, setup the client by passing the whole token_set to `refresh_token_set` or `set_token_set`.
90
+ Once you already have a token_set stored from this initual user interaction, you can setup a new client by passing the whole token_set to `refresh_token_set` or `set_token_set`.
97
91
  ```ruby
98
- xero_client.refresh_token_set(user.token_set)
99
-
100
92
  xero_client.set_token_set(user.token_set)
93
+
94
+ xero_client.refresh_token_set(user.token_set)
95
+ # this will set the access_token on the client, and return a refreshed `token_set` you need to save.
101
96
  ```
102
97
  A `token_set` contains data about your API connection most importantly :
103
98
  * `access_token`
@@ -171,6 +166,7 @@ end
171
166
  ## API Usage
172
167
 
173
168
  ### Accounting API
169
+ > https://xeroapi.github.io/xero-ruby/accounting/index.html
174
170
  ```ruby
175
171
  require 'xero-ruby'
176
172
 
@@ -179,8 +175,6 @@ xero_client.refresh_token_set(user.token_set)
179
175
  tenant_id = user.active_tenant_id
180
176
  # example of how to store the `tenantId` of the specific tenant (aka organisation)
181
177
 
182
- # https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/accounting_api.rb
183
-
184
178
  # Get Accounts
185
179
  accounts = xero_client.accounting_api.get_accounts(tenant_id).accounts
186
180
 
@@ -208,10 +202,8 @@ attachment = xero_client.accounting_api.create_account_attachment_by_file_name(t
208
202
  ```
209
203
 
210
204
  ### Assets API
205
+ > https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/asset_api.rb
211
206
  ```ruby
212
- # https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/asset_api.rb
213
-
214
- # Create Asset
215
207
  asset = {
216
208
  "assetName": "AssetName: #{rand(10000)}",
217
209
  "assetNumber": "Asset: #{rand(10000)}",
@@ -221,18 +213,14 @@ asset = xero_client.asset_api.create_asset(tenant_id, asset)
221
213
  ```
222
214
 
223
215
  ### Project API
216
+ > https://github.com/XeroAPI/xero-ruby/blob/master/docs/projects/ProjectApi.md
224
217
  ```ruby
225
- # https://github.com/XeroAPI/xero-ruby/blob/master/docs/projects/ProjectApi.md
226
-
227
- # Get Projects
228
218
  projects = xero_client.project_api.get_projects(tenant_id).items
229
219
  ```
230
220
 
231
221
  ### Files API
222
+ > https://github.com/XeroAPI/xero-ruby/blob/master/docs/files/FileApi.md
232
223
  ```ruby
233
- # https://github.com/XeroAPI/xero-ruby/blob/master/docs/files/FileApi.md
234
-
235
- # Get Files
236
224
  opts = {
237
225
  pagesize: 50, # Integer | pass an optional page size value
238
226
  page: 2, # Integer | number of records to skip for pagination
data/lib/xero-ruby.rb CHANGED
@@ -290,9 +290,9 @@ require 'xero-ruby/models/files/file_object'
290
290
  require 'xero-ruby/models/files/files'
291
291
  require 'xero-ruby/models/files/folder'
292
292
  require 'xero-ruby/models/files/folders'
293
- require 'xero-ruby/models/files/inline_object'
294
293
  require 'xero-ruby/models/files/object_group'
295
294
  require 'xero-ruby/models/files/object_type'
295
+ require 'xero-ruby/models/files/upload_object'
296
296
  require 'xero-ruby/models/files/user'
297
297
  require 'xero-ruby/models/projects/amount'
298
298
  require 'xero-ruby/models/projects/charge_type'
@@ -1176,30 +1176,28 @@ module XeroRuby
1176
1176
  return data, status_code, headers
1177
1177
  end
1178
1178
 
1179
- # Uploads a File
1179
+ # Uploads a File to the inbox
1180
1180
  # @param xero_tenant_id [String] Xero identifier for Tenant
1181
+ # @param body [String]
1182
+ # @param name [String] exact name of the file you are uploading
1183
+ # @param filename [String]
1181
1184
  # @param [Hash] opts the optional parameters
1182
- # @option opts [String] :folder_id pass an optional folder id to save file to specific folder
1183
- # @option opts [String] :body
1184
- # @option opts [String] :name exact name of the file you are uploading
1185
- # @option opts [String] :filename
1186
1185
  # @option opts [String] :mime_type
1187
1186
  # @return [FileObject]
1188
- def upload_file(xero_tenant_id, opts = {})
1189
- data, _status_code, _headers = upload_file_with_http_info(xero_tenant_id, opts)
1187
+ def upload_file(xero_tenant_id, body, name, filename, opts = {})
1188
+ data, _status_code, _headers = upload_file_with_http_info(xero_tenant_id, body, name, filename, opts)
1190
1189
  data
1191
1190
  end
1192
1191
 
1193
- # Uploads a File
1192
+ # Uploads a File to the inbox
1194
1193
  # @param xero_tenant_id [String] Xero identifier for Tenant
1194
+ # @param body [String]
1195
+ # @param name [String] exact name of the file you are uploading
1196
+ # @param filename [String]
1195
1197
  # @param [Hash] opts the optional parameters
1196
- # @option opts [String] :folder_id pass an optional folder id to save file to specific folder
1197
- # @option opts [String] :body
1198
- # @option opts [String] :name exact name of the file you are uploading
1199
- # @option opts [String] :filename
1200
1198
  # @option opts [String] :mime_type
1201
1199
  # @return [Array<(FileObject, Integer, Hash)>] FileObject data, response status code and response headers
1202
- def upload_file_with_http_info(xero_tenant_id, opts = {})
1200
+ def upload_file_with_http_info(xero_tenant_id, body, name, filename, opts = {})
1203
1201
  if @api_client.config.debugging
1204
1202
  @api_client.config.logger.debug 'Calling API: FilesApi.upload_file ...'
1205
1203
  end
@@ -1207,6 +1205,18 @@ module XeroRuby
1207
1205
  if @api_client.config.client_side_validation && xero_tenant_id.nil?
1208
1206
  fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling FilesApi.upload_file"
1209
1207
  end
1208
+ # verify the required parameter 'body' is set
1209
+ if @api_client.config.client_side_validation && body.nil?
1210
+ fail ArgumentError, "Missing the required parameter 'body' when calling FilesApi.upload_file"
1211
+ end
1212
+ # verify the required parameter 'name' is set
1213
+ if @api_client.config.client_side_validation && name.nil?
1214
+ fail ArgumentError, "Missing the required parameter 'name' when calling FilesApi.upload_file"
1215
+ end
1216
+ # verify the required parameter 'filename' is set
1217
+ if @api_client.config.client_side_validation && filename.nil?
1218
+ fail ArgumentError, "Missing the required parameter 'filename' when calling FilesApi.upload_file"
1219
+ end
1210
1220
  # resource path
1211
1221
  local_var_path = '/Files'
1212
1222
 
@@ -1215,7 +1225,6 @@ module XeroRuby
1215
1225
 
1216
1226
  # query parameters
1217
1227
  query_params = opts[:query_params] || {}
1218
- query_params[:'FolderId'] = opts[:'folder_id'] if !opts[:'folder_id'].nil?
1219
1228
 
1220
1229
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1221
1230
  query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
@@ -1231,9 +1240,9 @@ module XeroRuby
1231
1240
 
1232
1241
  # form parameters
1233
1242
  form_params = opts[:form_params] || {}
1234
- form_params['body'] = opts[:'body'] if !opts[:'body'].nil?
1235
- form_params['name'] = opts[:'name'] if !opts[:'name'].nil?
1236
- form_params['filename'] = opts[:'filename'] if !opts[:'filename'].nil?
1243
+ form_params['body'] = body
1244
+ form_params['name'] = name
1245
+ form_params['filename'] = filename
1237
1246
  form_params['mimeType'] = opts[:'mime_type'] if !opts[:'mime_type'].nil?
1238
1247
 
1239
1248
  # http body (model)
@@ -1260,5 +1269,105 @@ module XeroRuby
1260
1269
  end
1261
1270
  return data, status_code, headers
1262
1271
  end
1272
+
1273
+ # Uploads a File to a specific folder
1274
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1275
+ # @param folder_id [String] pass required folder id to save file to specific folder
1276
+ # @param body [String]
1277
+ # @param name [String] exact name of the file you are uploading
1278
+ # @param filename [String]
1279
+ # @param [Hash] opts the optional parameters
1280
+ # @option opts [String] :mime_type
1281
+ # @return [FileObject]
1282
+ def upload_file_to_folder(xero_tenant_id, folder_id, body, name, filename, opts = {})
1283
+ data, _status_code, _headers = upload_file_to_folder_with_http_info(xero_tenant_id, folder_id, body, name, filename, opts)
1284
+ data
1285
+ end
1286
+
1287
+ # Uploads a File to a specific folder
1288
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1289
+ # @param folder_id [String] pass required folder id to save file to specific folder
1290
+ # @param body [String]
1291
+ # @param name [String] exact name of the file you are uploading
1292
+ # @param filename [String]
1293
+ # @param [Hash] opts the optional parameters
1294
+ # @option opts [String] :mime_type
1295
+ # @return [Array<(FileObject, Integer, Hash)>] FileObject data, response status code and response headers
1296
+ def upload_file_to_folder_with_http_info(xero_tenant_id, folder_id, body, name, filename, opts = {})
1297
+ if @api_client.config.debugging
1298
+ @api_client.config.logger.debug 'Calling API: FilesApi.upload_file_to_folder ...'
1299
+ end
1300
+ # verify the required parameter 'xero_tenant_id' is set
1301
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1302
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling FilesApi.upload_file_to_folder"
1303
+ end
1304
+ # verify the required parameter 'folder_id' is set
1305
+ if @api_client.config.client_side_validation && folder_id.nil?
1306
+ fail ArgumentError, "Missing the required parameter 'folder_id' when calling FilesApi.upload_file_to_folder"
1307
+ end
1308
+ # verify the required parameter 'body' is set
1309
+ if @api_client.config.client_side_validation && body.nil?
1310
+ fail ArgumentError, "Missing the required parameter 'body' when calling FilesApi.upload_file_to_folder"
1311
+ end
1312
+ # verify the required parameter 'name' is set
1313
+ if @api_client.config.client_side_validation && name.nil?
1314
+ fail ArgumentError, "Missing the required parameter 'name' when calling FilesApi.upload_file_to_folder"
1315
+ end
1316
+ # verify the required parameter 'filename' is set
1317
+ if @api_client.config.client_side_validation && filename.nil?
1318
+ fail ArgumentError, "Missing the required parameter 'filename' when calling FilesApi.upload_file_to_folder"
1319
+ end
1320
+ # resource path
1321
+ local_var_path = '/Files/{FolderId}'.sub('{' + 'FolderId' + '}', folder_id.to_s)
1322
+
1323
+ # camelize keys of incoming `where` opts
1324
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1325
+
1326
+ # query parameters
1327
+ query_params = opts[:query_params] || {}
1328
+
1329
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1330
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1331
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1332
+
1333
+ # header parameters
1334
+ header_params = opts[:header_params] || {}
1335
+ # HTTP header 'Accept' (if needed)
1336
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1337
+ # HTTP header 'Content-Type'
1338
+ header_params['Content-Type'] = @api_client.select_header_content_type(['multipart/form-data'])
1339
+ header_params[:'xero-tenant-id'] = xero_tenant_id
1340
+
1341
+ # form parameters
1342
+ form_params = opts[:form_params] || {}
1343
+ form_params['body'] = body
1344
+ form_params['name'] = name
1345
+ form_params['filename'] = filename
1346
+ form_params['mimeType'] = opts[:'mime_type'] if !opts[:'mime_type'].nil?
1347
+
1348
+ # http body (model)
1349
+ post_body = opts[:body]
1350
+
1351
+ # return_type
1352
+ return_type = opts[:return_type] || 'FileObject'
1353
+
1354
+ # auth_names
1355
+ auth_names = opts[:auth_names] || ['OAuth2']
1356
+
1357
+ new_options = opts.merge(
1358
+ :header_params => header_params,
1359
+ :query_params => query_params,
1360
+ :form_params => form_params,
1361
+ :body => post_body,
1362
+ :auth_names => auth_names,
1363
+ :return_type => return_type
1364
+ )
1365
+
1366
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, "FilesApi", new_options)
1367
+ if @api_client.config.debugging
1368
+ @api_client.config.logger.debug "API called: FilesApi#upload_file_to_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1369
+ end
1370
+ return data, status_code, headers
1371
+ end
1263
1372
  end
1264
1373
  end
@@ -3548,8 +3548,7 @@ module XeroRuby
3548
3548
  # Retrieves employees
3549
3549
  # @param xero_tenant_id [String] Xero identifier for Tenant
3550
3550
  # @param [Hash] opts the optional parameters
3551
- # @option opts [String] :first_name Filter by first name
3552
- # @option opts [String] :last_name Filter by last name
3551
+ # @option opts [String] :filter Filter by first name and/or lastname
3553
3552
  # @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.
3554
3553
  # @return [Employees]
3555
3554
  def get_employees(xero_tenant_id, opts = {})
@@ -3560,8 +3559,7 @@ module XeroRuby
3560
3559
  # Retrieves employees
3561
3560
  # @param xero_tenant_id [String] Xero identifier for Tenant
3562
3561
  # @param [Hash] opts the optional parameters
3563
- # @option opts [String] :first_name Filter by first name
3564
- # @option opts [String] :last_name Filter by last name
3562
+ # @option opts [String] :filter Filter by first name and/or lastname
3565
3563
  # @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.
3566
3564
  # @return [Array<(Employees, Integer, Hash)>] Employees data, response status code and response headers
3567
3565
  def get_employees_with_http_info(xero_tenant_id, opts = {})
@@ -3580,8 +3578,7 @@ module XeroRuby
3580
3578
 
3581
3579
  # query parameters
3582
3580
  query_params = opts[:query_params] || {}
3583
- query_params[:'firstName'] = opts[:'first_name'] if !opts[:'first_name'].nil?
3584
- query_params[:'lastName'] = opts[:'last_name'] if !opts[:'last_name'].nil?
3581
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
3585
3582
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
3586
3583
 
3587
3584
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
@@ -4587,8 +4584,7 @@ module XeroRuby
4587
4584
  # @param xero_tenant_id [String] Xero identifier for Tenant
4588
4585
  # @param [Hash] opts the optional parameters
4589
4586
  # @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.
4590
- # @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.
4591
- # @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
4587
+ # @option opts [String] :filter Filter by first name and/or lastname
4592
4588
  # @return [Timesheets]
4593
4589
  def get_timesheets(xero_tenant_id, opts = {})
4594
4590
  data, _status_code, _headers = get_timesheets_with_http_info(xero_tenant_id, opts)
@@ -4599,8 +4595,7 @@ module XeroRuby
4599
4595
  # @param xero_tenant_id [String] Xero identifier for Tenant
4600
4596
  # @param [Hash] opts the optional parameters
4601
4597
  # @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.
4602
- # @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.
4603
- # @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
4598
+ # @option opts [String] :filter Filter by first name and/or lastname
4604
4599
  # @return [Array<(Timesheets, Integer, Hash)>] Timesheets data, response status code and response headers
4605
4600
  def get_timesheets_with_http_info(xero_tenant_id, opts = {})
4606
4601
  if @api_client.config.debugging
@@ -4619,8 +4614,7 @@ module XeroRuby
4619
4614
  # query parameters
4620
4615
  query_params = opts[:query_params] || {}
4621
4616
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
4622
- query_params[:'employeeId'] = opts[:'employee_id'] if !opts[:'employee_id'].nil?
4623
- query_params[:'payrollCalendarId'] = opts[:'payroll_calendar_id'] if !opts[:'payroll_calendar_id'].nil?
4617
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
4624
4618
 
4625
4619
  # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
4626
4620
  query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
@@ -68,6 +68,9 @@ module XeroRuby::Accounting
68
68
  # Booelan that tells you if the batch payment has been reconciled (read-only)
69
69
  attr_accessor :is_reconciled
70
70
 
71
+ # Displays array of validation error messages from the API
72
+ attr_accessor :validation_errors
73
+
71
74
  class EnumAttributeValidator
72
75
  attr_reader :datatype
73
76
  attr_reader :allowable_values
@@ -108,7 +111,8 @@ module XeroRuby::Accounting
108
111
  :'status' => :'Status',
109
112
  :'total_amount' => :'TotalAmount',
110
113
  :'updated_date_utc' => :'UpdatedDateUTC',
111
- :'is_reconciled' => :'IsReconciled'
114
+ :'is_reconciled' => :'IsReconciled',
115
+ :'validation_errors' => :'ValidationErrors'
112
116
  }
113
117
  end
114
118
 
@@ -130,7 +134,8 @@ module XeroRuby::Accounting
130
134
  :'status' => :'String',
131
135
  :'total_amount' => :'String',
132
136
  :'updated_date_utc' => :'DateTime',
133
- :'is_reconciled' => :'String'
137
+ :'is_reconciled' => :'String',
138
+ :'validation_errors' => :'Array<ValidationError>'
134
139
  }
135
140
  end
136
141
 
@@ -214,6 +219,12 @@ module XeroRuby::Accounting
214
219
  if attributes.key?(:'is_reconciled')
215
220
  self.is_reconciled = attributes[:'is_reconciled']
216
221
  end
222
+
223
+ if attributes.key?(:'validation_errors')
224
+ if (value = attributes[:'validation_errors']).is_a?(Array)
225
+ self.validation_errors = value
226
+ end
227
+ end
217
228
  end
218
229
 
219
230
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -333,7 +344,8 @@ module XeroRuby::Accounting
333
344
  status == o.status &&
334
345
  total_amount == o.total_amount &&
335
346
  updated_date_utc == o.updated_date_utc &&
336
- is_reconciled == o.is_reconciled
347
+ is_reconciled == o.is_reconciled &&
348
+ validation_errors == o.validation_errors
337
349
  end
338
350
 
339
351
  # @see the `==` method
@@ -345,7 +357,7 @@ module XeroRuby::Accounting
345
357
  # Calculates hash code according to all attributes.
346
358
  # @return [Integer] Hash code
347
359
  def hash
348
- [account, reference, particulars, code, details, narrative, batch_payment_id, date_string, date, amount, payments, type, status, total_amount, updated_date_utc, is_reconciled].hash
360
+ [account, reference, particulars, code, details, narrative, batch_payment_id, date_string, date, amount, payments, type, status, total_amount, updated_date_utc, is_reconciled, validation_errors].hash
349
361
  end
350
362
 
351
363
  # Builds the object from hash
@@ -62,15 +62,15 @@ module XeroRuby::Accounting
62
62
  # Attribute type mapping.
63
63
  def self.openapi_types
64
64
  {
65
- :'total' => :'Float',
66
- :'new' => :'Float',
67
- :'updated' => :'Float',
68
- :'deleted' => :'Float',
69
- :'locked' => :'Float',
70
- :'system' => :'Float',
71
- :'errored' => :'Float',
65
+ :'total' => :'Integer',
66
+ :'new' => :'Integer',
67
+ :'updated' => :'Integer',
68
+ :'deleted' => :'Integer',
69
+ :'locked' => :'Integer',
70
+ :'system' => :'Integer',
71
+ :'errored' => :'Integer',
72
72
  :'present' => :'Boolean',
73
- :'new_or_updated' => :'Float'
73
+ :'new_or_updated' => :'Integer'
74
74
  }
75
75
  end
76
76
 
@@ -15,7 +15,7 @@ require 'date'
15
15
  module XeroRuby::Files
16
16
  require 'bigdecimal'
17
17
 
18
- class InlineObject
18
+ class UploadObject
19
19
 
20
20
  attr_accessor :body
21
21
 
@@ -52,13 +52,13 @@ module XeroRuby::Files
52
52
  # @param [Hash] attributes Model attributes in the form of hash
53
53
  def initialize(attributes = {})
54
54
  if (!attributes.is_a?(Hash))
55
- fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Files::InlineObject` initialize method"
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Files::UploadObject` initialize method"
56
56
  end
57
57
 
58
58
  # check to see if the attribute exists and convert string to symbol for hash key
59
59
  attributes = attributes.each_with_object({}) { |(k, v), h|
60
60
  if (!self.class.attribute_map.key?(k.to_sym))
61
- fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Files::InlineObject`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Files::UploadObject`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
62
62
  end
63
63
  h[k.to_sym] = v
64
64
  }
@@ -84,12 +84,27 @@ module XeroRuby::Files
84
84
  # @return Array for valid properties with the reasons
85
85
  def list_invalid_properties
86
86
  invalid_properties = Array.new
87
+ if @body.nil?
88
+ invalid_properties.push('invalid value for "body", body cannot be nil.')
89
+ end
90
+
91
+ if @name.nil?
92
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
93
+ end
94
+
95
+ if @filename.nil?
96
+ invalid_properties.push('invalid value for "filename", filename cannot be nil.')
97
+ end
98
+
87
99
  invalid_properties
88
100
  end
89
101
 
90
102
  # Check to see if the all the properties in the model are valid
91
103
  # @return true if the model is valid
92
104
  def valid?
105
+ return false if @body.nil?
106
+ return false if @name.nil?
107
+ return false if @filename.nil?
93
108
  true
94
109
  end
95
110
 
@@ -44,6 +44,7 @@ module XeroRuby::PayrollNz
44
44
  attr_accessor :status
45
45
  ACTIVE = "Active".freeze
46
46
  PENDING = "Pending".freeze
47
+ HISTORY = "History".freeze
47
48
 
48
49
  # The type of the payment of the corresponding salary and wages
49
50
  attr_accessor :payment_type
@@ -204,7 +205,7 @@ module XeroRuby::PayrollNz
204
205
  return false if @effective_from.nil?
205
206
  return false if @annual_salary.nil?
206
207
  return false if @status.nil?
207
- status_validator = EnumAttributeValidator.new('String', ["Active", "Pending"])
208
+ status_validator = EnumAttributeValidator.new('String', ["Active", "Pending", "History"])
208
209
  return false unless status_validator.valid?(@status)
209
210
  return false if @payment_type.nil?
210
211
  payment_type_validator = EnumAttributeValidator.new('String', ["Salary", "Hourly"])
@@ -215,7 +216,7 @@ module XeroRuby::PayrollNz
215
216
  # Custom attribute writer method checking allowed values (enum).
216
217
  # @param [Object] status Object to be assigned
217
218
  def status=(status)
218
- validator = EnumAttributeValidator.new('String', ["Active", "Pending"])
219
+ validator = EnumAttributeValidator.new('String', ["Active", "Pending", "History"])
219
220
  unless validator.valid?(status)
220
221
  fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
221
222
  end
@@ -36,6 +36,7 @@ module XeroRuby::PayrollNz
36
36
  DRAFT = "Draft".freeze
37
37
  APPROVED = "Approved".freeze
38
38
  COMPLETED = "Completed".freeze
39
+ REQUESTED = "Requested".freeze
39
40
 
40
41
  # The Total Hours of the Timesheet
41
42
  attr_accessor :total_hours
@@ -182,7 +183,7 @@ module XeroRuby::PayrollNz
182
183
  return false if @employee_id.nil?
183
184
  return false if @start_date.nil?
184
185
  return false if @end_date.nil?
185
- status_validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed"])
186
+ status_validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed", "Requested"])
186
187
  return false unless status_validator.valid?(@status)
187
188
  true
188
189
  end
@@ -190,7 +191,7 @@ module XeroRuby::PayrollNz
190
191
  # Custom attribute writer method checking allowed values (enum).
191
192
  # @param [Object] status Object to be assigned
192
193
  def status=(status)
193
- validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed"])
194
+ validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed", "Requested"])
194
195
  unless validator.valid?(status)
195
196
  fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
196
197
  end
@@ -7,9 +7,9 @@ Contact: api@xero.com
7
7
  Generated by: https://openapi-generator.tech
8
8
  OpenAPI Generator version: 4.3.1
9
9
 
10
- The version of the XeroOpenAPI document: 2.9.4
10
+ The version of the XeroOpenAPI document: 2.10.3
11
11
  =end
12
12
 
13
13
  module XeroRuby
14
- VERSION = '2.8.0'
14
+ VERSION = '2.8.1'
15
15
  end
@@ -14,13 +14,13 @@ require 'spec_helper'
14
14
  require 'json'
15
15
  require 'date'
16
16
 
17
- # Unit tests for XeroRuby::Files::InlineObject
17
+ # Unit tests for XeroRuby::Files::FileObject
18
18
  # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
19
  # Please update as you see appropriate
20
20
  describe 'InlineObject' do
21
21
  before do
22
22
  # run before each test
23
- @instance = XeroRuby::Files::InlineObject.new
23
+ @instance = XeroRuby::Files::FileObject.new
24
24
  end
25
25
 
26
26
  after do
@@ -29,7 +29,7 @@ describe 'InlineObject' do
29
29
 
30
30
  describe 'test an instance of InlineObject' do
31
31
  it 'should create an instance of InlineObject' do
32
- expect(@instance).to be_instance_of(XeroRuby::Files::InlineObject)
32
+ expect(@instance).to be_instance_of(XeroRuby::Files::FileObject)
33
33
  end
34
34
  end
35
35
  describe 'test attribute "body"' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xero-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xero API Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-05 00:00:00.000000000 Z
11
+ date: 2021-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -232,9 +232,9 @@ files:
232
232
  - lib/xero-ruby/models/files/files.rb
233
233
  - lib/xero-ruby/models/files/folder.rb
234
234
  - lib/xero-ruby/models/files/folders.rb
235
- - lib/xero-ruby/models/files/inline_object.rb
236
235
  - lib/xero-ruby/models/files/object_group.rb
237
236
  - lib/xero-ruby/models/files/object_type.rb
237
+ - lib/xero-ruby/models/files/upload_object.rb
238
238
  - lib/xero-ruby/models/files/user.rb
239
239
  - lib/xero-ruby/models/payroll_au/account.rb
240
240
  - lib/xero-ruby/models/payroll_au/account_type.rb