doorflow 1.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.
Files changed (211) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +27 -0
  3. data/LICENSE +21 -0
  4. data/README.md +356 -0
  5. data/bin/post-generate +47 -0
  6. data/doorflow.gemspec +55 -0
  7. data/lib/doorflow/auth/doorflow_auth.rb +308 -0
  8. data/lib/doorflow/auth/file_token_storage.rb +104 -0
  9. data/lib/doorflow/auth/token_storage.rb +106 -0
  10. data/lib/doorflow/auth.rb +32 -0
  11. data/lib/doorflow/client/account_proxy.rb +19 -0
  12. data/lib/doorflow/client/channels_proxy.rb +64 -0
  13. data/lib/doorflow/client/credential_types_proxy.rb +28 -0
  14. data/lib/doorflow/client/credentials_proxy.rb +73 -0
  15. data/lib/doorflow/client/events_proxy.rb +33 -0
  16. data/lib/doorflow/client/group_reservations_proxy.rb +46 -0
  17. data/lib/doorflow/client/groups_proxy.rb +51 -0
  18. data/lib/doorflow/client/notification_rules_proxy.rb +46 -0
  19. data/lib/doorflow/client/people_proxy.rb +69 -0
  20. data/lib/doorflow/client/reservations_proxy.rb +46 -0
  21. data/lib/doorflow/client/resource_proxy.rb +113 -0
  22. data/lib/doorflow/client/roles_proxy.rb +28 -0
  23. data/lib/doorflow/client/sites_proxy.rb +28 -0
  24. data/lib/doorflow/client.rb +263 -0
  25. data/lib/doorflow/errors/api_error.rb +28 -0
  26. data/lib/doorflow/errors/authentication_error.rb +23 -0
  27. data/lib/doorflow/errors/doorflow_error.rb +75 -0
  28. data/lib/doorflow/errors/forbidden_error.rb +22 -0
  29. data/lib/doorflow/errors/not_found_error.rb +22 -0
  30. data/lib/doorflow/errors/rate_limit_error.rb +65 -0
  31. data/lib/doorflow/errors/validation_error.rb +83 -0
  32. data/lib/doorflow/errors.rb +152 -0
  33. data/lib/doorflow/list_object.rb +125 -0
  34. data/lib/doorflow/resource.rb +153 -0
  35. data/lib/doorflow/resources/account.rb +66 -0
  36. data/lib/doorflow/resources/channel.rb +104 -0
  37. data/lib/doorflow/resources/credential.rb +73 -0
  38. data/lib/doorflow/resources/credential_type.rb +30 -0
  39. data/lib/doorflow/resources/event.rb +47 -0
  40. data/lib/doorflow/resources/group.rb +71 -0
  41. data/lib/doorflow/resources/group_reservation.rb +55 -0
  42. data/lib/doorflow/resources/notification_rule.rb +71 -0
  43. data/lib/doorflow/resources/person.rb +102 -0
  44. data/lib/doorflow/resources/reservation.rb +72 -0
  45. data/lib/doorflow/resources/role.rb +66 -0
  46. data/lib/doorflow/resources/site.rb +66 -0
  47. data/lib/doorflow/webhooks/event.rb +92 -0
  48. data/lib/doorflow/webhooks/handler.rb +206 -0
  49. data/lib/doorflow/webhooks/signature_verifier.rb +120 -0
  50. data/lib/doorflow/webhooks.rb +47 -0
  51. data/lib/doorflow-api/api/accounts_api.rb +79 -0
  52. data/lib/doorflow-api/api/admission_requests_api.rb +85 -0
  53. data/lib/doorflow-api/api/channels_api.rb +757 -0
  54. data/lib/doorflow-api/api/credential_types_api.rb +88 -0
  55. data/lib/doorflow-api/api/credentials_api.rb +458 -0
  56. data/lib/doorflow-api/api/events_api.rb +190 -0
  57. data/lib/doorflow-api/api/group_reservations_api.rb +225 -0
  58. data/lib/doorflow-api/api/groups_api.rb +79 -0
  59. data/lib/doorflow-api/api/notification_rules_api.rb +347 -0
  60. data/lib/doorflow-api/api/oauth_api.rb +360 -0
  61. data/lib/doorflow-api/api/people_api.rb +372 -0
  62. data/lib/doorflow-api/api/reservations_api.rb +225 -0
  63. data/lib/doorflow-api/api/roles_api.rb +79 -0
  64. data/lib/doorflow-api/api/sites_api.rb +88 -0
  65. data/lib/doorflow-api/api/sync_api.rb +79 -0
  66. data/lib/doorflow-api/api_client.rb +437 -0
  67. data/lib/doorflow-api/api_error.rb +63 -0
  68. data/lib/doorflow-api/api_model_base.rb +88 -0
  69. data/lib/doorflow-api/configuration.rb +399 -0
  70. data/lib/doorflow-api/models/account.rb +334 -0
  71. data/lib/doorflow-api/models/account_passport.rb +193 -0
  72. data/lib/doorflow-api/models/account_reseller.rb +192 -0
  73. data/lib/doorflow-api/models/account_sync.rb +214 -0
  74. data/lib/doorflow-api/models/account_user.rb +247 -0
  75. data/lib/doorflow-api/models/admission_request.rb +328 -0
  76. data/lib/doorflow-api/models/admission_request_door_controller.rb +159 -0
  77. data/lib/doorflow-api/models/admission_request_person.rb +159 -0
  78. data/lib/doorflow-api/models/admit_channel202_response.rb +192 -0
  79. data/lib/doorflow-api/models/admit_person202_response.rb +192 -0
  80. data/lib/doorflow-api/models/admit_person403_response.rb +157 -0
  81. data/lib/doorflow-api/models/admit_person_request.rb +165 -0
  82. data/lib/doorflow-api/models/auto_unlock_channel400_response.rb +156 -0
  83. data/lib/doorflow-api/models/auto_unlock_channel_request.rb +149 -0
  84. data/lib/doorflow-api/models/channel.rb +498 -0
  85. data/lib/doorflow-api/models/channel_auto_unlock.rb +159 -0
  86. data/lib/doorflow-api/models/channel_lockdown.rb +176 -0
  87. data/lib/doorflow-api/models/channel_lockdown_aux_lockdown.rb +148 -0
  88. data/lib/doorflow-api/models/channel_lockdown_card_lockdown.rb +148 -0
  89. data/lib/doorflow-api/models/channel_lockdown_rex_lockdown.rb +148 -0
  90. data/lib/doorflow-api/models/channel_mode.rb +212 -0
  91. data/lib/doorflow-api/models/channel_sync.rb +200 -0
  92. data/lib/doorflow-api/models/create_credential422_response.rb +157 -0
  93. data/lib/doorflow-api/models/create_credential422_response_errors.rb +173 -0
  94. data/lib/doorflow-api/models/credential.rb +336 -0
  95. data/lib/doorflow-api/models/credential_input.rb +164 -0
  96. data/lib/doorflow-api/models/credential_input_person_credential.rb +187 -0
  97. data/lib/doorflow-api/models/credential_type.rb +232 -0
  98. data/lib/doorflow-api/models/credential_update_input.rb +164 -0
  99. data/lib/doorflow-api/models/credential_update_input_person_credential.rb +165 -0
  100. data/lib/doorflow-api/models/delete_group_reservation200_response.rb +147 -0
  101. data/lib/doorflow-api/models/error.rb +192 -0
  102. data/lib/doorflow-api/models/event.rb +361 -0
  103. data/lib/doorflow-api/models/get_access_token200_response.rb +266 -0
  104. data/lib/doorflow-api/models/get_access_token400_response.rb +190 -0
  105. data/lib/doorflow-api/models/get_access_token401_response.rb +156 -0
  106. data/lib/doorflow-api/models/get_admission_request401_response.rb +156 -0
  107. data/lib/doorflow-api/models/get_admission_request403_response.rb +156 -0
  108. data/lib/doorflow-api/models/get_admission_request404_response.rb +156 -0
  109. data/lib/doorflow-api/models/get_admission_request500_response.rb +156 -0
  110. data/lib/doorflow-api/models/get_token_info200_response.rb +267 -0
  111. data/lib/doorflow-api/models/get_token_info200_response_application.rb +148 -0
  112. data/lib/doorflow-api/models/get_token_info401_response.rb +156 -0
  113. data/lib/doorflow-api/models/group.rb +284 -0
  114. data/lib/doorflow-api/models/group_reservation.rb +380 -0
  115. data/lib/doorflow-api/models/group_reservation_input.rb +164 -0
  116. data/lib/doorflow-api/models/group_reservation_input_group_reservation.rb +257 -0
  117. data/lib/doorflow-api/models/initiate_sync429_response.rb +243 -0
  118. data/lib/doorflow-api/models/list_events400_response.rb +156 -0
  119. data/lib/doorflow-api/models/lockdown_channel_request.rb +168 -0
  120. data/lib/doorflow-api/models/notification_rule.rb +324 -0
  121. data/lib/doorflow-api/models/notification_rule_actions_inner.rb +168 -0
  122. data/lib/doorflow-api/models/notification_rule_conditions_inner.rb +168 -0
  123. data/lib/doorflow-api/models/notification_rule_events_inner.rb +158 -0
  124. data/lib/doorflow-api/models/notification_rule_input.rb +254 -0
  125. data/lib/doorflow-api/models/person.rb +511 -0
  126. data/lib/doorflow-api/models/person_input.rb +413 -0
  127. data/lib/doorflow-api/models/reservation.rb +329 -0
  128. data/lib/doorflow-api/models/reservation_input.rb +281 -0
  129. data/lib/doorflow-api/models/revoke_token403_response.rb +156 -0
  130. data/lib/doorflow-api/models/role.rb +268 -0
  131. data/lib/doorflow-api/models/site.rb +254 -0
  132. data/lib/doorflow-api/models/site_site_ips_inner.rb +148 -0
  133. data/lib/doorflow-api/models/unlock_channel_request.rb +148 -0
  134. data/lib/doorflow-api/version.rb +15 -0
  135. data/lib/doorflow-api.rb +123 -0
  136. data/lib/doorflow.rb +171 -0
  137. data/spec/api/admission_requests_api_spec.rb +47 -0
  138. data/spec/api/channels_api_spec.rb +174 -0
  139. data/spec/api/credential_types_api_spec.rb +49 -0
  140. data/spec/api/group_reservations_api_spec.rb +75 -0
  141. data/spec/api/oauth_api_spec.rb +97 -0
  142. data/spec/doorflow/client_spec.rb +109 -0
  143. data/spec/doorflow_spec.rb +22 -0
  144. data/spec/fixtures/vcr_cassettes/channel/list.yml +70 -0
  145. data/spec/fixtures/vcr_cassettes/channel/retrieve.yml +131 -0
  146. data/spec/fixtures/vcr_cassettes/person/auto_pagination.yml +87 -0
  147. data/spec/fixtures/vcr_cassettes/person/create.yml +64 -0
  148. data/spec/fixtures/vcr_cassettes/person/delete.yml +125 -0
  149. data/spec/fixtures/vcr_cassettes/person/list.yml +90 -0
  150. data/spec/fixtures/vcr_cassettes/person/not_found.yml +62 -0
  151. data/spec/fixtures/vcr_cassettes/person/retrieve.yml +136 -0
  152. data/spec/fixtures/vcr_cassettes/person/update.yml +260 -0
  153. data/spec/fixtures/vcr_cassettes/person/validation_error.yml +62 -0
  154. data/spec/integration/channel_spec.rb +88 -0
  155. data/spec/integration/person_spec.rb +99 -0
  156. data/spec/models/account_passport_spec.rb +42 -0
  157. data/spec/models/account_reseller_spec.rb +60 -0
  158. data/spec/models/account_sync_spec.rb +52 -0
  159. data/spec/models/account_user_spec.rb +54 -0
  160. data/spec/models/admission_request_door_controller_spec.rb +42 -0
  161. data/spec/models/admission_request_person_spec.rb +42 -0
  162. data/spec/models/admission_request_spec.rb +82 -0
  163. data/spec/models/admit_channel202_response_spec.rb +46 -0
  164. data/spec/models/admit_person202_response_spec.rb +46 -0
  165. data/spec/models/admit_person403_response_spec.rb +42 -0
  166. data/spec/models/admit_person_request_spec.rb +36 -0
  167. data/spec/models/auto_unlock_channel400_response_spec.rb +42 -0
  168. data/spec/models/auto_unlock_channel_request_spec.rb +36 -0
  169. data/spec/models/channel_auto_unlock_spec.rb +42 -0
  170. data/spec/models/channel_lockdown_aux_lockdown_spec.rb +36 -0
  171. data/spec/models/channel_lockdown_card_lockdown_spec.rb +36 -0
  172. data/spec/models/channel_lockdown_rex_lockdown_spec.rb +36 -0
  173. data/spec/models/channel_lockdown_spec.rb +54 -0
  174. data/spec/models/channel_mode_spec.rb +52 -0
  175. data/spec/models/channel_sync_spec.rb +46 -0
  176. data/spec/models/create_credential422_response_errors_spec.rb +48 -0
  177. data/spec/models/create_credential422_response_spec.rb +42 -0
  178. data/spec/models/credential_input_person_credential_spec.rb +48 -0
  179. data/spec/models/credential_input_spec.rb +36 -0
  180. data/spec/models/credential_spec.rb +86 -0
  181. data/spec/models/credential_update_input_person_credential_spec.rb +36 -0
  182. data/spec/models/credential_update_input_spec.rb +36 -0
  183. data/spec/models/delete_group_reservation200_response_spec.rb +36 -0
  184. data/spec/models/error_spec.rb +42 -0
  185. data/spec/models/get_access_token200_response_spec.rb +66 -0
  186. data/spec/models/get_access_token400_response_spec.rb +46 -0
  187. data/spec/models/get_access_token401_response_spec.rb +42 -0
  188. data/spec/models/get_admission_request401_response_spec.rb +42 -0
  189. data/spec/models/get_admission_request403_response_spec.rb +42 -0
  190. data/spec/models/get_admission_request404_response_spec.rb +42 -0
  191. data/spec/models/get_admission_request500_response_spec.rb +42 -0
  192. data/spec/models/get_token_info200_response_application_spec.rb +36 -0
  193. data/spec/models/get_token_info200_response_spec.rb +66 -0
  194. data/spec/models/get_token_info401_response_spec.rb +42 -0
  195. data/spec/models/group_reservation_input_group_reservation_spec.rb +54 -0
  196. data/spec/models/group_reservation_input_spec.rb +36 -0
  197. data/spec/models/group_reservation_spec.rb +82 -0
  198. data/spec/models/initiate_sync429_response_spec.rb +52 -0
  199. data/spec/models/list_events400_response_spec.rb +42 -0
  200. data/spec/models/lockdown_channel_request_spec.rb +48 -0
  201. data/spec/models/notification_rule_actions_inner_spec.rb +48 -0
  202. data/spec/models/notification_rule_conditions_inner_spec.rb +48 -0
  203. data/spec/models/notification_rule_events_inner_spec.rb +42 -0
  204. data/spec/models/notification_rule_input_spec.rb +60 -0
  205. data/spec/models/person_input_spec.rb +180 -0
  206. data/spec/models/reservation_input_spec.rb +60 -0
  207. data/spec/models/revoke_token403_response_spec.rb +42 -0
  208. data/spec/models/site_site_ips_inner_spec.rb +36 -0
  209. data/spec/models/unlock_channel_request_spec.rb +36 -0
  210. data/spec/spec_helper.rb +160 -0
  211. metadata +495 -0
