xero-ruby 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba1ef9ef3e84502d061f57228b050fa94fb1faeefb22249c35e606e872c98773
4
- data.tar.gz: 0be1c0129f837209e15ba96e3884e9bccef55a4e080f7447afc32a205f3d1a3a
3
+ metadata.gz: 76eca16b02843c3439516fc82fc11b126f9c7fba4b7ec3a902ee48c96dd1886a
4
+ data.tar.gz: 788d8af498c07584adf349fb82b88377e2970536f205b39533ecb4a4b9c94bc4
5
5
  SHA512:
6
- metadata.gz: b685fb816a7b16d0e5324c946db02a5beed2e130feb552a5773e706a29100b2beeacc7723b5e2df19cd2a9f16f7f391a6b08e116d1e4ed4f01e3004b8ce1a2b1
7
- data.tar.gz: e29fdb9806ad212566465c4af26bbe8a9e46cc9a17d2540852f861c0a809855bd5ec2d36acd30b5d7ad6f0995b21f7c99fcee3d155ba63e632f1ec05a7853948
6
+ metadata.gz: 9d67a1ea79d87b7260760a3cbc0f389f2c7a4611ed9e5102e3bbbc185df7ef4dea670093de98e030805fbf5eccb39201ef64cec304ffb7da0e1b07be42ca2f43
7
+ data.tar.gz: 7cf932719a8c59a67d6ff62e4abde22b1efb3ed2bb931486343befdfd41a2953c412be657e539923ce2b2ee8213b22be57a24cda7167fccda63746ca7772fe21
@@ -47,6 +47,8 @@ module XeroRuby::PayrollUk
47
47
  TIPS_NON_DIRECT ||= "TipsNonDirect".freeze
48
48
  TIPS_DIRECT ||= "TipsDirect".freeze
49
49
  TERMINATION_PAY ||= "TerminationPay".freeze
50
+ STATUTORY_NEONATAL_CARE_PAY ||= "StatutoryNeonatalCarePay".freeze
51
+ STATUTORY_NEONATAL_CARE_PAY_NON_PENSIONABLE ||= "StatutoryNeonatalCarePayNonPensionable".freeze
50
52
 
51
53
  # Indicates the type of the earning rate
52
54
  attr_accessor :rate_type
@@ -214,7 +216,7 @@ module XeroRuby::PayrollUk
214
216
  def valid?
215
217
  return false if @name.nil?
216
218
  return false if @earnings_type.nil?
217
- earnings_type_validator = EnumAttributeValidator.new('String', ["Allowance", "BackPay", "Bonus", "Commission", "LumpSum", "OtherEarnings", "OvertimeEarnings", "RegularEarnings", "StatutoryAdoptionPay", "StatutoryAdoptionPayNonPensionable", "StatutoryBereavementPay", "StatutoryMaternityPay", "StatutoryMaternityPayNonPensionable", "StatutoryPaternityPay", "StatutoryPaternityPayNonPensionable", "StatutoryParentalBereavementPayNonPensionable", "StatutorySharedParentalPay", "StatutorySharedParentalPayNonPensionable", "StatutorySickPay", "StatutorySickPayNonPensionable", "TipsNonDirect", "TipsDirect", "TerminationPay"])
219
+ earnings_type_validator = EnumAttributeValidator.new('String', ["Allowance", "BackPay", "Bonus", "Commission", "LumpSum", "OtherEarnings", "OvertimeEarnings", "RegularEarnings", "StatutoryAdoptionPay", "StatutoryAdoptionPayNonPensionable", "StatutoryBereavementPay", "StatutoryMaternityPay", "StatutoryMaternityPayNonPensionable", "StatutoryPaternityPay", "StatutoryPaternityPayNonPensionable", "StatutoryParentalBereavementPayNonPensionable", "StatutorySharedParentalPay", "StatutorySharedParentalPayNonPensionable", "StatutorySickPay", "StatutorySickPayNonPensionable", "TipsNonDirect", "TipsDirect", "TerminationPay", "StatutoryNeonatalCarePay", "StatutoryNeonatalCarePayNonPensionable"])
218
220
  return false unless earnings_type_validator.valid?(@earnings_type)
219
221
  return false if @rate_type.nil?
220
222
  rate_type_validator = EnumAttributeValidator.new('String', ["RatePerUnit", "MultipleOfOrdinaryEarningsRate", "FixedAmount"])
@@ -227,7 +229,7 @@ module XeroRuby::PayrollUk
227
229
  # Custom attribute writer method checking allowed values (enum).
228
230
  # @param [Object] earnings_type Object to be assigned
229
231
  def earnings_type=(earnings_type)
