dependency-tracker-client 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 (227) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +201 -0
  4. data/README.md +276 -0
  5. data/Rakefile +10 -0
  6. data/dependency-tracker-client.gemspec +39 -0
  7. data/docs/About.md +25 -0
  8. data/docs/Analysis.md +21 -0
  9. data/docs/AnalysisApi.md +177 -0
  10. data/docs/AnalysisComment.md +21 -0
  11. data/docs/AnalysisRequest.md +27 -0
  12. data/docs/ApiKey.md +17 -0
  13. data/docs/BadgeApi.md +102 -0
  14. data/docs/BodyPart.md +31 -0
  15. data/docs/BomApi.md +335 -0
  16. data/docs/BomSubmitRequest.md +25 -0
  17. data/docs/CalculatorApi.md +61 -0
  18. data/docs/CloneProjectRequest.md +19 -0
  19. data/docs/Component.md +69 -0
  20. data/docs/ComponentApi.md +373 -0
  21. data/docs/ComponentMetrics.md +43 -0
  22. data/docs/ConfigProperty.md +25 -0
  23. data/docs/ConfigPropertyApi.md +167 -0
  24. data/docs/ContentDisposition.md +29 -0
  25. data/docs/Cwe.md +19 -0
  26. data/docs/CweApi.md +110 -0
  27. data/docs/DefaultApi.md +434 -0
  28. data/docs/Dependency.md +27 -0
  29. data/docs/DependencyApi.md +222 -0
  30. data/docs/DependencyMetrics.md +45 -0
  31. data/docs/DependencyRequest.md +21 -0
  32. data/docs/Finding.md +23 -0
  33. data/docs/FindingApi.md +113 -0
  34. data/docs/FormDataBodyPart.md +39 -0
  35. data/docs/FormDataContentDisposition.md +31 -0
  36. data/docs/FormDataMultiPart.md +35 -0
  37. data/docs/Framework.md +23 -0
  38. data/docs/IdentifiableObject.md +17 -0
  39. data/docs/LdapApi.md +220 -0
  40. data/docs/LdapUser.md +25 -0
  41. data/docs/License.md +37 -0
  42. data/docs/LicenseApi.md +159 -0
  43. data/docs/ManagedUser.md +37 -0
  44. data/docs/MappedLdapGroup.md +19 -0
  45. data/docs/MappedLdapGroupRequest.md +19 -0
  46. data/docs/MediaType.md +25 -0
  47. data/docs/MetricsApi.md +922 -0
  48. data/docs/MultiPart.md +33 -0
  49. data/docs/NotificationPublisher.md +29 -0
  50. data/docs/NotificationRule.md +35 -0
  51. data/docs/PackageURL.md +29 -0
  52. data/docs/ParameterizedHeader.md +19 -0
  53. data/docs/Permission.md +19 -0
  54. data/docs/PermissionApi.md +279 -0
  55. data/docs/PortfolioMetrics.md +53 -0
  56. data/docs/Project.md +43 -0
  57. data/docs/ProjectApi.md +445 -0
  58. data/docs/ProjectMetrics.md +47 -0
  59. data/docs/ProjectProperty.md +27 -0
  60. data/docs/ProjectPropertyApi.md +232 -0
  61. data/docs/Repository.md +29 -0
  62. data/docs/RepositoryApi.md +325 -0
  63. data/docs/RepositoryMetaComponent.md +27 -0
  64. data/docs/Score.md +23 -0
  65. data/docs/SearchApi.md +120 -0
  66. data/docs/SearchResult.md +17 -0
  67. data/docs/Tag.md +19 -0
  68. data/docs/Team.md +29 -0
  69. data/docs/TeamApi.md +432 -0
  70. data/docs/UserApi.md +715 -0
  71. data/docs/UserPrincipal.md +27 -0
  72. data/docs/VersionApi.md +52 -0
  73. data/docs/Vulnerability.md +69 -0
  74. data/docs/VulnerabilityApi.md +666 -0
  75. data/docs/VulnerabilityMetrics.md +23 -0
  76. data/docs/VulnerableSoftware.md +69 -0
  77. data/lib/dependency-tracker-client/api/analysis_api.rb +209 -0
  78. data/lib/dependency-tracker-client/api/badge_api.rb +148 -0
  79. data/lib/dependency-tracker-client/api/bom_api.rb +382 -0
  80. data/lib/dependency-tracker-client/api/calculator_api.rb +83 -0
  81. data/lib/dependency-tracker-client/api/component_api.rb +422 -0
  82. data/lib/dependency-tracker-client/api/config_property_api.rb +192 -0
  83. data/lib/dependency-tracker-client/api/cwe_api.rb +136 -0
  84. data/lib/dependency-tracker-client/api/default_api.rb +491 -0
  85. data/lib/dependency-tracker-client/api/dependency_api.rb +254 -0
  86. data/lib/dependency-tracker-client/api/finding_api.rb +140 -0
  87. data/lib/dependency-tracker-client/api/ldap_api.rb +254 -0
  88. data/lib/dependency-tracker-client/api/license_api.rb +190 -0
  89. data/lib/dependency-tracker-client/api/metrics_api.rb +1086 -0
  90. data/lib/dependency-tracker-client/api/permission_api.rb +342 -0
  91. data/lib/dependency-tracker-client/api/project_api.rb +504 -0
  92. data/lib/dependency-tracker-client/api/project_property_api.rb +274 -0
  93. data/lib/dependency-tracker-client/api/repository_api.rb +376 -0
  94. data/lib/dependency-tracker-client/api/search_api.rb +143 -0
  95. data/lib/dependency-tracker-client/api/team_api.rb +486 -0
  96. data/lib/dependency-tracker-client/api/user_api.rb +796 -0
  97. data/lib/dependency-tracker-client/api/version_api.rb +78 -0
  98. data/lib/dependency-tracker-client/api/vulnerability_api.rb +780 -0
  99. data/lib/dependency-tracker-client/api_client.rb +388 -0
  100. data/lib/dependency-tracker-client/api_error.rb +57 -0
  101. data/lib/dependency-tracker-client/configuration.rb +261 -0
  102. data/lib/dependency-tracker-client/models/about.rb +242 -0
  103. data/lib/dependency-tracker-client/models/analysis.rb +265 -0
  104. data/lib/dependency-tracker-client/models/analysis_comment.rb +234 -0
  105. data/lib/dependency-tracker-client/models/analysis_request.rb +371 -0
  106. data/lib/dependency-tracker-client/models/api_key.rb +250 -0
  107. data/lib/dependency-tracker-client/models/body_part.rb +273 -0
  108. data/lib/dependency-tracker-client/models/bom_submit_request.rb +328 -0
  109. data/lib/dependency-tracker-client/models/clone_project_request.rb +267 -0
  110. data/lib/dependency-tracker-client/models/component.rb +900 -0
  111. data/lib/dependency-tracker-client/models/component_metrics.rb +338 -0
  112. data/lib/dependency-tracker-client/models/config_property.rb +421 -0
  113. data/lib/dependency-tracker-client/models/content_disposition.rb +262 -0
  114. data/lib/dependency-tracker-client/models/cwe.rb +259 -0
  115. data/lib/dependency-tracker-client/models/dependency.rb +266 -0
  116. data/lib/dependency-tracker-client/models/dependency_metrics.rb +352 -0
  117. data/lib/dependency-tracker-client/models/dependency_request.rb +257 -0
  118. data/lib/dependency-tracker-client/models/finding.rb +239 -0
  119. data/lib/dependency-tracker-client/models/form_data_body_part.rb +309 -0
  120. data/lib/dependency-tracker-client/models/form_data_content_disposition.rb +271 -0
  121. data/lib/dependency-tracker-client/models/form_data_multi_part.rb +295 -0
  122. data/lib/dependency-tracker-client/models/framework.rb +233 -0
  123. data/lib/dependency-tracker-client/models/identifiable_object.rb +206 -0
  124. data/lib/dependency-tracker-client/models/ldap_user.rb +351 -0
  125. data/lib/dependency-tracker-client/models/license.rb +373 -0
  126. data/lib/dependency-tracker-client/models/managed_user.rb +480 -0
  127. data/lib/dependency-tracker-client/models/mapped_ldap_group.rb +255 -0
  128. data/lib/dependency-tracker-client/models/mapped_ldap_group_request.rb +267 -0
  129. data/lib/dependency-tracker-client/models/media_type.rb +244 -0
  130. data/lib/dependency-tracker-client/models/multi_part.rb +284 -0
  131. data/lib/dependency-tracker-client/models/notification_publisher.rb +388 -0
  132. data/lib/dependency-tracker-client/models/notification_rule.rb +426 -0
  133. data/lib/dependency-tracker-client/models/package_url.rb +262 -0
  134. data/lib/dependency-tracker-client/models/parameterized_header.rb +217 -0
  135. data/lib/dependency-tracker-client/models/permission.rb +250 -0
  136. data/lib/dependency-tracker-client/models/portfolio_metrics.rb +378 -0
  137. data/lib/dependency-tracker-client/models/project.rb +420 -0
  138. data/lib/dependency-tracker-client/models/project_metrics.rb +356 -0
  139. data/lib/dependency-tracker-client/models/project_property.rb +430 -0
  140. data/lib/dependency-tracker-client/models/repository.rb +319 -0
  141. data/lib/dependency-tracker-client/models/repository_meta_component.rb +305 -0
  142. data/lib/dependency-tracker-client/models/score.rb +233 -0
  143. data/lib/dependency-tracker-client/models/search_result.rb +208 -0
  144. data/lib/dependency-tracker-client/models/tag.rb +252 -0
  145. data/lib/dependency-tracker-client/models/team.rb +310 -0
  146. data/lib/dependency-tracker-client/models/user_principal.rb +255 -0
  147. data/lib/dependency-tracker-client/models/vulnerability.rb +729 -0
  148. data/lib/dependency-tracker-client/models/vulnerability_metrics.rb +238 -0
  149. data/lib/dependency-tracker-client/models/vulnerable_software.rb +442 -0
  150. data/lib/dependency-tracker-client/version.rb +15 -0
  151. data/lib/dependency-tracker-client.rb +109 -0
  152. data/pkg/dependency-tracker-client-1.0.0.gem +0 -0
  153. data/spec/api/analysis_api_spec.rb +70 -0
  154. data/spec/api/badge_api_spec.rb +58 -0
  155. data/spec/api/bom_api_spec.rb +106 -0
  156. data/spec/api/calculator_api_spec.rb +46 -0
  157. data/spec/api/component_api_spec.rb +110 -0
  158. data/spec/api/config_property_api_spec.rb +67 -0
  159. data/spec/api/cwe_api_spec.rb +56 -0
  160. data/spec/api/default_api_spec.rb +123 -0
  161. data/spec/api/dependency_api_spec.rb +79 -0
  162. data/spec/api/finding_api_spec.rb +57 -0
  163. data/spec/api/ldap_api_spec.rb +79 -0
  164. data/spec/api/license_api_spec.rb +66 -0
  165. data/spec/api/metrics_api_spec.rb +233 -0
  166. data/spec/api/permission_api_spec.rb +94 -0
  167. data/spec/api/project_api_spec.rb +126 -0
  168. data/spec/api/project_property_api_spec.rb +82 -0
  169. data/spec/api/repository_api_spec.rb +100 -0
  170. data/spec/api/search_api_spec.rb +59 -0
  171. data/spec/api/team_api_spec.rb +122 -0
  172. data/spec/api/user_api_spec.rb +183 -0
  173. data/spec/api/version_api_spec.rb +46 -0
  174. data/spec/api/vulnerability_api_spec.rb +177 -0
  175. data/spec/api_client_spec.rb +226 -0
  176. data/spec/configuration_spec.rb +42 -0
  177. data/spec/models/about_spec.rb +65 -0
  178. data/spec/models/analysis_comment_spec.rb +53 -0
  179. data/spec/models/analysis_request_spec.rb +75 -0
  180. data/spec/models/analysis_spec.rb +57 -0
  181. data/spec/models/api_key_spec.rb +41 -0
  182. data/spec/models/body_part_spec.rb +83 -0
  183. data/spec/models/bom_submit_request_spec.rb +65 -0
  184. data/spec/models/clone_project_request_spec.rb +47 -0
  185. data/spec/models/component_metrics_spec.rb +119 -0
  186. data/spec/models/component_spec.rb +201 -0
  187. data/spec/models/config_property_spec.rb +69 -0
  188. data/spec/models/content_disposition_spec.rb +77 -0
  189. data/spec/models/cwe_spec.rb +47 -0
  190. data/spec/models/dependency_metrics_spec.rb +125 -0
  191. data/spec/models/dependency_request_spec.rb +53 -0
  192. data/spec/models/dependency_spec.rb +71 -0
  193. data/spec/models/finding_spec.rb +59 -0
  194. data/spec/models/form_data_body_part_spec.rb +107 -0
  195. data/spec/models/form_data_content_disposition_spec.rb +83 -0
  196. data/spec/models/form_data_multi_part_spec.rb +95 -0
  197. data/spec/models/framework_spec.rb +59 -0
  198. data/spec/models/identifiable_object_spec.rb +41 -0
  199. data/spec/models/ldap_user_spec.rb +65 -0
  200. data/spec/models/license_spec.rb +101 -0
  201. data/spec/models/managed_user_spec.rb +101 -0
  202. data/spec/models/mapped_ldap_group_request_spec.rb +47 -0
  203. data/spec/models/mapped_ldap_group_spec.rb +47 -0
  204. data/spec/models/media_type_spec.rb +65 -0
  205. data/spec/models/multi_part_spec.rb +89 -0
  206. data/spec/models/notification_publisher_spec.rb +77 -0
  207. data/spec/models/notification_rule_spec.rb +107 -0
  208. data/spec/models/package_url_spec.rb +77 -0
  209. data/spec/models/parameterized_header_spec.rb +47 -0
  210. data/spec/models/permission_spec.rb +47 -0
  211. data/spec/models/portfolio_metrics_spec.rb +149 -0
  212. data/spec/models/project_metrics_spec.rb +131 -0
  213. data/spec/models/project_property_spec.rb +75 -0
  214. data/spec/models/project_spec.rb +119 -0
  215. data/spec/models/repository_meta_component_spec.rb +75 -0
  216. data/spec/models/repository_spec.rb +81 -0
  217. data/spec/models/score_spec.rb +59 -0
  218. data/spec/models/search_result_spec.rb +41 -0
  219. data/spec/models/tag_spec.rb +47 -0
  220. data/spec/models/team_spec.rb +77 -0
  221. data/spec/models/user_principal_spec.rb +71 -0
  222. data/spec/models/vulnerability_metrics_spec.rb +59 -0
  223. data/spec/models/vulnerability_spec.rb +201 -0
  224. data/spec/models/vulnerable_software_spec.rb +197 -0
  225. data/spec/spec_helper.rb +111 -0
  226. data/tmp/tmp.rb +11 -0
  227. metadata +402 -0
