merge_hris_client 3.2.1 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +49 -16
  3. data/docs/AccountDetails.md +3 -1
  4. data/docs/AccountDetailsAndActions.md +7 -3
  5. data/docs/AccountIntegration.md +8 -4
  6. data/docs/AdvancedMetadata.md +28 -0
  7. data/docs/AuditLogEvent.md +32 -0
  8. data/docs/AuditTrailApi.md +91 -0
  9. data/docs/BankInfo.md +6 -4
  10. data/docs/BankInfoApi.md +4 -4
  11. data/docs/Benefit.md +6 -4
  12. data/docs/CommonModelScopeAPI.md +18 -0
  13. data/docs/Company.md +6 -4
  14. data/docs/CreateFieldMappingRequest.md +28 -0
  15. data/docs/DataPassthroughRequest.md +4 -4
  16. data/docs/DebugModelLogSummary.md +1 -1
  17. data/docs/Deduction.md +6 -4
  18. data/docs/Dependent.md +6 -4
  19. data/docs/Earning.md +6 -4
  20. data/docs/Employee.md +7 -3
  21. data/docs/EmployeePayrollRun.md +6 -4
  22. data/docs/EmployeeRequest.md +2 -0
  23. data/docs/EmployeesApi.md +10 -4
  24. data/docs/EmployerBenefit.md +6 -4
  25. data/docs/Employment.md +6 -4
  26. data/docs/EmploymentsApi.md +4 -4
  27. data/docs/EndUserDetailsRequest.md +13 -7
  28. data/docs/EventTypeEnum.md +15 -0
  29. data/docs/ExternalTargetFieldAPI.md +22 -0
  30. data/docs/ExternalTargetFieldAPIResponse.md +48 -0
  31. data/docs/FieldMappingApi.md +455 -0
  32. data/docs/FieldMappingApiInstance.md +24 -0
  33. data/docs/FieldMappingApiInstanceRemoteField.md +22 -0
  34. data/docs/FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.md +22 -0
  35. data/docs/FieldMappingApiInstanceResponse.md +48 -0
  36. data/docs/FieldMappingApiInstanceTargetField.md +22 -0
  37. data/docs/FieldMappingInstanceResponse.md +24 -0
  38. data/docs/FieldPermissionDeserializer.md +20 -0
  39. data/docs/FieldPermissionDeserializerRequest.md +20 -0
  40. data/docs/ForceResyncApi.md +1 -1
  41. data/docs/GenerateRemoteKeyRequest.md +1 -1
  42. data/docs/Group.md +9 -5
  43. data/docs/GroupsApi.md +8 -4
  44. data/docs/IndividualCommonModelScopeDeserializer.md +22 -0
  45. data/docs/IndividualCommonModelScopeDeserializerRequest.md +22 -0
  46. data/docs/Issue.md +1 -1
  47. data/docs/IssuesApi.md +5 -3
  48. data/docs/LinkTokenApi.md +1 -1
  49. data/docs/LinkedAccountCommonModelScopeDeserializerRequest.md +18 -0
  50. data/docs/LinkedAccountsApi.md +2 -2
  51. data/docs/Location.md +6 -4
  52. data/docs/LocationsApi.md +6 -4
  53. data/docs/MetaResponse.md +1 -1
  54. data/docs/ModelPermissionDeserializer.md +18 -0
  55. data/docs/ModelPermissionDeserializerRequest.md +18 -0
  56. data/docs/PaginatedAuditLogEventList.md +22 -0
  57. data/docs/PaginatedTimesheetEntryList.md +22 -0
  58. data/docs/PatchedEditFieldMappingRequest.md +22 -0
  59. data/docs/PayGroup.md +6 -4
  60. data/docs/PayrollRun.md +6 -4
  61. data/docs/PayrollRunsApi.md +4 -4
  62. data/docs/RemoteEndpointInfo.md +22 -0
  63. data/docs/RemoteFieldAPI.md +28 -0
  64. data/docs/RemoteFieldAPIResponse.md +48 -0
  65. data/docs/RemoteKeyForRegenerationRequest.md +1 -1
  66. data/docs/RoleEnum.md +15 -0
  67. data/docs/ScopesApi.md +222 -0
  68. data/docs/SyncStatusApi.md +1 -1
  69. data/docs/Tax.md +6 -4
  70. data/docs/Team.md +6 -4
  71. data/docs/TimeOff.md +5 -3
  72. data/docs/TimeOffApi.md +12 -4
  73. data/docs/TimeOffBalance.md +6 -4
  74. data/docs/TimeOffBalancesApi.md +4 -4
  75. data/docs/TimesheetEntriesApi.md +341 -0
  76. data/docs/TimesheetEntry.md +38 -0
  77. data/docs/TimesheetEntryEndpointRequest.md +18 -0
  78. data/docs/TimesheetEntryRequest.md +28 -0
  79. data/docs/TimesheetEntryResponse.md +24 -0
  80. data/lib/merge_hris_client/api/audit_trail_api.rb +95 -0
  81. data/lib/merge_hris_client/api/bank_info_api.rb +4 -4
  82. data/lib/merge_hris_client/api/employees_api.rb +13 -4
  83. data/lib/merge_hris_client/api/employments_api.rb +4 -4
  84. data/lib/merge_hris_client/api/field_mapping_api.rb +424 -0
  85. data/lib/merge_hris_client/api/force_resync_api.rb +2 -2
  86. data/lib/merge_hris_client/api/groups_api.rb +10 -4
  87. data/lib/merge_hris_client/api/issues_api.rb +7 -4
  88. data/lib/merge_hris_client/api/linked_accounts_api.rb +3 -3
  89. data/lib/merge_hris_client/api/locations_api.rb +11 -4
  90. data/lib/merge_hris_client/api/payroll_runs_api.rb +4 -4
  91. data/lib/merge_hris_client/api/scopes_api.rb +209 -0
  92. data/lib/merge_hris_client/api/sync_status_api.rb +2 -2
  93. data/lib/merge_hris_client/api/time_off_api.rb +16 -4
  94. data/lib/merge_hris_client/api/time_off_balances_api.rb +4 -4
  95. data/lib/merge_hris_client/api/timesheet_entries_api.rb +342 -0
  96. data/lib/merge_hris_client/configuration.rb +4 -0
  97. data/lib/merge_hris_client/models/account_details.rb +14 -5
  98. data/lib/merge_hris_client/models/account_details_and_actions.rb +28 -4
  99. data/lib/merge_hris_client/models/account_integration.rb +36 -14
  100. data/lib/merge_hris_client/models/advanced_metadata.rb +270 -0
  101. data/lib/merge_hris_client/models/audit_log_event.rb +356 -0
  102. data/lib/merge_hris_client/models/bank_info.rb +24 -16
  103. data/lib/merge_hris_client/models/benefit.rb +24 -16
  104. data/lib/merge_hris_client/models/common_model_scope_api.rb +226 -0
  105. data/lib/merge_hris_client/models/company.rb +24 -16
  106. data/lib/merge_hris_client/models/create_field_mapping_request.rb +396 -0
  107. data/lib/merge_hris_client/models/data_passthrough_request.rb +3 -0
  108. data/lib/merge_hris_client/models/deduction.rb +24 -16
  109. data/lib/merge_hris_client/models/dependent.rb +24 -16
  110. data/lib/merge_hris_client/models/earning.rb +24 -16
  111. data/lib/merge_hris_client/models/employee.rb +34 -15
  112. data/lib/merge_hris_client/models/employee_payroll_run.rb +24 -16
  113. data/lib/merge_hris_client/models/employee_request.rb +12 -1
  114. data/lib/merge_hris_client/models/employer_benefit.rb +24 -16
  115. data/lib/merge_hris_client/models/employment.rb +24 -16
  116. data/lib/merge_hris_client/models/end_user_details_request.rb +67 -6
  117. data/lib/merge_hris_client/models/event_type_enum.rb +81 -0
  118. data/lib/merge_hris_client/models/external_target_field_api.rb +239 -0
  119. data/lib/merge_hris_client/models/external_target_field_api_response.rb +385 -0
  120. data/lib/merge_hris_client/models/field_mapping_api_instance.rb +247 -0
  121. data/lib/merge_hris_client/models/field_mapping_api_instance_remote_field.rb +253 -0
  122. data/lib/merge_hris_client/models/field_mapping_api_instance_remote_field_remote_endpoint_info.rb +241 -0
  123. data/lib/merge_hris_client/models/field_mapping_api_instance_response.rb +385 -0
  124. data/lib/merge_hris_client/models/field_mapping_api_instance_target_field.rb +251 -0
  125. data/lib/merge_hris_client/models/field_mapping_instance_response.rb +266 -0
  126. data/lib/merge_hris_client/models/field_permission_deserializer.rb +231 -0
  127. data/lib/merge_hris_client/models/field_permission_deserializer_request.rb +231 -0
  128. data/lib/merge_hris_client/models/generate_remote_key_request.rb +1 -0
  129. data/lib/merge_hris_client/models/group.rb +34 -15
  130. data/lib/merge_hris_client/models/individual_common_model_scope_deserializer.rb +243 -0
  131. data/lib/merge_hris_client/models/individual_common_model_scope_deserializer_request.rb +262 -0
  132. data/lib/merge_hris_client/models/linked_account_common_model_scope_deserializer_request.rb +226 -0
  133. data/lib/merge_hris_client/models/location.rb +24 -16
  134. data/lib/merge_hris_client/models/model_permission_deserializer.rb +218 -0
  135. data/lib/merge_hris_client/models/model_permission_deserializer_request.rb +218 -0
  136. data/lib/merge_hris_client/models/paginated_audit_log_event_list.rb +240 -0
  137. data/lib/merge_hris_client/models/paginated_timesheet_entry_list.rb +240 -0
  138. data/lib/merge_hris_client/models/patched_edit_field_mapping_request.rb +271 -0
  139. data/lib/merge_hris_client/models/pay_group.rb +24 -16
  140. data/lib/merge_hris_client/models/payroll_run.rb +24 -16
  141. data/lib/merge_hris_client/models/remote_endpoint_info.rb +253 -0
  142. data/lib/merge_hris_client/models/remote_field_api.rb +285 -0
  143. data/lib/merge_hris_client/models/remote_field_api_response.rb +385 -0
  144. data/lib/merge_hris_client/models/remote_key_for_regeneration_request.rb +1 -0
  145. data/lib/merge_hris_client/models/role_enum.rb +49 -0
  146. data/lib/merge_hris_client/models/tax.rb +24 -16
  147. data/lib/merge_hris_client/models/team.rb +24 -16
  148. data/lib/merge_hris_client/models/time_off.rb +23 -15
  149. data/lib/merge_hris_client/models/time_off_balance.rb +24 -16
  150. data/lib/merge_hris_client/models/timesheet_entry.rb +326 -0
  151. data/lib/merge_hris_client/models/timesheet_entry_endpoint_request.rb +223 -0
  152. data/lib/merge_hris_client/models/timesheet_entry_request.rb +278 -0
  153. data/lib/merge_hris_client/models/timesheet_entry_response.rb +266 -0
  154. data/lib/merge_hris_client/version.rb +1 -1
  155. data/lib/merge_hris_client.rb +35 -21
  156. data/spec/api/audit_trail_api_spec.rb +51 -0
  157. data/spec/api/bank_info_api_spec.rb +2 -2
  158. data/spec/api/employees_api_spec.rb +5 -2
  159. data/spec/api/employments_api_spec.rb +2 -2
  160. data/spec/api/field_mapping_api_spec.rb +107 -0
  161. data/spec/api/force_resync_api_spec.rb +1 -1
  162. data/spec/api/groups_api_spec.rb +4 -2
  163. data/spec/api/issues_api_spec.rb +3 -2
  164. data/spec/api/linked_accounts_api_spec.rb +1 -1
  165. data/spec/api/locations_api_spec.rb +3 -2
  166. data/spec/api/payroll_runs_api_spec.rb +2 -2
  167. data/spec/api/scopes_api_spec.rb +68 -0
  168. data/spec/api/sync_status_api_spec.rb +1 -1
  169. data/spec/api/time_off_api_spec.rb +6 -2
  170. data/spec/api/time_off_balances_api_spec.rb +2 -2
  171. data/spec/api/timesheet_entries_api_spec.rb +99 -0
  172. data/spec/models/account_details_and_actions_spec.rb +12 -0
  173. data/spec/models/account_details_spec.rb +6 -0
  174. data/spec/models/account_integration_spec.rb +14 -2
  175. data/spec/models/advanced_metadata_spec.rb +64 -0
  176. data/spec/models/audit_log_event_spec.rb +76 -0
  177. data/spec/models/bank_info_spec.rb +12 -6
  178. data/spec/models/benefit_spec.rb +12 -6
  179. data/spec/models/common_model_scope_api_spec.rb +34 -0
  180. data/spec/models/company_spec.rb +11 -5
  181. data/spec/models/create_field_mapping_request_spec.rb +64 -0
  182. data/spec/models/deduction_spec.rb +12 -6
  183. data/spec/models/dependent_spec.rb +12 -6
  184. data/spec/models/earning_spec.rb +11 -5
  185. data/spec/models/employee_payroll_run_spec.rb +12 -6
  186. data/spec/models/employee_request_spec.rb +6 -0
  187. data/spec/models/employee_spec.rb +18 -6
  188. data/spec/models/employer_benefit_spec.rb +12 -6
  189. data/spec/models/employment_spec.rb +12 -6
  190. data/spec/models/end_user_details_request_spec.rb +18 -0
  191. data/spec/models/event_type_enum_spec.rb +28 -0
  192. data/spec/models/external_target_field_api_response_spec.rb +124 -0
  193. data/spec/models/external_target_field_api_spec.rb +46 -0
  194. data/spec/models/field_mapping_api_instance_remote_field_remote_endpoint_info_spec.rb +46 -0
  195. data/spec/models/field_mapping_api_instance_remote_field_spec.rb +46 -0
  196. data/spec/models/field_mapping_api_instance_response_spec.rb +124 -0
  197. data/spec/models/field_mapping_api_instance_spec.rb +52 -0
  198. data/spec/models/field_mapping_api_instance_target_field_spec.rb +46 -0
  199. data/spec/models/field_mapping_instance_response_spec.rb +52 -0
  200. data/spec/models/field_permission_deserializer_request_spec.rb +40 -0
  201. data/spec/models/field_permission_deserializer_spec.rb +40 -0
  202. data/spec/models/group_spec.rb +13 -1
  203. data/spec/models/individual_common_model_scope_deserializer_request_spec.rb +46 -0
  204. data/spec/models/individual_common_model_scope_deserializer_spec.rb +46 -0
  205. data/spec/models/linked_account_common_model_scope_deserializer_request_spec.rb +34 -0
  206. data/spec/models/location_spec.rb +12 -6
  207. data/spec/models/model_permission_deserializer_request_spec.rb +34 -0
  208. data/spec/models/model_permission_deserializer_spec.rb +34 -0
  209. data/spec/models/paginated_audit_log_event_list_spec.rb +46 -0
  210. data/spec/models/paginated_timesheet_entry_list_spec.rb +46 -0
  211. data/spec/models/patched_edit_field_mapping_request_spec.rb +46 -0
  212. data/spec/models/pay_group_spec.rb +9 -3
  213. data/spec/models/payroll_run_spec.rb +12 -6
  214. data/spec/models/remote_endpoint_info_spec.rb +46 -0
  215. data/spec/models/remote_field_api_response_spec.rb +124 -0
  216. data/spec/models/remote_field_api_spec.rb +64 -0
  217. data/spec/models/role_enum_spec.rb +28 -0
  218. data/spec/models/tax_spec.rb +12 -6
  219. data/spec/models/team_spec.rb +10 -4
  220. data/spec/models/time_off_balance_spec.rb +12 -6
  221. data/spec/models/time_off_spec.rb +12 -6
  222. data/spec/models/timesheet_entry_endpoint_request_spec.rb +34 -0
  223. data/spec/models/timesheet_entry_request_spec.rb +64 -0
  224. data/spec/models/timesheet_entry_response_spec.rb +52 -0
  225. data/spec/models/timesheet_entry_spec.rb +94 -0
  226. metadata +266 -126