230
- validator = EnumAttributeValidator.new('String', ["Allowance", "BackPay", "Bonus", "Commission", "LumpSum", "OtherEarnings", "OvertimeEarnings", "RegularEarnings", "StatutoryAdoptionPay", "StatutoryAdoptionPayNonPensionable", "StatutoryBereavementPay", "StatutoryMaternityPay", "StatutoryMaternityPayNonPensionable", "StatutoryPaternityPay", "StatutoryPaternityPayNonPensionable", "StatutoryParentalBereavementPayNonPensionable", "StatutorySharedParentalPay", "StatutorySharedParentalPayNonPensionable", "StatutorySickPay", "StatutorySickPayNonPensionable", "TipsNonDirect", "TipsDirect", "TerminationPay"])
232
+ validator = EnumAttributeValidator.new('String', ["Allowance", "BackPay", "Bonus", "Commission", "LumpSum", "OtherEarnings", "OvertimeEarnings", "RegularEarnings", "StatutoryAdoptionPay", "StatutoryAdoptionPayNonPensionable", "StatutoryBereavementPay", "StatutoryMaternityPay", "StatutoryMaternityPayNonPensionable", "StatutoryPaternityPay", "StatutoryPaternityPayNonPensionable", "StatutoryParentalBereavementPayNonPensionable", "StatutorySharedParentalPay", "StatutorySharedParentalPayNonPensionable", "StatutorySickPay", "StatutorySickPayNonPensionable", "TipsNonDirect", "TipsDirect", "TerminationPay", "StatutoryNeonatalCarePay", "StatutoryNeonatalCarePayNonPensionable"])
231
233
  unless validator.valid?(earnings_type)
232
234
  fail ArgumentError, "invalid value for \"earnings_type\", must be one of #{validator.allowable_values}."
233
235
  end
@@ -60,6 +60,12 @@ module XeroRuby::PayrollUk
60
60
  # UTC timestamp when the employee was created in Xero
61
61
  attr_accessor :created_date_utc
62
62
 
63
+
64
+ attr_accessor :ni_category
65
+
66
+ # The employee's NI categories
67
+ attr_accessor :ni_categories
68
+
63
69
  # National insurance number of the employee
64
70
  attr_accessor :national_insurance_number
65
71
 
@@ -105,6 +111,8 @@ module XeroRuby::PayrollUk
105
111
  :'payroll_calendar_id' => :'payrollCalendarID',
106
112
  :'updated_date_utc' => :'updatedDateUTC',
107
113
  :'created_date_utc' => :'createdDateUTC',
114
+ :'ni_category' => :'niCategory',
115
+ :'ni_categories' => :'niCategories',
108
116
  :'national_insurance_number' => :'nationalInsuranceNumber',
109
117
  :'is_off_payroll_worker' => :'isOffPayrollWorker'
110
118
  }
@@ -127,6 +135,8 @@ module XeroRuby::PayrollUk
127
135
  :'payroll_calendar_id' => :'String',
128
136
  :'updated_date_utc' => :'DateTime',
129
137
  :'created_date_utc' => :'DateTime',
138
+ :'ni_category' => :'NICategoryLetter',
139
+ :'ni_categories' => :'Array<NICategory>',
130
140
  :'national_insurance_number' => :'String',
131
141
  :'is_off_payroll_worker' => :'Boolean'
132
142
  }
@@ -203,6 +213,16 @@ module XeroRuby::PayrollUk
203
213
  self.created_date_utc = attributes[:'created_date_utc']
204
214
  end
205
215
 
216
+ if attributes.key?(:'ni_category')
217
+ self.ni_category = attributes[:'ni_category']
218
+ end
219
+
220
+ if attributes.key?(:'ni_categories')
221
+ if (value = attributes[:'ni_categories']).is_a?(Array)
222
+ self.ni_categories = value
223
+ end
224
+ end
225
+
206
226
  if attributes.key?(:'national_insurance_number')
207
227
  self.national_insurance_number = attributes[:'national_insurance_number']
208
228
  end
@@ -256,6 +276,8 @@ module XeroRuby::PayrollUk
256
276
  payroll_calendar_id == o.payroll_calendar_id &&
257
277
  updated_date_utc == o.updated_date_utc &&
258
278
  created_date_utc == o.created_date_utc &&
279
+ ni_category == o.ni_category &&
280
+ ni_categories == o.ni_categories &&
259
281
  national_insurance_number == o.national_insurance_number &&
260
282
  is_off_payroll_worker == o.is_off_payroll_worker
261
283
  end
@@ -269,7 +291,7 @@ module XeroRuby::PayrollUk
269
291
  # Calculates hash code according to all attributes.
270
292
  # @return [Integer] Hash code
271
293
  def hash
272
- [employee_id, title, first_name, last_name, date_of_birth, address, email, gender, phone_number, start_date, end_date, payroll_calendar_id, updated_date_utc, created_date_utc, national_insurance_number, is_off_payroll_worker].hash
294
+ [employee_id, title, first_name, last_name, date_of_birth, address, email, gender, phone_number, start_date, end_date, payroll_calendar_id, updated_date_utc, created_date_utc, ni_category, ni_categories, national_insurance_number, is_off_payroll_worker].hash
273
295
  end
274
296
 
275
297
  # Builds the object from hash
@@ -25,51 +25,20 @@ module XeroRuby::PayrollUk
25
25
  # The employment number of the employee
26
26
  attr_accessor :employee_number
27
27
 
28
- # The NI Category of the employee
28
+
29
29
  attr_accessor :ni_category
30
- A ||= "A".freeze
31
- B ||= "B".freeze
32
- C ||= "C".freeze
33
- F ||= "F".freeze
34
- H ||= "H".freeze
35
- I ||= "I".freeze
36
- J ||= "J".freeze
37
- L ||= "L".freeze
38
- M ||= "M".freeze
39
- S ||= "S".freeze
40
- V ||= "V".freeze
41
- X ||= "X".freeze
42
- Z ||= "Z".freeze
43
30
 