@@ -0,0 +1,480 @@
1
+ =begin
2
+ #Dependency-Track API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 3.8.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module DependencyTracker
16
+ class ManagedUser
17
+ attr_accessor :username
18
+
19
+ attr_accessor :new_password
20
+
21
+ attr_accessor :confirm_password
22
+
23
+ attr_accessor :last_password_change
24
+
25
+ attr_accessor :fullname
26
+
27
+ attr_accessor :email
28
+
29
+ attr_accessor :suspended
30
+
31
+ attr_accessor :force_password_change
32
+
33
+ attr_accessor :non_expiry_password
34
+
35
+ attr_accessor :teams
36
+
37
+ attr_accessor :permissions
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ :'username' => :'username',
43
+ :'new_password' => :'newPassword',
44
+ :'confirm_password' => :'confirmPassword',
45
+ :'last_password_change' => :'lastPasswordChange',
46
+ :'fullname' => :'fullname',
47
+ :'email' => :'email',
48
+ :'suspended' => :'suspended',
49
+ :'force_password_change' => :'forcePasswordChange',
50
+ :'non_expiry_password' => :'nonExpiryPassword',
51
+ :'teams' => :'teams',
52
+ :'permissions' => :'permissions'
53
+ }
54
+ end
55
+
56
+ # Attribute type mapping.
57
+ def self.openapi_types
58
+ {
59
+ :'username' => :'String',
60
+ :'new_password' => :'String',
61
+ :'confirm_password' => :'String',
62
+ :'last_password_change' => :'Integer',
63
+ :'fullname' => :'String',
64
+ :'email' => :'String',
65
+ :'suspended' => :'Boolean',
66
+ :'force_password_change' => :'Boolean',
67
+ :'non_expiry_password' => :'Boolean',
68
+ :'teams' => :'Array<Team>',
69
+ :'permissions' => :'Array<Permission>'
70
+ }
71
+ end
72
+
73
+ # List of attributes with nullable: true
74
+ def self.openapi_nullable
75
+ Set.new([
76
+ ])
77
+ end
78
+
79
+ # Initializes the object
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ def initialize(attributes = {})
82
+ if (!attributes.is_a?(Hash))
83
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DependencyTracker::ManagedUser` initialize method"
84
+ end
85
+
86
+ # check to see if the attribute exists and convert string to symbol for hash key
87
+ attributes = attributes.each_with_object({}) { |(k, v), h|
88
+ if (!self.class.attribute_map.key?(k.to_sym))
89
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DependencyTracker::ManagedUser`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
90
+ end
91
+ h[k.to_sym] = v
92
+ }
93
+
94
+ if attributes.key?(:'username')
95
+ self.username = attributes[:'username']
96
+ end
97
+
98
+ if attributes.key?(:'new_password')
99
+ self.new_password = attributes[:'new_password']
100
+ end
101
+
102
+ if attributes.key?(:'confirm_password')
103
+ self.confirm_password = attributes[:'confirm_password']
104
+ end
105
+
106
+ if attributes.key?(:'last_password_change')
107
+ self.last_password_change = attributes[:'last_password_change']
108
+ end
109
+
110
+ if attributes.key?(:'fullname')
111
+ self.fullname = attributes[:'fullname']
112
+ end
113
+
114
+ if attributes.key?(:'email')
115
+ self.email = attributes[:'email']
116
+ end
117
+
118
+ if attributes.key?(:'suspended')
119
+ self.suspended = attributes[:'suspended']
120
+ end
121
+
122
+ if attributes.key?(:'force_password_change')
123
+ self.force_password_change = attributes[:'force_password_change']
124
+ end
125
+
126
+ if attributes.key?(:'non_expiry_password')
127
+ self.non_expiry_password = attributes[:'non_expiry_password']
128
+ end
129
+
130
+ if attributes.key?(:'teams')
131
+ if (value = attributes[:'teams']).is_a?(Array)
132
+ self.teams = value
133
+ end
134
+ end
135
+
136
+ if attributes.key?(:'permissions')
137
+ if (value = attributes[:'permissions']).is_a?(Array)
138
+ self.permissions = value
139
+ end
140
+ end
141
+ end
142
+
143
+ # Show invalid properties with the reasons. Usually used together with valid?
144
+ # @return Array for valid properties with the reasons
145
+ def list_invalid_properties
146
+ invalid_properties = Array.new
147
+ if !@username.nil? && @username.to_s.length > 255
148
+ invalid_properties.push('invalid value for "username", the character length must be smaller than or equal to 255.')
149
+ end
150
+
151
+ if !@username.nil? && @username.to_s.length < 1
152
+ invalid_properties.push('invalid value for "username", the character length must be great than or equal to 1.')
153
+ end
154
+
155
+ pattern = Regexp.new(/[\P{Cc}]+/)
156
+ if !@username.nil? && @username !~ pattern
157
+ invalid_properties.push("invalid value for \"username\", must conform to the pattern #{pattern}.")
158
+ end
159
+
160
+ if !@new_password.nil? && @new_password.to_s.length > 255
161
+ invalid_properties.push('invalid value for "new_password", the character length must be smaller than or equal to 255.')
162
+ end
163
+
164
+ if !@new_password.nil? && @new_password.to_s.length < 0
165
+ invalid_properties.push('invalid value for "new_password", the character length must be great than or equal to 0.')
166
+ end
167
+
168
+ pattern = Regexp.new(/[\P{Cc}]+/)
169
+ if !@new_password.nil? && @new_password !~ pattern
170
+ invalid_properties.push("invalid value for \"new_password\", must conform to the pattern #{pattern}.")
171
+ end
172
+
173
+ if !@confirm_password.nil? && @confirm_password.to_s.length > 255
174
+ invalid_properties.push('invalid value for "confirm_password", the character length must be smaller than or equal to 255.')
175
+ end
176
+
177
+ if !@confirm_password.nil? && @confirm_password.to_s.length < 0
178
+ invalid_properties.push('invalid value for "confirm_password", the character length must be great than or equal to 0.')
179
+ end
180
+
181
+ pattern = Regexp.new(/[\P{Cc}]+/)
182
+ if !@confirm_password.nil? && @confirm_password !~ pattern
183
+ invalid_properties.push("invalid value for \"confirm_password\", must conform to the pattern #{pattern}.")
184
+ end
185
+
186
+ if @last_password_change.nil?
187
+ invalid_properties.push('invalid value for "last_password_change", last_password_change cannot be nil.')
188
+ end
189
+
190
+ if !@fullname.nil? && @fullname.to_s.length > 255
191
+ invalid_properties.push('invalid value for "fullname", the character length must be smaller than or equal to 255.')
192
+ end
193
+
194
+ if !@fullname.nil? && @fullname.to_s.length < 0
195
+ invalid_properties.push('invalid value for "fullname", the character length must be great than or equal to 0.')
196
+ end
197
+
198
+ pattern = Regexp.new(/[\P{Cc}]+/)
199
+ if !@fullname.nil? && @fullname !~ pattern
200
+ invalid_properties.push("invalid value for \"fullname\", must conform to the pattern #{pattern}.")
201
+ end
202
+
203
+ if !@email.nil? && @email.to_s.length > 255
204
+ invalid_properties.push('invalid value for "email", the character length must be smaller than or equal to 255.')
205
+ end
206
+
207
+ if !@email.nil? && @email.to_s.length < 0
208
+ invalid_properties.push('invalid value for "email", the character length must be great than or equal to 0.')
209
+ end
210
+
211
+ pattern = Regexp.new(/[\P{Cc}]+/)
212
+ if !@email.nil? && @email !~ pattern
213
+ invalid_properties.push("invalid value for \"email\", must conform to the pattern #{pattern}.")
214
+ end
215
+
216
+ invalid_properties
217
+ end
218
+
219
+ # Check to see if the all the properties in the model are valid
220
+ # @return true if the model is valid
221
+ def valid?
222
+ return false if !@username.nil? && @username.to_s.length > 255
223
+ return false if !@username.nil? && @username.to_s.length < 1
224
+ return false if !@username.nil? && @username !~ Regexp.new(/[\P{Cc}]+/)
225
+ return false if !@new_password.nil? && @new_password.to_s.length > 255
226
+ return false if !@new_password.nil? && @new_password.to_s.length < 0
227
+ return false if !@new_password.nil? && @new_password !~ Regexp.new(/[\P{Cc}]+/)
228
+ return false if !@confirm_password.nil? && @confirm_password.to_s.length > 255
229
+ return false if !@confirm_password.nil? && @confirm_password.to_s.length < 0
230
+ return false if !@confirm_password.nil? && @confirm_password !~ Regexp.new(/[\P{Cc}]+/)
231
+ return false if @last_password_change.nil?
232
+ return false if !@fullname.nil? && @fullname.to_s.length > 255
233
+ return false if !@fullname.nil? && @fullname.to_s.length < 0
234
+ return false if !@fullname.nil? && @fullname !~ Regexp.new(/[\P{Cc}]+/)
235
+ return false if !@email.nil? && @email.to_s.length > 255
236
+ return false if !@email.nil? && @email.to_s.length < 0
237
+ return false if !@email.nil? && @email !~ Regexp.new(/[\P{Cc}]+/)
238
+ true
239
+ end
240
+
241
+ # Custom attribute writer method with validation
242
+ # @param [Object] username Value to be assigned
243
+ def username=(username)
244
+ if !username.nil? && username.to_s.length > 255
245
+ fail ArgumentError, 'invalid value for "username", the character length must be smaller than or equal to 255.'
246
+ end
247
+
248
+ if !username.nil? && username.to_s.length < 1
249
+ fail ArgumentError, 'invalid value for "username", the character length must be great than or equal to 1.'
250
+ end
251
+
252
+ pattern = Regexp.new(/[\P{Cc}]+/)
253
+ if !username.nil? && username !~ pattern
254
+ fail ArgumentError, "invalid value for \"username\", must conform to the pattern #{pattern}."
255
+ end
256
+
257
+ @username = username
258
+ end
259
+
260
+ # Custom attribute writer method with validation
261
+ # @param [Object] new_password Value to be assigned
262
+ def new_password=(new_password)
263
+ if !new_password.nil? && new_password.to_s.length > 255
264
+ fail ArgumentError, 'invalid value for "new_password", the character length must be smaller than or equal to 255.'
265
+ end
266
+
267
+ if !new_password.nil? && new_password.to_s.length < 0
268
+ fail ArgumentError, 'invalid value for "new_password", the character length must be great than or equal to 0.'
269
+ end
270
+
271
+ pattern = Regexp.new(/[\P{Cc}]+/)
272
+ if !new_password.nil? && new_password !~ pattern
273
+ fail ArgumentError, "invalid value for \"new_password\", must conform to the pattern #{pattern}."
274
+ end
275
+
276
+ @new_password = new_password
277
+ end
278
+
279
+ # Custom attribute writer method with validation
280
+ # @param [Object] confirm_password Value to be assigned
281
+ def confirm_password=(confirm_password)
282
+ if !confirm_password.nil? && confirm_password.to_s.length > 255
283
+ fail ArgumentError, 'invalid value for "confirm_password", the character length must be smaller than or equal to 255.'
284
+ end
285
+
286
+ if !confirm_password.nil? && confirm_password.to_s.length < 0
287
+ fail ArgumentError, 'invalid value for "confirm_password", the character length must be great than or equal to 0.'
288
+ end
289
+
290
+ pattern = Regexp.new(/[\P{Cc}]+/)
291
+ if !confirm_password.nil? && confirm_password !~ pattern
292
+ fail ArgumentError, "invalid value for \"confirm_password\", must conform to the pattern #{pattern}."
293
+ end
294
+
295
+ @confirm_password = confirm_password
296
+ end
297
+
298
+ # Custom attribute writer method with validation
299
+ # @param [Object] fullname Value to be assigned
300
+ def fullname=(fullname)
301
+ if !fullname.nil? && fullname.to_s.length > 255
302
+ fail ArgumentError, 'invalid value for "fullname", the character length must be smaller than or equal to 255.'
303
+ end
304
+
305
+ if !fullname.nil? && fullname.to_s.length < 0
306
+ fail ArgumentError, 'invalid value for "fullname", the character length must be great than or equal to 0.'
307
+ end
308
+
309
+ pattern = Regexp.new(/[\P{Cc}]+/)
310
+ if !fullname.nil? && fullname !~ pattern
311
+ fail ArgumentError, "invalid value for \"fullname\", must conform to the pattern #{pattern}."
312
+ end
313
+
314
+ @fullname = fullname
315
+ end
316
+
317
+ # Custom attribute writer method with validation
318
+ # @param [Object] email Value to be assigned
319
+ def email=(email)
320
+ if !email.nil? && email.to_s.length > 255
321
+ fail ArgumentError, 'invalid value for "email", the character length must be smaller than or equal to 255.'
322
+ end
323
+
324
+ if !email.nil? && email.to_s.length < 0
325
+ fail ArgumentError, 'invalid value for "email", the character length must be great than or equal to 0.'
326
+ end
327
+
328
+ pattern = Regexp.new(/[\P{Cc}]+/)
329
+ if !email.nil? && email !~ pattern
330
+ fail ArgumentError, "invalid value for \"email\", must conform to the pattern #{pattern}."
331
+ end
332
+
333
+ @email = email
334
+ end
335
+
336
+ # Checks equality by comparing each attribute.
337
+ # @param [Object] Object to be compared
338
+ def ==(o)
339
+ return true if self.equal?(o)
340
+ self.class == o.class &&
341
+ username == o.username &&
342
+ new_password == o.new_password &&
343
+ confirm_password == o.confirm_password &&
344
+ last_password_change == o.last_password_change &&
345
+ fullname == o.fullname &&
346
+ email == o.email &&
347
+ suspended == o.suspended &&
348
+ force_password_change == o.force_password_change &&
349
+ non_expiry_password == o.non_expiry_password &&
350
+ teams == o.teams &&
351
+ permissions == o.permissions
352
+ end
353
+
354
+ # @see the `==` method
355
+ # @param [Object] Object to be compared
356
+ def eql?(o)
357
+ self == o
358
+ end
359
+
360
+ # Calculates hash code according to all attributes.
361
+ # @return [Integer] Hash code
362
+ def hash
363
+ [username, new_password, confirm_password, last_password_change, fullname, email, suspended, force_password_change, non_expiry_password, teams, permissions].hash
364
+ end
365
+
366
+ # Builds the object from hash
367
+ # @param [Hash] attributes Model attributes in the form of hash
368
+ # @return [Object] Returns the model itself
369
+ def self.build_from_hash(attributes)
370
+ new.build_from_hash(attributes)
371
+ end
372
+
373
+ # Builds the object from hash
374
+ # @param [Hash] attributes Model attributes in the form of hash
375
+ # @return [Object] Returns the model itself
376
+ def build_from_hash(attributes)
377
+ return nil unless attributes.is_a?(Hash)
378
+ self.class.openapi_types.each_pair do |key, type|
379
+ if type =~ /\AArray<(.*)>/i
380
+ # check to ensure the input is an array given that the attribute
381
+ # is documented as an array but the input is not
382
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
383
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
384
+ end
385
+ elsif !attributes[self.class.attribute_map[key]].nil?
386
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
387
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
388
+ end
389
+
390
+ self
391
+ end
392
+
393
+ # Deserializes the data based on type
394
+ # @param string type Data type
395
+ # @param string value Value to be deserialized
396
+ # @return [Object] Deserialized data
397
+ def _deserialize(type, value)
398
+ case type.to_sym
399
+ when :DateTime
400
+ DateTime.parse(value)
401
+ when :Date
402
+ Date.parse(value)
403
+ when :String
404
+ value.to_s
405
+ when :Integer
406
+ value.to_i
407
+ when :Float
408
+ value.to_f
409
+ when :Boolean
410
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
411
+ true
412
+ else
413
+ false
414
+ end
415
+ when :Object
416
+ # generic object (usually a Hash), return directly
417
+ value
418
+ when /\AArray<(?<inner_type>.+)>\z/
419
+ inner_type = Regexp.last_match[:inner_type]
420
+ value.map { |v| _deserialize(inner_type, v) }
421
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
422
+ k_type = Regexp.last_match[:k_type]
423
+ v_type = Regexp.last_match[:v_type]
424
+ {}.tap do |hash|
425
+ value.each do |k, v|
426
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
427
+ end
428
+ end
429
+ else # model
430
+ DependencyTracker.const_get(type).build_from_hash(value)
431
+ end
432
+ end
433
+
434
+ # Returns the string representation of the object
435
+ # @return [String] String presentation of the object
436
+ def to_s
437
+ to_hash.to_s
438
+ end
439
+
440
+ # to_body is an alias to to_hash (backward compatibility)
441
+ # @return [Hash] Returns the object in the form of hash
442
+ def to_body
443
+ to_hash
444
+ end
445
+
446
+ # Returns the object in the form of hash
447
+ # @return [Hash] Returns the object in the form of hash
448
+ def to_hash
449
+ hash = {}
450
+ self.class.attribute_map.each_pair do |attr, param|
451
+ value = self.send(attr)
452
+ if value.nil?
453
+ is_nullable = self.class.openapi_nullable.include?(attr)
454
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
455
+ end
456
+
457
+ hash[param] = _to_hash(value)
458
+ end
459
+ hash
460
+ end
461
+
462
+ # Outputs non-array value in the form of hash
463
+ # For object, use to_hash. Otherwise, just return the value
464
+ # @param [Object] value Any valid value
465
+ # @return [Hash] Returns the value in the form of hash
466
+ def _to_hash(value)
467
+ if value.is_a?(Array)
468
+ value.compact.map { |v| _to_hash(v) }
469
+ elsif value.is_a?(Hash)
470
+ {}.tap do |hash|
471
+ value.each { |k, v| hash[k] = _to_hash(v) }
472
+ end
473
+ elsif value.respond_to? :to_hash
474
+ value.to_hash
475
+ else
476
+ value
477
+ end
478
+ end
479
+ end
480
+ end