@@ -0,0 +1,413 @@
1
+ =begin
2
+ #DoorFlow API
3
+
4
+ #Access control and door management API for DoorFlow
5
+
6
+ The version of the OpenAPI document: 3.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.18.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DoorFlow
17
+ class PersonInput < ApiModelBase
18
+ # First name (required for creation)
19
+ attr_accessor :first_name
20
+
21
+ # Last name (required for creation)
22
+ attr_accessor :last_name
23
+
24
+ # Salutation or title
25
+ attr_accessor :salutation
26
+
27
+ # Job title
28
+ attr_accessor :job_title
29
+
30
+ # Email address (must be unique within account if provided)
31
+ attr_accessor :email
32
+
33
+ # Department name
34
+ attr_accessor :department
35
+
36
+ # Whether the person is enabled for access
37
+ attr_accessor :enabled
38
+
39
+ # Access valid from this date/time
40
+ attr_accessor :valid_from
41
+
42
+ # Access valid until this date/time
43
+ attr_accessor :valid_to
44
+
45
+ # Base64-encoded image data for person's photo
46
+ attr_accessor :image_base64
47
+
48
+ # Remote URL to fetch person's photo from (set to empty string to delete image)
49
+ attr_accessor :image_remote_url
50
+
51
+ # Telephone number
52
+ attr_accessor :telephone
53
+
54
+ # Mobile number (E.164 format if passport enabled)
55
+ attr_accessor :mobile
56
+
57
+ # Additional notes
58
+ attr_accessor :notes
59
+
60
+ # Barcode identifier
61
+ attr_accessor :barcode
62
+
63
+ # External system identifier
64
+ attr_accessor :system_id
65
+
66
+ # Organisation ID
67
+ attr_accessor :organisation_id
68
+
69
+ # Custom field 1
70
+ attr_accessor :custom_1
71
+
72
+ # Custom field 2
73
+ attr_accessor :custom_2
74
+
75
+ # Custom field 3
76
+ attr_accessor :custom_3
77
+
78
+ # Custom field 4
79
+ attr_accessor :custom_4
80
+
81
+ # Custom field 5
82
+ attr_accessor :custom_5
83
+
84
+ # Array of group IDs to assign this person to
85
+ attr_accessor :group_ids
86
+
87
+ # Array of role IDs to assign to this person (requires permission)
88
+ attr_accessor :role_ids
89
+
90
+ # Mark person as deleted (used internally)
91
+ attr_accessor :deleted
92
+
93
+ # Attribute mapping from ruby-style variable name to JSON key.
94
+ def self.attribute_map
95
+ {
96
+ :'first_name' => :'first_name',
97
+ :'last_name' => :'last_name',
98
+ :'salutation' => :'salutation',
99
+ :'job_title' => :'job_title',
100
+ :'email' => :'email',
101
+ :'department' => :'department',
102
+ :'enabled' => :'enabled',
103
+ :'valid_from' => :'valid_from',
104
+ :'valid_to' => :'valid_to',
105
+ :'image_base64' => :'image_base64',
106
+ :'image_remote_url' => :'image_remote_url',
107
+ :'telephone' => :'telephone',
108
+ :'mobile' => :'mobile',
109
+ :'notes' => :'notes',
110
+ :'barcode' => :'barcode',
111
+ :'system_id' => :'system_id',
112
+ :'organisation_id' => :'organisation_id',
113
+ :'custom_1' => :'custom_1',
114
+ :'custom_2' => :'custom_2',
115
+ :'custom_3' => :'custom_3',
116
+ :'custom_4' => :'custom_4',
117
+ :'custom_5' => :'custom_5',
118
+ :'group_ids' => :'group_ids',
119
+ :'role_ids' => :'role_ids',
120
+ :'deleted' => :'deleted'
121
+ }
122
+ end
123
+
124
+ # Returns attribute mapping this model knows about
125
+ def self.acceptable_attribute_map
126
+ attribute_map
127
+ end
128
+
129
+ # Returns all the JSON keys this model knows about
130
+ def self.acceptable_attributes
131
+ acceptable_attribute_map.values
132
+ end
133
+
134
+ # Attribute type mapping.
135
+ def self.openapi_types
136
+ {
137
+ :'first_name' => :'String',
138
+ :'last_name' => :'String',
139
+ :'salutation' => :'String',
140
+ :'job_title' => :'String',
141
+ :'email' => :'String',
142
+ :'department' => :'String',
143
+ :'enabled' => :'Boolean',
144
+ :'valid_from' => :'Time',
145
+ :'valid_to' => :'Time',
146
+ :'image_base64' => :'String',
147
+ :'image_remote_url' => :'String',
148
+ :'telephone' => :'String',
149
+ :'mobile' => :'String',
150
+ :'notes' => :'String',
151
+ :'barcode' => :'String',
152
+ :'system_id' => :'String',
153
+ :'organisation_id' => :'Integer',
154
+ :'custom_1' => :'String',
155
+ :'custom_2' => :'String',
156
+ :'custom_3' => :'String',
157
+ :'custom_4' => :'String',
158
+ :'custom_5' => :'String',
159
+ :'group_ids' => :'Array<Integer>',
160
+ :'role_ids' => :'Array<Integer>',
161
+ :'deleted' => :'Boolean'
162
+ }
163
+ end
164
+
165
+ # List of attributes with nullable: true
166
+ def self.openapi_nullable
167
+ Set.new([
168
+ :'salutation',
169
+ :'job_title',
170
+ :'email',
171
+ :'department',
172
+ :'valid_from',
173
+ :'valid_to',
174
+ :'image_base64',
175
+ :'image_remote_url',
176
+ :'telephone',
177
+ :'mobile',
178
+ :'notes',
179
+ :'barcode',
180
+ :'system_id',
181
+ :'organisation_id',
182
+ :'custom_1',
183
+ :'custom_2',
184
+ :'custom_3',
185
+ :'custom_4',
186
+ :'custom_5',
187
+ ])
188
+ end
189
+
190
+ # Initializes the object
191
+ # @param [Hash] attributes Model attributes in the form of hash
192
+ def initialize(attributes = {})
193
+ if (!attributes.is_a?(Hash))
194
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DoorFlow::PersonInput` initialize method"
195
+ end
196
+
197
+ # check to see if the attribute exists and convert string to symbol for hash key
198
+ acceptable_attribute_map = self.class.acceptable_attribute_map
199
+ attributes = attributes.each_with_object({}) { |(k, v), h|
200
+ if (!acceptable_attribute_map.key?(k.to_sym))
201
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DoorFlow::PersonInput`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
202
+ end
203
+ h[k.to_sym] = v
204
+ }
205
+
206
+ if attributes.key?(:'first_name')
207
+ self.first_name = attributes[:'first_name']
208
+ end
209
+
210
+ if attributes.key?(:'last_name')
211
+ self.last_name = attributes[:'last_name']
212
+ end
213
+
214
+ if attributes.key?(:'salutation')
215
+ self.salutation = attributes[:'salutation']
216
+ end
217
+
218
+ if attributes.key?(:'job_title')
219
+ self.job_title = attributes[:'job_title']
220
+ end
221
+
222
+ if attributes.key?(:'email')
223
+ self.email = attributes[:'email']
224
+ end
225
+
226
+ if attributes.key?(:'department')
227
+ self.department = attributes[:'department']
228
+ end
229
+
230
+ if attributes.key?(:'enabled')
231
+ self.enabled = attributes[:'enabled']
232
+ else
233
+ self.enabled = true
234
+ end
235
+
236
+ if attributes.key?(:'valid_from')
237
+ self.valid_from = attributes[:'valid_from']
238
+ end
239
+
240
+ if attributes.key?(:'valid_to')
241
+ self.valid_to = attributes[:'valid_to']
242
+ end
243
+
244
+ if attributes.key?(:'image_base64')
245
+ self.image_base64 = attributes[:'image_base64']
246
+ end
247
+
248
+ if attributes.key?(:'image_remote_url')
249
+ self.image_remote_url = attributes[:'image_remote_url']
250
+ end
251
+
252
+ if attributes.key?(:'telephone')
253
+ self.telephone = attributes[:'telephone']
254
+ end
255
+
256
+ if attributes.key?(:'mobile')
257
+ self.mobile = attributes[:'mobile']
258
+ end
259
+
260
+ if attributes.key?(:'notes')
261
+ self.notes = attributes[:'notes']
262
+ end
263
+
264
+ if attributes.key?(:'barcode')
265
+ self.barcode = attributes[:'barcode']
266
+ end
267
+
268
+ if attributes.key?(:'system_id')
269
+ self.system_id = attributes[:'system_id']
270
+ end
271
+
272
+ if attributes.key?(:'organisation_id')
273
+ self.organisation_id = attributes[:'organisation_id']
274
+ end
275
+
276
+ if attributes.key?(:'custom_1')
277
+ self.custom_1 = attributes[:'custom_1']
278
+ end
279
+
280
+ if attributes.key?(:'custom_2')
281
+ self.custom_2 = attributes[:'custom_2']
282
+ end
283
+
284
+ if attributes.key?(:'custom_3')
285
+ self.custom_3 = attributes[:'custom_3']
286
+ end
287
+
288
+ if attributes.key?(:'custom_4')
289
+ self.custom_4 = attributes[:'custom_4']
290
+ end
291
+
292
+ if attributes.key?(:'custom_5')
293
+ self.custom_5 = attributes[:'custom_5']
294
+ end
295
+
296
+ if attributes.key?(:'group_ids')
297
+ if (value = attributes[:'group_ids']).is_a?(Array)
298
+ self.group_ids = value
299
+ end
300
+ end
301
+
302
+ if attributes.key?(:'role_ids')
303
+ if (value = attributes[:'role_ids']).is_a?(Array)
304
+ self.role_ids = value
305
+ end
306
+ end
307
+
308
+ if attributes.key?(:'deleted')
309
+ self.deleted = attributes[:'deleted']
310
+ end
311
+ end
312
+
313
+ # Show invalid properties with the reasons. Usually used together with valid?
314
+ # @return Array for valid properties with the reasons
315
+ def list_invalid_properties
316
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
317
+ invalid_properties = Array.new
318
+ invalid_properties
319
+ end
320
+
321
+ # Check to see if the all the properties in the model are valid
322
+ # @return true if the model is valid
323
+ def valid?
324
+ warn '[DEPRECATED] the `valid?` method is obsolete'
325
+ true
326
+ end
327
+
328
+ # Checks equality by comparing each attribute.
329
+ # @param [Object] Object to be compared
330
+ def ==(o)
331
+ return true if self.equal?(o)
332
+ self.class == o.class &&
333
+ first_name == o.first_name &&
334
+ last_name == o.last_name &&
335
+ salutation == o.salutation &&
336
+ job_title == o.job_title &&
337
+ email == o.email &&
338
+ department == o.department &&
339
+ enabled == o.enabled &&
340
+ valid_from == o.valid_from &&
341
+ valid_to == o.valid_to &&
342
+ image_base64 == o.image_base64 &&
343
+ image_remote_url == o.image_remote_url &&
344
+ telephone == o.telephone &&
345
+ mobile == o.mobile &&
346
+ notes == o.notes &&
347
+ barcode == o.barcode &&
348
+ system_id == o.system_id &&
349
+ organisation_id == o.organisation_id &&
350
+ custom_1 == o.custom_1 &&
351
+ custom_2 == o.custom_2 &&
352
+ custom_3 == o.custom_3 &&
353
+ custom_4 == o.custom_4 &&
354
+ custom_5 == o.custom_5 &&
355
+ group_ids == o.group_ids &&
356
+ role_ids == o.role_ids &&
357
+ deleted == o.deleted
358
+ end
359
+
360
+ # @see the `==` method
361
+ # @param [Object] Object to be compared
362
+ def eql?(o)
363
+ self == o
364
+ end
365
+
366
+ # Calculates hash code according to all attributes.
367
+ # @return [Integer] Hash code
368
+ def hash
369
+ [first_name, last_name, salutation, job_title, email, department, enabled, valid_from, valid_to, image_base64, image_remote_url, telephone, mobile, notes, barcode, system_id, organisation_id, custom_1, custom_2, custom_3, custom_4, custom_5, group_ids, role_ids, deleted].hash
370
+ end
371
+
372
+ # Builds the object from hash
373
+ # @param [Hash] attributes Model attributes in the form of hash
374
+ # @return [Object] Returns the model itself
375
+ def self.build_from_hash(attributes)
376
+ return nil unless attributes.is_a?(Hash)
377
+ attributes = attributes.transform_keys(&:to_sym)
378
+ transformed_hash = {}
379
+ openapi_types.each_pair do |key, type|
380
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
381
+ transformed_hash["#{key}"] = nil
382
+ elsif type =~ /\AArray<(.*)>/i
383
+ # check to ensure the input is an array given that the attribute
384
+ # is documented as an array but the input is not
385
+ if attributes[attribute_map[key]].is_a?(Array)
386
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
387
+ end
388
+ elsif !attributes[attribute_map[key]].nil?
389
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
390
+ end
391
+ end
392
+ new(transformed_hash)
393
+ end
394
+
395
+ # Returns the object in the form of hash
396
+ # @return [Hash] Returns the object in the form of hash
397
+ def to_hash
398
+ hash = {}
399
+ self.class.attribute_map.each_pair do |attr, param|
400
+ value = self.send(attr)
401
+ if value.nil?
402
+ is_nullable = self.class.openapi_nullable.include?(attr)
403
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
404
+ end
405
+
406
+ hash[param] = _to_hash(value)
407
+ end
408
+ hash
409
+ end
410
+
411
+ end
412
+
413
+ end