44
- class EnumAttributeValidator
45
- attr_reader :datatype
46
- attr_reader :allowable_values
47
-
48
- def initialize(datatype, allowable_values)
49
- @allowable_values = allowable_values.map do |value|
50
- case datatype.to_s
51
- when /Integer/i
52
- value.to_i
53
- when /Float/i
54
- value.to_f
55
- else
56
- value
57
- end
58
- end
59
- end
60
-
61
- def valid?(value)
62
- !value || allowable_values.include?(value)
63
- end
64
- end
65
-
31
+ # The employee's NI categories
32
+ attr_accessor :ni_categories
33
+
66
34
  # Attribute mapping from ruby-style variable name to JSON key.
67
35
  def self.attribute_map
68
36
  {
69
37
  :'payroll_calendar_id' => :'payrollCalendarID',
70
38
  :'start_date' => :'startDate',
71
39
  :'employee_number' => :'employeeNumber',
72
- :'ni_category' => :'niCategory'
40
+ :'ni_category' => :'niCategory',
41
+ :'ni_categories' => :'niCategories'
73
42
  }
74
43
  end
75
44
 
@@ -79,7 +48,8 @@ module XeroRuby::PayrollUk
79
48
  :'payroll_calendar_id' => :'String',
80
49
  :'start_date' => :'Date',
81
50
  :'employee_number' => :'String',
82
- :'ni_category' => :'String'
51
+ :'ni_category' => :'NICategoryLetter',
52
+ :'ni_categories' => :'Array<NICategory>'
83
53
  }
84
54
  end
85
55
 
@@ -113,6 +83,12 @@ module XeroRuby::PayrollUk
113
83
  if attributes.key?(:'ni_category')
114
84
  self.ni_category = attributes[:'ni_category']
115
85
  end
86
+
87
+ if attributes.key?(:'ni_categories')
88
+ if (value = attributes[:'ni_categories']).is_a?(Array)
89
+ self.ni_categories = value
90
+ end
91
+ end
116
92
  end
117
93
 
118
94
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -125,21 +101,9 @@ module XeroRuby::PayrollUk
125
101
  # Check to see if the all the properties in the model are valid
126
102
  # @return true if the model is valid
127
103
  def valid?
128
- ni_category_validator = EnumAttributeValidator.new('String', ["A", "B", "C", "F", "H", "I", "J", "L", "M", "S", "V", "X", "Z"])
129
- return false unless ni_category_validator.valid?(@ni_category)
130
104
  true
131
105
  end
132
106
 
133
- # Custom attribute writer method checking allowed values (enum).
134
- # @param [Object] ni_category Object to be assigned
135
- def ni_category=(ni_category)
136
- validator = EnumAttributeValidator.new('String', ["A", "B", "C", "F", "H", "I", "J", "L", "M", "S", "V", "X", "Z"])
137
- unless validator.valid?(ni_category)
138
- fail ArgumentError, "invalid value for \"ni_category\", must be one of #{validator.allowable_values}."
139
- end
140
- @ni_category = ni_category
141
- end
142
-
143
107
  # Checks equality by comparing each attribute.
144
108
  # @param [Object] Object to be compared
145
109
  def ==(o)
@@ -148,7 +112,8 @@ module XeroRuby::PayrollUk
148
112
  payroll_calendar_id == o.payroll_calendar_id &&
149
113
  start_date == o.start_date &&
150
114
  employee_number == o.employee_number &&
151
- ni_category == o.ni_category
115
+ ni_category == o.ni_category &&
116
+ ni_categories == o.ni_categories
152
117
  end
153
118
 
154
119
  # @see the `==` method
@@ -160,7 +125,7 @@ module XeroRuby::PayrollUk
160
125
  # Calculates hash code according to all attributes.
161
126
  # @return [Integer] Hash code
162
127
  def hash
163
- [payroll_calendar_id, start_date, employee_number, ni_category].hash
128
+ [payroll_calendar_id, start_date, employee_number, ni_category, ni_categories].hash
164
129
  end
165
130
 
166
131
  # Builds the object from hash