@@ -0,0 +1,231 @@
1
+ =begin
2
+ #Merge HRIS API
3
+
4
+ #The unified API for building rich integrations with multiple HR Information System platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeHRISClient
17
+ class FieldPermissionDeserializerRequest
18
+ attr_accessor :enabled
19
+
20
+ attr_accessor :disabled
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'enabled' => :'enabled',
26
+ :'disabled' => :'disabled'
27
+ }
28
+ end
29
+
30
+ # Returns all the JSON keys this model knows about
31
+ def self.acceptable_attributes
32
+ attribute_map.values
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.openapi_types
37
+ {
38
+ :'enabled' => :'Array<Object>',
39
+ :'disabled' => :'Array<Object>'
40
+ }
41
+ end
42
+
43
+ # List of attributes with nullable: true
44
+ def self.openapi_nullable
45
+ Set.new([
46
+ ])
47
+ end
48
+
49
+ # Initializes the object
50
+ # @param [Hash] attributes Model attributes in the form of hash
51
+ def initialize(attributes = {})
52
+ if (!attributes.is_a?(Hash))
53
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MergeHRISClient::FieldPermissionDeserializerRequest` initialize method"
54
+ end
55
+
56
+ # check to see if the attribute exists and convert string to symbol for hash key
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MergeHRISClient::FieldPermissionDeserializerRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
+ end
61
+ h[k.to_sym] = v
62
+ }
63
+
64
+ if attributes.key?(:'enabled')
65
+ if (value = attributes[:'enabled']).is_a?(Array)
66
+ self.enabled = value
67
+ end
68
+ end
69
+
70
+ if attributes.key?(:'disabled')
71
+ if (value = attributes[:'disabled']).is_a?(Array)
72
+ self.disabled = value
73
+ end
74
+ end
75
+ end
76
+
77
+ # Show invalid properties with the reasons. Usually used together with valid?
78
+ # @return Array for valid properties with the reasons
79
+ def list_invalid_properties
80
+ invalid_properties = Array.new
81
+ invalid_properties
82
+ end
83
+
84
+ # Check to see if the all the properties in the model are valid
85
+ # @return true if the model is valid
86
+ def valid?
87
+ true
88
+ end
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] Object to be compared
92
+ def ==(o)
93
+ return true if self.equal?(o)
94
+ self.class == o.class &&
95
+ enabled == o.enabled &&
96
+ disabled == o.disabled
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [enabled, disabled].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
125
+ self.send("#{key}=", nil)
126
+ elsif type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
131
+ end
132
+ elsif !attributes[self.class.attribute_map[key]].nil?
133
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
134
+ end
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :Time
147
+ Time.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ # models (e.g. Pet) or oneOf
178
+ klass = MergeHRISClient.const_get(type)
179
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
180
+ end
181
+ end
182
+
183
+ # Returns the string representation of the object
184
+ # @return [String] String presentation of the object
185
+ def to_s
186
+ to_hash.to_s
187
+ end
188
+
189
+ # to_body is an alias to to_hash (backward compatibility)
190
+ # @return [Hash] Returns the object in the form of hash
191
+ def to_body
192
+ to_hash
193
+ end
194
+
195
+ # Returns the object in the form of hash
196
+ # @return [Hash] Returns the object in the form of hash
197
+ def to_hash
198
+ hash = {}
199
+ self.class.attribute_map.each_pair do |attr, param|
200
+ value = self.send(attr)
201
+ if value.nil?
202
+ is_nullable = self.class.openapi_nullable.include?(attr)
203
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
204
+ end
205
+
206
+ hash[param] = _to_hash(value)
207
+ end
208
+ hash
209
+ end
210
+
211
+ # Outputs non-array value in the form of hash
212
+ # For object, use to_hash. Otherwise, just return the value
213
+ # @param [Object] value Any valid value
214
+ # @return [Hash] Returns the value in the form of hash
215
+ def _to_hash(value)
216
+ if value.is_a?(Array)
217
+ value.compact.map { |v| _to_hash(v) }
218
+ elsif value.is_a?(Hash)
219
+ {}.tap do |hash|
220
+ value.each { |k, v| hash[k] = _to_hash(v) }
221
+ end
222
+ elsif value.respond_to? :to_hash
223
+ value.to_hash
224
+ else
225
+ value
226
+ end
227
+ end
228
+
229
+ end
230
+
231
+ end
@@ -16,6 +16,7 @@ require 'time'
16
16
  module MergeHRISClient
17
17
  # # The GenerateRemoteKey Object ### Description The `GenerateRemoteKey` object is used to represent a request for a new remote key. ### Usage Example Post a `GenerateRemoteKey` to create a new remote key.
18
18
  class GenerateRemoteKeyRequest
19
+ # The name of the remote key
19
20
  attr_accessor :name
20
21
 
21
22
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -14,27 +14,33 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module MergeHRISClient
17
- # # The Group Object ### Description The `Group` object is used to represent any subset of employees, such as `PayGroup` or `Team`. Employees can be in multiple Groups. ### Usage Example Fetch from the `LIST Employee` endpoint and expand groups to view an employee's groups.
17
+ # # The Group Object ### Description The `Group` object is used to represent any subset of employees across, for example, `DEPARTMENT` or `TEAM`. Employees can be in multiple Groups. ### Usage Example Fetch from the `LIST Employee` endpoint and expand groups to view an employee's groups.
18
18
  class Group
19
19
  attr_accessor :id
20
20
 
21
21
  # The third-party API ID of the matching object.
22
22
  attr_accessor :remote_id
23
23
 
24
+ # The datetime that this object was created by Merge.
25
+ attr_accessor :created_at
26
+
27
+ # The datetime that this object was modified by Merge.
28
+ attr_accessor :modified_at
29
+
24
30
  # The parent group for this group.
25
31
  attr_accessor :parent_group
26
32
 
27
33
  # The group name.
28
34
  attr_accessor :name
29
35
 
30
- # The group type * `TEAM` - TEAM * `DEPARTMENT` - DEPARTMENT * `COST_CENTER` - COST_CENTER * `BUSINESS_UNIT` - BUSINESS_UNIT * `GROUP` - GROUP
36
+ # The Group type returned directly from the third-party. * `TEAM` - TEAM * `DEPARTMENT` - DEPARTMENT * `COST_CENTER` - COST_CENTER * `BUSINESS_UNIT` - BUSINESS_UNIT * `GROUP` - GROUP
31
37
  attr_accessor :type
32
38
 
33
- # Indicates whether or not this object has been deleted by third party webhooks.
39
+ # Indicates whether or not this object has been deleted in the third party platform.
34
40
  attr_accessor :remote_was_deleted
35
41
 
36
- # This is the datetime that this object was last updated by Merge
37
- attr_accessor :modified_at
42
+ # Indicates whether the Group refers to a team in the third party platform. Note that this is an opinionated view based on how Merge observes most organizations representing teams in each third party platform. If your customer uses a platform different from most, there is a chance this will not be correct.
43
+ attr_accessor :is_commonly_used_as_team
38
44
 
39
45
  attr_accessor :field_mappings
40
46
 
@@ -45,11 +51,13 @@ module MergeHRISClient
45
51
  {
46
52
  :'id' => :'id',
47
53
  :'remote_id' => :'remote_id',
54
+ :'created_at' => :'created_at',
55
+ :'modified_at' => :'modified_at',
48
56
  :'parent_group' => :'parent_group',
49
57
  :'name' => :'name',
50
58
  :'type' => :'type',
51
59
  :'remote_was_deleted' => :'remote_was_deleted',
52
- :'modified_at' => :'modified_at',
60
+ :'is_commonly_used_as_team' => :'is_commonly_used_as_team',
53
61
  :'field_mappings' => :'field_mappings',
54
62
  :'remote_data' => :'remote_data'
55
63
  }
@@ -65,12 +73,14 @@ module MergeHRISClient
65
73
  {
66
74
  :'id' => :'String',
67
75
  :'remote_id' => :'String',
76
+ :'created_at' => :'Time',
77
+ :'modified_at' => :'Time',
68
78
  :'parent_group' => :'String',
69
79
  :'name' => :'String',
70
80
  :'type' => :'GroupTypeEnum',
71
81
  :'remote_was_deleted' => :'Boolean',
72
- :'modified_at' => :'Time',
73
- :'field_mappings' => :'Hash<String, Object>',
82
+ :'is_commonly_used_as_team' => :'Boolean',
83
+ :'field_mappings' => :'Object',
74
84
  :'remote_data' => :'Array<RemoteData>'
75
85
  }
76
86
  end
@@ -82,6 +92,7 @@ module MergeHRISClient
82
92
  :'parent_group',
83
93
  :'name',
84
94
  :'type',
95
+ :'is_commonly_used_as_team',
85
96
  :'field_mappings',
86
97
  :'remote_data'
87
98
  ])
@@ -110,6 +121,14 @@ module MergeHRISClient
110
121
  self.remote_id = attributes[:'remote_id']
111
122
  end
112
123
 
124
+ if attributes.key?(:'created_at')
125
+ self.created_at = attributes[:'created_at']
126
+ end
127
+
128
+ if attributes.key?(:'modified_at')
129
+ self.modified_at = attributes[:'modified_at']
130
+ end
131
+
113
132
  if attributes.key?(:'parent_group')
114
133
  self.parent_group = attributes[:'parent_group']
115
134
  end
@@ -126,14 +145,12 @@ module MergeHRISClient
126
145
  self.remote_was_deleted = attributes[:'remote_was_deleted']
127
146
  end
128
147
 
129
- if attributes.key?(:'modified_at')
130
- self.modified_at = attributes[:'modified_at']
148
+ if attributes.key?(:'is_commonly_used_as_team')
149
+ self.is_commonly_used_as_team = attributes[:'is_commonly_used_as_team']
131
150
  end
132
151
 
133
152
  if attributes.key?(:'field_mappings')
134
- if (value = attributes[:'field_mappings']).is_a?(Hash)
135
- self.field_mappings = value
136
- end
153
+ self.field_mappings = attributes[:'field_mappings']
137
154
  end
138
155
 
139
156
  if attributes.key?(:'remote_data')
@@ -163,11 +180,13 @@ module MergeHRISClient
163
180
  self.class == o.class &&
164
181
  id == o.id &&
165
182
  remote_id == o.remote_id &&
183
+ created_at == o.created_at &&
184
+ modified_at == o.modified_at &&
166
185
  parent_group == o.parent_group &&
167
186
  name == o.name &&
168
187
  type == o.type &&
169
188
  remote_was_deleted == o.remote_was_deleted &&
170
- modified_at == o.modified_at &&
189
+ is_commonly_used_as_team == o.is_commonly_used_as_team &&
171
190
  field_mappings == o.field_mappings &&
172
191
  remote_data == o.remote_data
173
192
  end
@@ -181,7 +200,7 @@ module MergeHRISClient
181
200
  # Calculates hash code according to all attributes.
182
201
  # @return [Integer] Hash code
183
202
  def hash
184
- [id, remote_id, parent_group, name, type, remote_was_deleted, modified_at, field_mappings, remote_data].hash
203
+ [id, remote_id, created_at, modified_at, parent_group, name, type, remote_was_deleted, is_commonly_used_as_team, field_mappings, remote_data].hash
185
204
  end
186
205
 
187
206
  # Builds the object from hash
@@ -0,0 +1,243 @@
1
+ =begin
2
+ #Merge HRIS API
3
+
4
+ #The unified API for building rich integrations with multiple HR Information System platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeHRISClient
17
+ class IndividualCommonModelScopeDeserializer
18
+ attr_accessor :model_name
19
+
20
+ attr_accessor :model_permissions
21
+
22
+ attr_accessor :field_permissions
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'model_name' => :'model_name',
28
+ :'model_permissions' => :'model_permissions',
29
+ :'field_permissions' => :'field_permissions'
30
+ }
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'model_name' => :'String',
42
+ :'model_permissions' => :'Hash<String, ModelPermissionDeserializer>',
43
+ :'field_permissions' => :'FieldPermissionDeserializer'
44
+ }
45
+ end
46
+
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ ])
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param [Hash] attributes Model attributes in the form of hash
55
+ def initialize(attributes = {})
56
+ if (!attributes.is_a?(Hash))
57
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MergeHRISClient::IndividualCommonModelScopeDeserializer` initialize method"
58
+ end
59
+
60
+ # check to see if the attribute exists and convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!self.class.attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MergeHRISClient::IndividualCommonModelScopeDeserializer`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:'model_name')
69
+ self.model_name = attributes[:'model_name']
70
+ end
71
+
72
+ if attributes.key?(:'model_permissions')
73
+ if (value = attributes[:'model_permissions']).is_a?(Hash)
74
+ self.model_permissions = value
75
+ end
76
+ end
77
+
78
+ if attributes.key?(:'field_permissions')
79
+ self.field_permissions = attributes[:'field_permissions']
80
+ end
81
+ end
82
+
83
+ # Show invalid properties with the reasons. Usually used together with valid?
84
+ # @return Array for valid properties with the reasons
85
+ def list_invalid_properties
86
+ invalid_properties = Array.new
87
+ if @model_name.nil?
88
+ invalid_properties.push('invalid value for "model_name", model_name cannot be nil.')
89
+ end
90
+
91
+ invalid_properties
92
+ end
93
+
94
+ # Check to see if the all the properties in the model are valid
95
+ # @return true if the model is valid
96
+ def valid?
97
+ return false if @model_name.nil?
98
+ true
99
+ end
100
+
101
+ # Checks equality by comparing each attribute.
102
+ # @param [Object] Object to be compared
103
+ def ==(o)
104
+ return true if self.equal?(o)
105
+ self.class == o.class &&
106
+ model_name == o.model_name &&
107
+ model_permissions == o.model_permissions &&
108
+ field_permissions == o.field_permissions
109
+ end
110
+
111
+ # @see the `==` method
112
+ # @param [Object] Object to be compared
113
+ def eql?(o)
114
+ self == o
115
+ end
116
+
117
+ # Calculates hash code according to all attributes.
118
+ # @return [Integer] Hash code
119
+ def hash
120
+ [model_name, model_permissions, field_permissions].hash
121
+ end
122
+
123
+ # Builds the object from hash
124
+ # @param [Hash] attributes Model attributes in the form of hash
125
+ # @return [Object] Returns the model itself
126
+ def self.build_from_hash(attributes)
127
+ new.build_from_hash(attributes)
128
+ end
129
+
130
+ # Builds the object from hash
131
+ # @param [Hash] attributes Model attributes in the form of hash
132
+ # @return [Object] Returns the model itself
133
+ def build_from_hash(attributes)
134
+ return nil unless attributes.is_a?(Hash)
135
+ self.class.openapi_types.each_pair do |key, type|
136
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
137
+ self.send("#{key}=", nil)
138
+ elsif type =~ /\AArray<(.*)>/i
139
+ # check to ensure the input is an array given that the attribute
140
+ # is documented as an array but the input is not
141
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
142
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
143
+ end
144
+ elsif !attributes[self.class.attribute_map[key]].nil?
145
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
146
+ end
147
+ end
148
+
149
+ self
150
+ end
151
+
152
+ # Deserializes the data based on type
153
+ # @param string type Data type
154
+ # @param string value Value to be deserialized
155
+ # @return [Object] Deserialized data
156
+ def _deserialize(type, value)
157
+ case type.to_sym
158
+ when :Time
159
+ Time.parse(value)
160
+ when :Date
161
+ Date.parse(value)
162
+ when :String
163
+ value
164
+ when :Integer
165
+ value.to_i
166
+ when :Float
167
+ value.to_f
168
+ when :Boolean
169
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
170
+ true
171
+ else
172
+ false
173
+ end
174
+ when :Object
175
+ # generic object (usually a Hash), return directly
176
+ value
177
+ when /\AArray<(?<inner_type>.+)>\z/
178
+ inner_type = Regexp.last_match[:inner_type]
179
+ value.map { |v| _deserialize(inner_type, v) }
180
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
181
+ k_type = Regexp.last_match[:k_type]
182
+ v_type = Regexp.last_match[:v_type]
183
+ {}.tap do |hash|
184
+ value.each do |k, v|
185
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
186
+ end
187
+ end
188
+ else # model
189
+ # models (e.g. Pet) or oneOf
190
+ klass = MergeHRISClient.const_get(type)
191
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
192
+ end
193
+ end
194
+
195
+ # Returns the string representation of the object
196
+ # @return [String] String presentation of the object
197
+ def to_s
198
+ to_hash.to_s
199
+ end
200
+
201
+ # to_body is an alias to to_hash (backward compatibility)
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_body
204
+ to_hash
205
+ end
206
+
207
+ # Returns the object in the form of hash
208
+ # @return [Hash] Returns the object in the form of hash
209
+ def to_hash
210
+ hash = {}
211
+ self.class.attribute_map.each_pair do |attr, param|
212
+ value = self.send(attr)
213
+ if value.nil?
214
+ is_nullable = self.class.openapi_nullable.include?(attr)
215
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
216
+ end
217
+
218
+ hash[param] = _to_hash(value)
219
+ end
220
+ hash
221
+ end
222
+
223
+ # Outputs non-array value in the form of hash
224
+ # For object, use to_hash. Otherwise, just return the value
225
+ # @param [Object] value Any valid value
226
+ # @return [Hash] Returns the value in the form of hash
227
+ def _to_hash(value)
228
+ if value.is_a?(Array)
229
+ value.compact.map { |v| _to_hash(v) }
230
+ elsif value.is_a?(Hash)
231
+ {}.tap do |hash|
232
+ value.each { |k, v| hash[k] = _to_hash(v) }
233
+ end
234
+ elsif value.respond_to? :to_hash
235
+ value.to_hash
236
+ else
237
+ value
238
+ end
239
+ end
240
+
241
+ end
242
+
243
+ end