@@ -0,0 +1,318 @@
1
+ =begin
2
+ #Xero Payroll UK
3
+
4
+ #This is the Xero Payroll API for orgs in the UK region.
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::PayrollUk
16
+ require 'bigdecimal'
17
+
18
+ class NICategory
19
+ # The start date of the NI category (YYYY-MM-DD)
20
+ attr_accessor :start_date
21
+
22
+
23
+ attr_accessor :ni_category
24
+
25
+ # Xero unique identifier for the NI category
26
+ attr_accessor :ni_category_id
27
+
28
+ # The date in which the employee was first employed as a civilian (YYYY-MM-DD)
29
+ attr_accessor :date_first_employed_as_civilian
30
+
31
+ # The workplace postcode
32
+ attr_accessor :workplace_postcode
33
+
34
+ class EnumAttributeValidator
35
+ attr_reader :datatype
36
+ attr_reader :allowable_values
37
+
38
+ def initialize(datatype, allowable_values)
39
+ @allowable_values = allowable_values.map do |value|
40
+ case datatype.to_s
41
+ when /Integer/i
42
+ value.to_i
43
+ when /Float/i
44
+ value.to_f
45
+ else
46
+ value
47
+ end
48
+ end
49
+ end
50
+
51
+ def valid?(value)
52
+ !value || allowable_values.include?(value)
53
+ end
54
+ end
55
+
56
+ # Attribute mapping from ruby-style variable name to JSON key.
57
+ def self.attribute_map
58
+ {
59
+ :'start_date' => :'startDate',
60
+ :'ni_category' => :'niCategory',
61
+ :'ni_category_id' => :'niCategoryID',
62
+ :'date_first_employed_as_civilian' => :'dateFirstEmployedAsCivilian',
63
+ :'workplace_postcode' => :'workplacePostcode'
64
+ }
65
+ end
66
+
67
+ # Attribute type mapping.
68
+ def self.openapi_types
69
+ {
70
+ :'start_date' => :'Date',
71
+ :'ni_category' => :'NICategoryLetter',
72
+ :'ni_category_id' => :'Float',
73
+ :'date_first_employed_as_civilian' => :'Date',
74
+ :'workplace_postcode' => :'String'
75
+ }
76
+ end
77
+
78
+ # List of class defined in oneOf (OpenAPI v3)
79
+ def self.openapi_one_of
80
+ [
81
+ :'NICategoryOneOf',
82
+ :'NICategoryOneOf1'
83
+ ]
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::PayrollUk::NICategory` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ attributes = attributes.each_with_object({}) { |(k, v), h|
95
+ if (!self.class.attribute_map.key?(k.to_sym))
96
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::PayrollUk::NICategory`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
97
+ end
98
+ h[k.to_sym] = v
99
+ }
100
+
101
+ if attributes.key?(:'start_date')
102
+ self.start_date = attributes[:'start_date']
103
+ end
104
+
105
+ if attributes.key?(:'ni_category')
106
+ self.ni_category = attributes[:'ni_category']
107
+ end
108
+
109
+ if attributes.key?(:'ni_category_id')
110
+ self.ni_category_id = attributes[:'ni_category_id']
111
+ end
112
+
113
+ if attributes.key?(:'date_first_employed_as_civilian')
114
+ self.date_first_employed_as_civilian = attributes[:'date_first_employed_as_civilian']
115
+ end
116
+
117
+ if attributes.key?(:'workplace_postcode')
118
+ self.workplace_postcode = attributes[:'workplace_postcode']
119
+ end
120
+ end
121
+
122
+ # Show invalid properties with the reasons. Usually used together with valid?
123
+ # @return Array for valid properties with the reasons
124
+ def list_invalid_properties
125
+ invalid_properties = Array.new
126
+ if @ni_category.nil?
127
+ invalid_properties.push('invalid value for "ni_category", ni_category cannot be nil.')
128
+ end
129
+
130
+ if @workplace_postcode.nil?
131
+ invalid_properties.push('invalid value for "workplace_postcode", workplace_postcode cannot be nil.')
132
+ end
133
+
134
+ invalid_properties
135
+ end
136
+
137
+ # Check to see if the all the properties in the model are valid
138
+ # @return true if the model is valid
139
+ def valid?
140
+ return false if @ni_category.nil?
141
+ return false if @workplace_postcode.nil?
142
+ _one_of_found = false
143
+ self.class.openapi_one_of.each do |_class|
144
+ _one_of = XeroRuby::PayrollUk.const_get(_class).build_from_hash(self.to_hash)
145
+ if _one_of.valid?
146
+ if _one_of_found
147
+ return false
148
+ else
149
+ _one_of_found = true
150
+ end
151
+ end
152
+ end
153
+
154
+ if !_one_of_found
155
+ return false
156
+ end
157
+
158
+ true
159
+ end
160
+
161
+ # Checks equality by comparing each attribute.
162
+ # @param [Object] Object to be compared
163
+ def ==(o)
164
+ return true if self.equal?(o)
165
+ self.class == o.class &&
166
+ start_date == o.start_date &&
167
+ ni_category == o.ni_category &&
168
+ ni_category_id == o.ni_category_id &&
169
+ date_first_employed_as_civilian == o.date_first_employed_as_civilian &&
170
+ workplace_postcode == o.workplace_postcode
171
+ end
172
+
173
+ # @see the `==` method
174
+ # @param [Object] Object to be compared
175
+ def eql?(o)
176
+ self == o
177
+ end
178
+
179
+ # Calculates hash code according to all attributes.
180
+ # @return [Integer] Hash code
181
+ def hash
182
+ [start_date, ni_category, ni_category_id, date_first_employed_as_civilian, workplace_postcode].hash
183
+ end
184
+
185
+ # Builds the object from hash
186
+ # @param [Hash] attributes Model attributes in the form of hash
187
+ # @return [Object] Returns the model itself
188
+ def self.build_from_hash(attributes)
189
+ new.build_from_hash(attributes)
190
+ end
191
+
192
+ # Builds the object from hash
193
+ # @param [Hash] attributes Model attributes in the form of hash
194
+ # @return [Object] Returns the model itself
195
+ def build_from_hash(attributes)
196
+ return nil unless attributes.is_a?(Hash)
197
+ self.class.openapi_types.each_pair do |key, type|
198
+ if type =~ /\AArray<(.*)>/i
199
+ # check to ensure the input is an array given that the attribute
200
+ # is documented as an array but the input is not
201
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
202
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
203
+ end
204
+ elsif !attributes[self.class.attribute_map[key]].nil?
205
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
206
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
207
+ end
208
+
209
+ self
210
+ end
211
+
212
+ # Deserializes the data based on type
213
+ # @param string type Data type
214
+ # @param string value Value to be deserialized
215
+ # @return [Object] Deserialized data
216
+ def _deserialize(type, value)
217
+ case type.to_sym
218
+ when :DateTime
219
+ DateTime.parse(parse_date(value))
220
+ when :Date
221
+ Date.parse(parse_date(value))
222
+ when :String
223
+ value.to_s
224
+ when :Integer
225
+ value.to_i
226
+ when :Float
227
+ value.to_f
228
+ when :BigDecimal
229
+ BigDecimal(value.to_s)
230
+ when :Boolean
231
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
232
+ true
233
+ else
234
+ false
235
+ end
236
+ when :Object
237
+ # generic object (usually a Hash), return directly
238
+ value
239
+ when /\AArray<(?<inner_type>.+)>\z/
240
+ inner_type = Regexp.last_match[:inner_type]
241
+ value.map { |v| _deserialize(inner_type, v) }
242
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
243
+ k_type = Regexp.last_match[:k_type]
244
+ v_type = Regexp.last_match[:v_type]
245
+ {}.tap do |hash|
246
+ value.each do |k, v|
247
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
248
+ end
249
+ end
250
+ else # model
251
+ XeroRuby::PayrollUk.const_get(type).build_from_hash(value)
252
+ end
253
+ end
254
+
255
+ # Returns the string representation of the object
256
+ # @return [String] String presentation of the object
257
+ def to_s
258
+ to_hash.to_s
259
+ end
260
+
261
+ # to_body is an alias to to_hash (backward compatibility)
262
+ # @return [Hash] Returns the object in the form of hash
263
+ def to_body
264
+ to_hash
265
+ end
266
+
267
+ # Returns the object in the form of hash
268
+ # @return [Hash] Returns the object in the form of hash
269
+ def to_hash(downcase: false)
270
+ hash = {}
271
+ self.class.attribute_map.each_pair do |attr, param|
272
+ value = self.send(attr)
273
+ next if value.nil?
274
+ key = downcase ? attr : param
275
+ hash[key] = _to_hash(value, downcase: downcase)
276
+ end
277
+ hash
278
+ end
279
+
280
+ # Returns the object in the form of hash with snake_case
281
+ def to_attributes
282
+ to_hash(downcase: true)
283
+ end
284
+
285
+ # Outputs non-array value in the form of hash
286
+ # For object, use to_hash. Otherwise, just return the value
287
+ # @param [Object] value Any valid value
288
+ # @return [Hash] Returns the value in the form of hash
289
+ def _to_hash(value, downcase: false)
290
+ if value.is_a?(Array)
291
+ value.map do |v|
292
+ v.to_hash(downcase: downcase)
293
+ end
294
+ elsif value.is_a?(Hash)
295
+ {}.tap do |hash|
296
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
297
+ end
298
+ elsif value.respond_to? :to_hash
299
+ value.to_hash(downcase: downcase)
300
+ else
301
+ value
302
+ end
303
+ end
304
+
305
+ def parse_date(datestring)
306
+ if datestring.include?('Date')
307
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
308
+ original, date, timezone = *date_pattern.match(datestring)
309
+ date = (date.to_i / 1000)
310
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
311
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
312
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
313
+ else # handle date 'types' for small subset of payroll API's
314
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
315
+ end
316
+ end
317
+ end
318
+ end
@@ -0,0 +1,51 @@
1
+ =begin
2
+ #Xero Payroll UK
3
+
4
+ #This is the Xero Payroll API for orgs in the UK region.
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::PayrollUk
16
+ class NICategoryLetter
17
+ A ||= "A".freeze
18
+ B ||= "B".freeze
19
+ C ||= "C".freeze
20
+ F ||= "F".freeze
21
+ H ||= "H".freeze
22
+ I ||= "I".freeze
23
+ J ||= "J".freeze
24
+ L ||= "L".freeze
25
+ M ||= "M".freeze
26
+ S ||= "S".freeze
27
+ V ||= "V".freeze
28
+ X ||= "X".freeze
29
+ Z ||= "Z".freeze
30
+ D ||= "D".freeze
31
+ E ||= "E".freeze
32
+ K ||= "K".freeze
33
+ N ||= "N".freeze
34
+
35
+ # Builds the enum from string
36
+ # @param [String] The enum value in the form of the string
37
+ # @return [String] The enum value
38
+ def self.build_from_hash(value)
39
+ new.build_from_hash(value)
40
+ end
41
+
42
+ # Builds the enum from string
43
+ # @param [String] The enum value in the form of the string
44
+ # @return [String] The enum value
45
+ def build_from_hash(value)
46
+ constantValues = NICategoryLetter.constants.select { |c| NICategoryLetter::const_get(c) == value }
47
+ raise "Invalid ENUM value #{value} for class #NICategoryLetter" if constantValues.empty?
48
+ value
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,264 @@
1
+ =begin
2
+ #Xero Payroll UK
3
+
4
+ #This is the Xero Payroll API for orgs in the UK region.
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::PayrollUk
16
+ require 'bigdecimal'
17
+
18
+ class NICategoryOneOf
19
+
20
+ attr_accessor :ni_category
21
+ F ||= "F".freeze
22
+ I ||= "I".freeze
23
+ L ||= "L".freeze
24
+ S ||= "S".freeze
25
+ N ||= "N".freeze
26
+ E ||= "E".freeze
27
+ D ||= "D".freeze
28
+ K ||= "K".freeze
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'ni_category' => :'niCategory'
56
+ }
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.openapi_types
61
+ {
62
+ :'ni_category' => :'String'
63
+ }
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::PayrollUk::NICategoryOneOf` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!self.class.attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::PayrollUk::NICategoryOneOf`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'ni_category')
82
+ self.ni_category = attributes[:'ni_category']
83
+ end
84
+ end
85
+
86
+ # Show invalid properties with the reasons. Usually used together with valid?
87
+ # @return Array for valid properties with the reasons
88
+ def list_invalid_properties
89
+ invalid_properties = Array.new
90
+ invalid_properties
91
+ end
92
+
93
+ # Check to see if the all the properties in the model are valid
94
+ # @return true if the model is valid
95
+ def valid?
96
+ ni_category_validator = EnumAttributeValidator.new('String', ["F", "I", "L", "S", "N", "E", "D", "K"])
97
+ return false unless ni_category_validator.valid?(@ni_category)
98
+ true
99
+ end
100
+
101
+ # Custom attribute writer method checking allowed values (enum).
102
+ # @param [Object] ni_category Object to be assigned
103
+ def ni_category=(ni_category)
104
+ validator = EnumAttributeValidator.new('String', ["F", "I", "L", "S", "N", "E", "D", "K"])
105
+ unless validator.valid?(ni_category)
106
+ fail ArgumentError, "invalid value for \"ni_category\", must be one of #{validator.allowable_values}."
107
+ end
108
+ @ni_category = ni_category
109
+ end
110
+
111
+ # Checks equality by comparing each attribute.
112
+ # @param [Object] Object to be compared
113
+ def ==(o)
114
+ return true if self.equal?(o)
115
+ self.class == o.class &&
116
+ ni_category == o.ni_category
117
+ end
118
+
119
+ # @see the `==` method
120
+ # @param [Object] Object to be compared
121
+ def eql?(o)
122
+ self == o
123
+ end
124
+
125
+ # Calculates hash code according to all attributes.
126
+ # @return [Integer] Hash code
127
+ def hash
128
+ [ni_category].hash
129
+ end
130
+
131
+ # Builds the object from hash
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ # @return [Object] Returns the model itself
134
+ def self.build_from_hash(attributes)
135
+ new.build_from_hash(attributes)
136
+ end
137
+
138
+ # Builds the object from hash
139
+ # @param [Hash] attributes Model attributes in the form of hash
140
+ # @return [Object] Returns the model itself
141
+ def build_from_hash(attributes)
142
+ return nil unless attributes.is_a?(Hash)
143
+ self.class.openapi_types.each_pair do |key, type|
144
+ if type =~ /\AArray<(.*)>/i
145
+ # check to ensure the input is an array given that the attribute
146
+ # is documented as an array but the input is not
147
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
148
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
149
+ end
150
+ elsif !attributes[self.class.attribute_map[key]].nil?
151
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
152
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
153
+ end
154
+
155
+ self
156
+ end
157
+
158
+ # Deserializes the data based on type
159
+ # @param string type Data type
160
+ # @param string value Value to be deserialized
161
+ # @return [Object] Deserialized data
162
+ def _deserialize(type, value)
163
+ case type.to_sym
164
+ when :DateTime
165
+ DateTime.parse(parse_date(value))
166
+ when :Date
167
+ Date.parse(parse_date(value))
168
+ when :String
169
+ value.to_s
170
+ when :Integer
171
+ value.to_i
172
+ when :Float
173
+ value.to_f
174
+ when :BigDecimal
175
+ BigDecimal(value.to_s)
176
+ when :Boolean
177
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
178
+ true
179
+ else
180
+ false
181
+ end
182
+ when :Object
183
+ # generic object (usually a Hash), return directly
184
+ value
185
+ when /\AArray<(?<inner_type>.+)>\z/
186
+ inner_type = Regexp.last_match[:inner_type]
187
+ value.map { |v| _deserialize(inner_type, v) }
188
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
189
+ k_type = Regexp.last_match[:k_type]
190
+ v_type = Regexp.last_match[:v_type]
191
+ {}.tap do |hash|
192
+ value.each do |k, v|
193
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
194
+ end
195
+ end
196
+ else # model
197
+ XeroRuby::PayrollUk.const_get(type).build_from_hash(value)
198
+ end
199
+ end
200
+
201
+ # Returns the string representation of the object
202
+ # @return [String] String presentation of the object
203
+ def to_s
204
+ to_hash.to_s
205
+ end
206
+
207
+ # to_body is an alias to to_hash (backward compatibility)
208
+ # @return [Hash] Returns the object in the form of hash
209
+ def to_body
210
+ to_hash
211
+ end
212
+
213
+ # Returns the object in the form of hash
214
+ # @return [Hash] Returns the object in the form of hash
215
+ def to_hash(downcase: false)
216
+ hash = {}
217
+ self.class.attribute_map.each_pair do |attr, param|
218
+ value = self.send(attr)
219
+ next if value.nil?
220
+ key = downcase ? attr : param
221
+ hash[key] = _to_hash(value, downcase: downcase)
222
+ end
223
+ hash
224
+ end
225
+
226
+ # Returns the object in the form of hash with snake_case
227
+ def to_attributes
228
+ to_hash(downcase: true)
229
+ end
230
+
231
+ # Outputs non-array value in the form of hash
232
+ # For object, use to_hash. Otherwise, just return the value
233
+ # @param [Object] value Any valid value
234
+ # @return [Hash] Returns the value in the form of hash
235
+ def _to_hash(value, downcase: false)
236
+ if value.is_a?(Array)
237
+ value.map do |v|
238
+ v.to_hash(downcase: downcase)
239
+ end
240
+ elsif value.is_a?(Hash)
241
+ {}.tap do |hash|
242
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
243
+ end
244
+ elsif value.respond_to? :to_hash
245
+ value.to_hash(downcase: downcase)
246
+ else
247
+ value
248
+ end
249
+ end
250
+
251
+ def parse_date(datestring)
252
+ if datestring.include?('Date')
253
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
254
+ original, date, timezone = *date_pattern.match(datestring)
255
+ date = (date.to_i / 1000)
256
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
257
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
258
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
259
+ else # handle date 'types' for small subset of payroll API's
260
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
261
+ end
262
+ end
263
+ end
264
+ end
@@ -0,0 +1,257 @@
1
+ =begin
2
+ #Xero Payroll UK
3
+
4
+ #This is the Xero Payroll API for orgs in the UK region.
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::PayrollUk
16
+ require 'bigdecimal'
17
+
18
+ class NICategoryOneOf1
19
+
20
+ attr_accessor :ni_category
21
+ V ||= "V".freeze
22
+
23
+ class EnumAttributeValidator
24
+ attr_reader :datatype
25
+ attr_reader :allowable_values
26
+
27
+ def initialize(datatype, allowable_values)
28
+ @allowable_values = allowable_values.map do |value|
29
+ case datatype.to_s
30
+ when /Integer/i
31
+ value.to_i
32
+ when /Float/i
33
+ value.to_f
34
+ else
35
+ value
36
+ end
37
+ end
38
+ end
39
+
40
+ def valid?(value)
41
+ !value || allowable_values.include?(value)
42
+ end
43
+ end
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'ni_category' => :'niCategory'
49
+ }
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.openapi_types
54
+ {
55
+ :'ni_category' => :'String'
56
+ }
57
+ end
58
+
59
+ # Initializes the object
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ def initialize(attributes = {})
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::PayrollUk::NICategoryOneOf1` initialize method"
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::PayrollUk::NICategoryOneOf1`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'ni_category')
75
+ self.ni_category = attributes[:'ni_category']
76
+ end
77
+ end
78
+
79
+ # Show invalid properties with the reasons. Usually used together with valid?
80
+ # @return Array for valid properties with the reasons
81
+ def list_invalid_properties
82
+ invalid_properties = Array.new
83
+ invalid_properties
84
+ end
85
+
86
+ # Check to see if the all the properties in the model are valid
87
+ # @return true if the model is valid
88
+ def valid?
89
+ ni_category_validator = EnumAttributeValidator.new('String', ["V"])
90
+ return false unless ni_category_validator.valid?(@ni_category)
91
+ true
92
+ end
93
+
94
+ # Custom attribute writer method checking allowed values (enum).
95
+ # @param [Object] ni_category Object to be assigned
96
+ def ni_category=(ni_category)
97
+ validator = EnumAttributeValidator.new('String', ["V"])
98
+ unless validator.valid?(ni_category)
99
+ fail ArgumentError, "invalid value for \"ni_category\", must be one of #{validator.allowable_values}."
100
+ end
101
+ @ni_category = ni_category
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(o)
107
+ return true if self.equal?(o)
108
+ self.class == o.class &&
109
+ ni_category == o.ni_category
110
+ end
111
+
112
+ # @see the `==` method
113
+ # @param [Object] Object to be compared
114
+ def eql?(o)
115
+ self == o
116
+ end
117
+
118
+ # Calculates hash code according to all attributes.
119
+ # @return [Integer] Hash code
120
+ def hash
121
+ [ni_category].hash
122
+ end
123
+
124
+ # Builds the object from hash
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ # @return [Object] Returns the model itself
127
+ def self.build_from_hash(attributes)
128
+ new.build_from_hash(attributes)
129
+ end
130
+
131
+ # Builds the object from hash
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ # @return [Object] Returns the model itself
134
+ def build_from_hash(attributes)
135
+ return nil unless attributes.is_a?(Hash)
136
+ self.class.openapi_types.each_pair do |key, type|
137
+ if type =~ /\AArray<(.*)>/i
138
+ # check to ensure the input is an array given that the attribute
139
+ # is documented as an array but the input is not
140
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
141
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
142
+ end
143
+ elsif !attributes[self.class.attribute_map[key]].nil?
144
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
145
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
146
+ end
147
+
148
+ self
149
+ end
150
+
151
+ # Deserializes the data based on type
152
+ # @param string type Data type
153
+ # @param string value Value to be deserialized
154
+ # @return [Object] Deserialized data
155
+ def _deserialize(type, value)
156
+ case type.to_sym
157
+ when :DateTime
158
+ DateTime.parse(parse_date(value))
159
+ when :Date
160
+ Date.parse(parse_date(value))
161
+ when :String
162
+ value.to_s
163
+ when :Integer
164
+ value.to_i
165
+ when :Float
166
+ value.to_f
167
+ when :BigDecimal
168
+ BigDecimal(value.to_s)
169
+ when :Boolean
170
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
171
+ true
172
+ else
173
+ false
174
+ end
175
+ when :Object
176
+ # generic object (usually a Hash), return directly
177
+ value
178
+ when /\AArray<(?<inner_type>.+)>\z/
179
+ inner_type = Regexp.last_match[:inner_type]
180
+ value.map { |v| _deserialize(inner_type, v) }
181
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
182
+ k_type = Regexp.last_match[:k_type]
183
+ v_type = Regexp.last_match[:v_type]
184
+ {}.tap do |hash|
185
+ value.each do |k, v|
186
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
187
+ end
188
+ end
189
+ else # model
190
+ XeroRuby::PayrollUk.const_get(type).build_from_hash(value)
191
+ end
192
+ end
193
+
194
+ # Returns the string representation of the object
195
+ # @return [String] String presentation of the object
196
+ def to_s
197
+ to_hash.to_s
198
+ end
199
+
200
+ # to_body is an alias to to_hash (backward compatibility)
201
+ # @return [Hash] Returns the object in the form of hash
202
+ def to_body
203
+ to_hash
204
+ end
205
+
206
+ # Returns the object in the form of hash
207
+ # @return [Hash] Returns the object in the form of hash
208
+ def to_hash(downcase: false)
209
+ hash = {}
210
+ self.class.attribute_map.each_pair do |attr, param|
211
+ value = self.send(attr)
212
+ next if value.nil?
213
+ key = downcase ? attr : param
214
+ hash[key] = _to_hash(value, downcase: downcase)
215
+ end
216
+ hash
217
+ end
218
+
219
+ # Returns the object in the form of hash with snake_case
220
+ def to_attributes
221
+ to_hash(downcase: true)
222
+ end
223
+
224
+ # Outputs non-array value in the form of hash
225
+ # For object, use to_hash. Otherwise, just return the value
226
+ # @param [Object] value Any valid value
227
+ # @return [Hash] Returns the value in the form of hash
228
+ def _to_hash(value, downcase: false)
229
+ if value.is_a?(Array)
230
+ value.map do |v|
231
+ v.to_hash(downcase: downcase)
232
+ end
233
+ elsif value.is_a?(Hash)
234
+ {}.tap do |hash|
235
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
236
+ end
237
+ elsif value.respond_to? :to_hash
238
+ value.to_hash(downcase: downcase)
239
+ else
240
+ value
241
+ end
242
+ end
243
+
244
+ def parse_date(datestring)
245
+ if datestring.include?('Date')
246
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
247
+ original, date, timezone = *date_pattern.match(datestring)
248
+ date = (date.to_i / 1000)
249
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
250
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
251
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
252
+ else # handle date 'types' for small subset of payroll API's
253
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
254
+ end
255
+ end
256
+ end
257
+ 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: 7.0.0
10
+ The version of the XeroOpenAPI document: 8.0.0
11
11
  =end
12
12
 
13
13
  module XeroRuby
14
- VERSION = '10.0.0'
14
+ VERSION = '11.0.0'
15
15
  end
data/lib/xero-ruby.rb CHANGED
@@ -139,6 +139,10 @@ require 'xero-ruby/models/payroll_uk/leave_periods'
139
139
  require 'xero-ruby/models/payroll_uk/leave_type'
140
140
  require 'xero-ruby/models/payroll_uk/leave_type_object'
141
141
  require 'xero-ruby/models/payroll_uk/leave_types'
142
+ require 'xero-ruby/models/payroll_uk/ni_category'
143
+ require 'xero-ruby/models/payroll_uk/ni_category_letter'
144
+ require 'xero-ruby/models/payroll_uk/ni_category_one_of'
145
+ require 'xero-ruby/models/payroll_uk/ni_category_one_of1'
142
146
  require 'xero-ruby/models/payroll_uk/pagination'
143
147
  require 'xero-ruby/models/payroll_uk/pay_run'
144
148
  require 'xero-ruby/models/payroll_uk/pay_run_calendar'
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: 10.0.0
4
+ version: 11.0.0
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: 2025-02-03 00:00:00.000000000 Z
11
+ date: 2025-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -34,22 +34,22 @@ dependencies:
34
34
  name: json
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 2.1.0
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '2.1'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.1.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 2.1.0
50
47
  - - "~>"
51
48
  - !ruby/object:Gem::Version
52
49
  version: '2.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.1.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: json-jwt
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -74,22 +74,22 @@ dependencies:
74
74
  name: rspec
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: 3.6.0
80
77
  - - "~>"
81
78
  - !ruby/object:Gem::Version
82
79
  version: '3.6'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.6.0
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 3.6.0
90
87
  - - "~>"
91
88
  - !ruby/object:Gem::Version
92
89
  version: '3.6'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 3.6.0
93
93
  description: Xero API OAuth2.0 SDK - Ruby Gem
94
94
  email:
95
95
  - api@xero.com
@@ -582,6 +582,10 @@ files:
582
582
  - lib/xero-ruby/models/payroll_uk/leave_type.rb
583
583
  - lib/xero-ruby/models/payroll_uk/leave_type_object.rb
584
584
  - lib/xero-ruby/models/payroll_uk/leave_types.rb
585
+ - lib/xero-ruby/models/payroll_uk/ni_category.rb
586
+ - lib/xero-ruby/models/payroll_uk/ni_category_letter.rb
587
+ - lib/xero-ruby/models/payroll_uk/ni_category_one_of.rb
588
+ - lib/xero-ruby/models/payroll_uk/ni_category_one_of1.rb
585
589
  - lib/xero-ruby/models/payroll_uk/pagination.rb
586
590
  - lib/xero-ruby/models/payroll_uk/pay_run.rb
587
591
  - lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb
@@ -1131,7 +1135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1131
1135
  - !ruby/object:Gem::Version
1132
1136
  version: '0'
1133
1137
  requirements: []
1134
- rubygems_version: 3.0.3.1
1138
+ rubygems_version: 3.3.26
1135
1139
  signing_key:
1136
1140
  specification_version: 4
1137
1141
  summary: Xero Accounting API Ruby Gem