harbor1_client 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (444) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +438 -0
  4. data/Rakefile +8 -0
  5. data/docs/AccessLog.md +13 -0
  6. data/docs/Action.md +8 -0
  7. data/docs/Action1.md +8 -0
  8. data/docs/AdminJobSchedule.md +8 -0
  9. data/docs/AdminJobScheduleObj.md +9 -0
  10. data/docs/BadRequestFormatedError.md +8 -0
  11. data/docs/BoolConfigItem.md +9 -0
  12. data/docs/CVEWhitelist.md +11 -0
  13. data/docs/CVEWhitelistItem.md +8 -0
  14. data/docs/ChartAPIError.md +8 -0
  15. data/docs/ChartInfoEntry.md +15 -0
  16. data/docs/ChartInfoList.md +7 -0
  17. data/docs/ChartMetadata.md +18 -0
  18. data/docs/ChartRepositoryApi.md +698 -0
  19. data/docs/ChartVersion.md +23 -0
  20. data/docs/ChartVersionDetails.md +13 -0
  21. data/docs/ChartVersions.md +7 -0
  22. data/docs/ComponentHealthStatus.md +10 -0
  23. data/docs/ComponentOverviewEntry.md +9 -0
  24. data/docs/Configurations.md +42 -0
  25. data/docs/ConfigurationsResponse.md +41 -0
  26. data/docs/ConfigurationsScanAllPolicy.md +9 -0
  27. data/docs/ConfigurationsScanAllPolicyParameter.md +8 -0
  28. data/docs/ConflictFormatedError.md +8 -0
  29. data/docs/Dependency.md +10 -0
  30. data/docs/DetailedTag.md +18 -0
  31. data/docs/DigitalSignature.md +9 -0
  32. data/docs/EmailServerSetting.md +13 -0
  33. data/docs/Endpoint.md +9 -0
  34. data/docs/FilterStyle.md +10 -0
  35. data/docs/ForbiddenChartAPIError.md +8 -0
  36. data/docs/GCResult.md +15 -0
  37. data/docs/GeneralInfo.md +20 -0
  38. data/docs/GeneralInfoClairVulnerabilityStatus.md +9 -0
  39. data/docs/HasAdminRole.md +8 -0
  40. data/docs/ImmutableTagRule.md +11 -0
  41. data/docs/InlineResponse200.md +8 -0
  42. data/docs/InputSecret.md +8 -0
  43. data/docs/InsufficientStorageChartAPIError.md +8 -0
  44. data/docs/IntegerConfigItem.md +9 -0
  45. data/docs/InternalChartAPIError.md +8 -0
  46. data/docs/IsDefault.md +8 -0
  47. data/docs/JobStatus.md +15 -0
  48. data/docs/Label.md +16 -0
  49. data/docs/LabelApi.md +191 -0
  50. data/docs/Labels.md +7 -0
  51. data/docs/LdapConf.md +15 -0
  52. data/docs/LdapFailedImportUsers.md +9 -0
  53. data/docs/LdapImportUsers.md +8 -0
  54. data/docs/LdapUsers.md +10 -0
  55. data/docs/Manifest.md +9 -0
  56. data/docs/Namespace.md +9 -0
  57. data/docs/NativeReportSummary.md +14 -0
  58. data/docs/NotFoundChartAPIError.md +8 -0
  59. data/docs/OverallHealthStatus.md +9 -0
  60. data/docs/Password.md +9 -0
  61. data/docs/Permission.md +9 -0
  62. data/docs/PingRegistry.md +14 -0
  63. data/docs/ProductsApi.md +8594 -0
  64. data/docs/Project.md +21 -0
  65. data/docs/ProjectMember.md +10 -0
  66. data/docs/ProjectMemberEntity.md +14 -0
  67. data/docs/ProjectMetadata.md +13 -0
  68. data/docs/ProjectReq.md +12 -0
  69. data/docs/ProjectScanner.md +8 -0
  70. data/docs/ProjectSummary.md +14 -0
  71. data/docs/ProjectSummaryQuota.md +9 -0
  72. data/docs/PutRegistry.md +14 -0
  73. data/docs/Quota.md +13 -0
  74. data/docs/QuotaApi.md +118 -0
  75. data/docs/QuotaRefObject.md +7 -0
  76. data/docs/QuotaSwitcher.md +8 -0
  77. data/docs/QuotaUpdateReq.md +8 -0
  78. data/docs/Registry.md +17 -0
  79. data/docs/RegistryCredential.md +10 -0
  80. data/docs/RegistryInfo.md +11 -0
  81. data/docs/ReplicationExecution.md +19 -0
  82. data/docs/ReplicationFilter.md +9 -0
  83. data/docs/ReplicationPolicy.md +20 -0
  84. data/docs/ReplicationTask.md +16 -0
  85. data/docs/ReplicationTrigger.md +9 -0
  86. data/docs/RepoSignature.md +9 -0
  87. data/docs/Report.md +11 -0
  88. data/docs/Repository.md +17 -0
  89. data/docs/RepositoryDescription.md +8 -0
  90. data/docs/Resource.md +8 -0
  91. data/docs/ResourceList.md +7 -0
  92. data/docs/RetagReq.md +10 -0
  93. data/docs/RetentionApi.md +449 -0
  94. data/docs/RetentionExecution.md +14 -0
  95. data/docs/RetentionExecutionTask.md +18 -0
  96. data/docs/RetentionMetadata.md +10 -0
  97. data/docs/RetentionPolicy.md +12 -0
  98. data/docs/RetentionPolicyScope.md +9 -0
  99. data/docs/RetentionRule.md +15 -0
  100. data/docs/RetentionRuleMetadata.md +11 -0
  101. data/docs/RetentionRuleParamMetadata.md +10 -0
  102. data/docs/RetentionRuleTrigger.md +10 -0
  103. data/docs/RetentionSelector.md +10 -0
  104. data/docs/RetentionSelectorMetadata.md +10 -0
  105. data/docs/RobotAccount.md +15 -0
  106. data/docs/RobotAccountAccess.md +9 -0
  107. data/docs/RobotAccountApi.md +291 -0
  108. data/docs/RobotAccountCreate.md +10 -0
  109. data/docs/RobotAccountPostRep.md +9 -0
  110. data/docs/RobotAccountUpdate.md +8 -0
  111. data/docs/Role.md +11 -0
  112. data/docs/RoleParam.md +9 -0
  113. data/docs/RoleRequest.md +8 -0
  114. data/docs/ScanApi.md +281 -0
  115. data/docs/ScanOverview.md +7 -0
  116. data/docs/Scanner.md +10 -0
  117. data/docs/ScannerAdapterMetadata.md +10 -0
  118. data/docs/ScannerCapability.md +9 -0
  119. data/docs/ScannerRegistration.md +21 -0
  120. data/docs/ScannerRegistrationReq.md +15 -0
  121. data/docs/ScannerRegistrationSettings.md +11 -0
  122. data/docs/ScannersApi.md +600 -0
  123. data/docs/Search.md +10 -0
  124. data/docs/SearchRepository.md +13 -0
  125. data/docs/SearchResult.md +10 -0
  126. data/docs/SecurityReport.md +8 -0
  127. data/docs/StatisticMap.md +13 -0
  128. data/docs/Stats.md +11 -0
  129. data/docs/Storage.md +9 -0
  130. data/docs/StringConfigItem.md +9 -0
  131. data/docs/SystemApi.md +163 -0
  132. data/docs/SystemInfo.md +8 -0
  133. data/docs/Tags.md +8 -0
  134. data/docs/TriggerSettings.md +8 -0
  135. data/docs/UnauthorizedChartAPIError.md +8 -0
  136. data/docs/User.md +21 -0
  137. data/docs/UserEntity.md +9 -0
  138. data/docs/UserGroup.md +11 -0
  139. data/docs/UserProfile.md +10 -0
  140. data/docs/UserSearch.md +9 -0
  141. data/docs/VulnNamespaceTimestamp.md +9 -0
  142. data/docs/VulnerabilityItem.md +14 -0
  143. data/docs/VulnerabilitySummary.md +10 -0
  144. data/docs/WebhookJob.md +15 -0
  145. data/docs/WebhookLastTrigger.md +11 -0
  146. data/docs/WebhookPolicy.md +17 -0
  147. data/docs/WebhookTargetObject.md +11 -0
  148. data/git_push.sh +55 -0
  149. data/harbor1_client.gemspec +46 -0
  150. data/lib/harbor1_client.rb +182 -0
  151. data/lib/harbor1_client/api/chart_repository_api.rb +762 -0
  152. data/lib/harbor1_client/api/label_api.rb +230 -0
  153. data/lib/harbor1_client/api/products_api.rb +8783 -0
  154. data/lib/harbor1_client/api/quota_api.rb +136 -0
  155. data/lib/harbor1_client/api/retention_api.rb +482 -0
  156. data/lib/harbor1_client/api/robot_account_api.rb +321 -0
  157. data/lib/harbor1_client/api/scan_api.rb +307 -0
  158. data/lib/harbor1_client/api/scanners_api.rb +624 -0
  159. data/lib/harbor1_client/api/system_api.rb +173 -0
  160. data/lib/harbor1_client/api_client.rb +391 -0
  161. data/lib/harbor1_client/api_error.rb +38 -0
  162. data/lib/harbor1_client/configuration.rb +209 -0
  163. data/lib/harbor1_client/models/access_log.rb +235 -0
  164. data/lib/harbor1_client/models/action.rb +184 -0
  165. data/lib/harbor1_client/models/action_1.rb +184 -0
  166. data/lib/harbor1_client/models/admin_job_schedule.rb +184 -0
  167. data/lib/harbor1_client/models/admin_job_schedule_obj.rb +195 -0
  168. data/lib/harbor1_client/models/bad_request_formated_error.rb +191 -0
  169. data/lib/harbor1_client/models/bool_config_item.rb +195 -0
  170. data/lib/harbor1_client/models/chart_api_error.rb +191 -0
  171. data/lib/harbor1_client/models/chart_info_entry.rb +271 -0
  172. data/lib/harbor1_client/models/chart_info_list.rb +176 -0
  173. data/lib/harbor1_client/models/chart_metadata.rb +320 -0
  174. data/lib/harbor1_client/models/chart_version.rb +371 -0
  175. data/lib/harbor1_client/models/chart_version_details.rb +236 -0
  176. data/lib/harbor1_client/models/chart_versions.rb +176 -0
  177. data/lib/harbor1_client/models/component_health_status.rb +206 -0
  178. data/lib/harbor1_client/models/component_overview_entry.rb +195 -0
  179. data/lib/harbor1_client/models/configurations.rb +524 -0
  180. data/lib/harbor1_client/models/configurations_response.rb +514 -0
  181. data/lib/harbor1_client/models/configurations_scan_all_policy.rb +194 -0
  182. data/lib/harbor1_client/models/configurations_scan_all_policy_parameter.rb +186 -0
  183. data/lib/harbor1_client/models/conflict_formated_error.rb +191 -0
  184. data/lib/harbor1_client/models/cve_whitelist.rb +217 -0
  185. data/lib/harbor1_client/models/cve_whitelist_item.rb +186 -0
  186. data/lib/harbor1_client/models/dependency.rb +216 -0
  187. data/lib/harbor1_client/models/detailed_tag.rb +287 -0
  188. data/lib/harbor1_client/models/digital_signature.rb +196 -0
  189. data/lib/harbor1_client/models/email_server_setting.rb +235 -0
  190. data/lib/harbor1_client/models/endpoint.rb +195 -0
  191. data/lib/harbor1_client/models/filter_style.rb +208 -0
  192. data/lib/harbor1_client/models/forbidden_chart_api_error.rb +191 -0
  193. data/lib/harbor1_client/models/gc_result.rb +254 -0
  194. data/lib/harbor1_client/models/general_info.rb +304 -0
  195. data/lib/harbor1_client/models/general_info_clair_vulnerability_status.rb +198 -0
  196. data/lib/harbor1_client/models/has_admin_role.rb +185 -0
  197. data/lib/harbor1_client/models/immutable_tag_rule.rb +211 -0
  198. data/lib/harbor1_client/models/inline_response_200.rb +184 -0
  199. data/lib/harbor1_client/models/input_secret.rb +185 -0
  200. data/lib/harbor1_client/models/insufficient_storage_chart_api_error.rb +191 -0
  201. data/lib/harbor1_client/models/integer_config_item.rb +195 -0
  202. data/lib/harbor1_client/models/internal_chart_api_error.rb +191 -0
  203. data/lib/harbor1_client/models/is_default.rb +185 -0
  204. data/lib/harbor1_client/models/job_status.rb +257 -0
  205. data/lib/harbor1_client/models/label.rb +265 -0
  206. data/lib/harbor1_client/models/labels.rb +176 -0
  207. data/lib/harbor1_client/models/ldap_conf.rb +255 -0
  208. data/lib/harbor1_client/models/ldap_failed_import_users.rb +195 -0
  209. data/lib/harbor1_client/models/ldap_import_users.rb +187 -0
  210. data/lib/harbor1_client/models/ldap_users.rb +205 -0
  211. data/lib/harbor1_client/models/manifest.rb +195 -0
  212. data/lib/harbor1_client/models/namespace.rb +196 -0
  213. data/lib/harbor1_client/models/native_report_summary.rb +245 -0
  214. data/lib/harbor1_client/models/not_found_chart_api_error.rb +191 -0
  215. data/lib/harbor1_client/models/overall_health_status.rb +197 -0
  216. data/lib/harbor1_client/models/password.rb +195 -0
  217. data/lib/harbor1_client/models/permission.rb +196 -0
  218. data/lib/harbor1_client/models/ping_registry.rb +245 -0
  219. data/lib/harbor1_client/models/project.rb +317 -0
  220. data/lib/harbor1_client/models/project_member.rb +203 -0
  221. data/lib/harbor1_client/models/project_member_entity.rb +245 -0
  222. data/lib/harbor1_client/models/project_metadata.rb +235 -0
  223. data/lib/harbor1_client/models/project_req.rb +225 -0
  224. data/lib/harbor1_client/models/project_scanner.rb +185 -0
  225. data/lib/harbor1_client/models/project_summary.rb +244 -0
  226. data/lib/harbor1_client/models/project_summary_quota.rb +195 -0
  227. data/lib/harbor1_client/models/put_registry.rb +245 -0
  228. data/lib/harbor1_client/models/quota.rb +236 -0
  229. data/lib/harbor1_client/models/quota_ref_object.rb +175 -0
  230. data/lib/harbor1_client/models/quota_switcher.rb +185 -0
  231. data/lib/harbor1_client/models/quota_update_req.rb +185 -0
  232. data/lib/harbor1_client/models/registry.rb +274 -0
  233. data/lib/harbor1_client/models/registry_credential.rb +205 -0
  234. data/lib/harbor1_client/models/registry_info.rb +220 -0
  235. data/lib/harbor1_client/models/replication_execution.rb +296 -0
  236. data/lib/harbor1_client/models/replication_filter.rb +195 -0
  237. data/lib/harbor1_client/models/replication_policy.rb +306 -0
  238. data/lib/harbor1_client/models/replication_task.rb +266 -0
  239. data/lib/harbor1_client/models/replication_trigger.rb +194 -0
  240. data/lib/harbor1_client/models/repo_signature.rb +195 -0
  241. data/lib/harbor1_client/models/report.rb +216 -0
  242. data/lib/harbor1_client/models/repository.rb +277 -0
  243. data/lib/harbor1_client/models/repository_description.rb +185 -0
  244. data/lib/harbor1_client/models/resource.rb +187 -0
  245. data/lib/harbor1_client/models/resource_list.rb +175 -0
  246. data/lib/harbor1_client/models/retag_req.rb +205 -0
  247. data/lib/harbor1_client/models/retention_execution.rb +238 -0
  248. data/lib/harbor1_client/models/retention_execution_task.rb +274 -0
  249. data/lib/harbor1_client/models/retention_metadata.rb +212 -0
  250. data/lib/harbor1_client/models/retention_policy.rb +223 -0
  251. data/lib/harbor1_client/models/retention_policy_scope.rb +193 -0
  252. data/lib/harbor1_client/models/retention_rule.rb +253 -0
  253. data/lib/harbor1_client/models/retention_rule_metadata.rb +218 -0
  254. data/lib/harbor1_client/models/retention_rule_param_metadata.rb +203 -0
  255. data/lib/harbor1_client/models/retention_rule_trigger.rb +202 -0
  256. data/lib/harbor1_client/models/retention_selector.rb +202 -0
  257. data/lib/harbor1_client/models/retention_selector_metadata.rb +205 -0
  258. data/lib/harbor1_client/models/robot_account.rb +256 -0
  259. data/lib/harbor1_client/models/robot_account_access.rb +195 -0
  260. data/lib/harbor1_client/models/robot_account_create.rb +207 -0
  261. data/lib/harbor1_client/models/robot_account_post_rep.rb +195 -0
  262. data/lib/harbor1_client/models/robot_account_update.rb +185 -0
  263. data/lib/harbor1_client/models/role.rb +214 -0
  264. data/lib/harbor1_client/models/role_param.rb +197 -0
  265. data/lib/harbor1_client/models/role_request.rb +185 -0
  266. data/lib/harbor1_client/models/scan_overview.rb +176 -0
  267. data/lib/harbor1_client/models/scanner.rb +205 -0
  268. data/lib/harbor1_client/models/scanner_adapter_metadata.rb +207 -0
  269. data/lib/harbor1_client/models/scanner_capability.rb +197 -0
  270. data/lib/harbor1_client/models/scanner_registration.rb +328 -0
  271. data/lib/harbor1_client/models/scanner_registration_req.rb +263 -0
  272. data/lib/harbor1_client/models/scanner_registration_settings.rb +217 -0
  273. data/lib/harbor1_client/models/search.rb +211 -0
  274. data/lib/harbor1_client/models/search_repository.rb +235 -0
  275. data/lib/harbor1_client/models/search_result.rb +205 -0
  276. data/lib/harbor1_client/models/security_report.rb +185 -0
  277. data/lib/harbor1_client/models/statistic_map.rb +235 -0
  278. data/lib/harbor1_client/models/stats.rb +218 -0
  279. data/lib/harbor1_client/models/storage.rb +195 -0
  280. data/lib/harbor1_client/models/string_config_item.rb +195 -0
  281. data/lib/harbor1_client/models/system_info.rb +187 -0
  282. data/lib/harbor1_client/models/tags.rb +185 -0
  283. data/lib/harbor1_client/models/trigger_settings.rb +185 -0
  284. data/lib/harbor1_client/models/unauthorized_chart_api_error.rb +191 -0
  285. data/lib/harbor1_client/models/user.rb +302 -0
  286. data/lib/harbor1_client/models/user_entity.rb +195 -0
  287. data/lib/harbor1_client/models/user_group.rb +215 -0
  288. data/lib/harbor1_client/models/user_profile.rb +205 -0
  289. data/lib/harbor1_client/models/user_search.rb +194 -0
  290. data/lib/harbor1_client/models/vuln_namespace_timestamp.rb +195 -0
  291. data/lib/harbor1_client/models/vulnerability_item.rb +247 -0
  292. data/lib/harbor1_client/models/vulnerability_summary.rb +208 -0
  293. data/lib/harbor1_client/models/webhook_job.rb +256 -0
  294. data/lib/harbor1_client/models/webhook_last_trigger.rb +216 -0
  295. data/lib/harbor1_client/models/webhook_policy.rb +278 -0
  296. data/lib/harbor1_client/models/webhook_target_object.rb +216 -0
  297. data/lib/harbor1_client/version.rb +15 -0
  298. data/spec/api/chart_repository_api_spec.rb +196 -0
  299. data/spec/api/label_api_spec.rb +79 -0
  300. data/spec/api/products_api_spec.rb +2010 -0
  301. data/spec/api/quota_api_spec.rb +60 -0
  302. data/spec/api/retention_api_spec.rb +136 -0
  303. data/spec/api/robot_account_api_spec.rb +100 -0
  304. data/spec/api/scan_api_spec.rb +98 -0
  305. data/spec/api/scanners_api_spec.rb +169 -0
  306. data/spec/api/system_api_spec.rb +70 -0
  307. data/spec/api_client_spec.rb +243 -0
  308. data/spec/configuration_spec.rb +42 -0
  309. data/spec/models/access_log_spec.rb +71 -0
  310. data/spec/models/action_1_spec.rb +41 -0
  311. data/spec/models/action_spec.rb +41 -0
  312. data/spec/models/admin_job_schedule_obj_spec.rb +47 -0
  313. data/spec/models/admin_job_schedule_spec.rb +41 -0
  314. data/spec/models/bad_request_formated_error_spec.rb +41 -0
  315. data/spec/models/bool_config_item_spec.rb +47 -0
  316. data/spec/models/chart_api_error_spec.rb +41 -0
  317. data/spec/models/chart_info_entry_spec.rb +83 -0
  318. data/spec/models/chart_info_list_spec.rb +35 -0
  319. data/spec/models/chart_metadata_spec.rb +101 -0
  320. data/spec/models/chart_version_details_spec.rb +71 -0
  321. data/spec/models/chart_version_spec.rb +131 -0
  322. data/spec/models/chart_versions_spec.rb +35 -0
  323. data/spec/models/component_health_status_spec.rb +53 -0
  324. data/spec/models/component_overview_entry_spec.rb +47 -0
  325. data/spec/models/configurations_response_spec.rb +239 -0
  326. data/spec/models/configurations_scan_all_policy_parameter_spec.rb +41 -0
  327. data/spec/models/configurations_scan_all_policy_spec.rb +47 -0
  328. data/spec/models/configurations_spec.rb +245 -0
  329. data/spec/models/conflict_formated_error_spec.rb +41 -0
  330. data/spec/models/cve_whitelist_item_spec.rb +41 -0
  331. data/spec/models/cve_whitelist_spec.rb +59 -0
  332. data/spec/models/dependency_spec.rb +53 -0
  333. data/spec/models/detailed_tag_spec.rb +101 -0
  334. data/spec/models/digital_signature_spec.rb +47 -0
  335. data/spec/models/email_server_setting_spec.rb +71 -0
  336. data/spec/models/endpoint_spec.rb +47 -0
  337. data/spec/models/filter_style_spec.rb +53 -0
  338. data/spec/models/forbidden_chart_api_error_spec.rb +41 -0
  339. data/spec/models/gc_result_spec.rb +83 -0
  340. data/spec/models/general_info_clair_vulnerability_status_spec.rb +47 -0
  341. data/spec/models/general_info_spec.rb +113 -0
  342. data/spec/models/has_admin_role_spec.rb +41 -0
  343. data/spec/models/immutable_tag_rule_spec.rb +59 -0
  344. data/spec/models/inline_response_200_spec.rb +41 -0
  345. data/spec/models/input_secret_spec.rb +41 -0
  346. data/spec/models/insufficient_storage_chart_api_error_spec.rb +41 -0
  347. data/spec/models/integer_config_item_spec.rb +47 -0
  348. data/spec/models/internal_chart_api_error_spec.rb +41 -0
  349. data/spec/models/is_default_spec.rb +41 -0
  350. data/spec/models/job_status_spec.rb +83 -0
  351. data/spec/models/label_spec.rb +89 -0
  352. data/spec/models/labels_spec.rb +35 -0
  353. data/spec/models/ldap_conf_spec.rb +83 -0
  354. data/spec/models/ldap_failed_import_users_spec.rb +47 -0
  355. data/spec/models/ldap_import_users_spec.rb +41 -0
  356. data/spec/models/ldap_users_spec.rb +53 -0
  357. data/spec/models/manifest_spec.rb +47 -0
  358. data/spec/models/namespace_spec.rb +47 -0
  359. data/spec/models/native_report_summary_spec.rb +77 -0
  360. data/spec/models/not_found_chart_api_error_spec.rb +41 -0
  361. data/spec/models/overall_health_status_spec.rb +47 -0
  362. data/spec/models/password_spec.rb +47 -0
  363. data/spec/models/permission_spec.rb +47 -0
  364. data/spec/models/ping_registry_spec.rb +77 -0
  365. data/spec/models/project_member_entity_spec.rb +77 -0
  366. data/spec/models/project_member_spec.rb +53 -0
  367. data/spec/models/project_metadata_spec.rb +71 -0
  368. data/spec/models/project_req_spec.rb +65 -0
  369. data/spec/models/project_scanner_spec.rb +41 -0
  370. data/spec/models/project_spec.rb +119 -0
  371. data/spec/models/project_summary_quota_spec.rb +47 -0
  372. data/spec/models/project_summary_spec.rb +77 -0
  373. data/spec/models/put_registry_spec.rb +77 -0
  374. data/spec/models/quota_ref_object_spec.rb +35 -0
  375. data/spec/models/quota_spec.rb +71 -0
  376. data/spec/models/quota_switcher_spec.rb +41 -0
  377. data/spec/models/quota_update_req_spec.rb +41 -0
  378. data/spec/models/registry_credential_spec.rb +53 -0
  379. data/spec/models/registry_info_spec.rb +59 -0
  380. data/spec/models/registry_spec.rb +95 -0
  381. data/spec/models/replication_execution_spec.rb +107 -0
  382. data/spec/models/replication_filter_spec.rb +47 -0
  383. data/spec/models/replication_policy_spec.rb +113 -0
  384. data/spec/models/replication_task_spec.rb +89 -0
  385. data/spec/models/replication_trigger_spec.rb +47 -0
  386. data/spec/models/repo_signature_spec.rb +47 -0
  387. data/spec/models/report_spec.rb +59 -0
  388. data/spec/models/repository_description_spec.rb +41 -0
  389. data/spec/models/repository_spec.rb +95 -0
  390. data/spec/models/resource_list_spec.rb +35 -0
  391. data/spec/models/resource_spec.rb +41 -0
  392. data/spec/models/retag_req_spec.rb +53 -0
  393. data/spec/models/retention_execution_spec.rb +77 -0
  394. data/spec/models/retention_execution_task_spec.rb +101 -0
  395. data/spec/models/retention_metadata_spec.rb +53 -0
  396. data/spec/models/retention_policy_scope_spec.rb +47 -0
  397. data/spec/models/retention_policy_spec.rb +65 -0
  398. data/spec/models/retention_rule_metadata_spec.rb +59 -0
  399. data/spec/models/retention_rule_param_metadata_spec.rb +53 -0
  400. data/spec/models/retention_rule_spec.rb +83 -0
  401. data/spec/models/retention_rule_trigger_spec.rb +53 -0
  402. data/spec/models/retention_selector_metadata_spec.rb +53 -0
  403. data/spec/models/retention_selector_spec.rb +53 -0
  404. data/spec/models/robot_account_access_spec.rb +47 -0
  405. data/spec/models/robot_account_create_spec.rb +53 -0
  406. data/spec/models/robot_account_post_rep_spec.rb +47 -0
  407. data/spec/models/robot_account_spec.rb +83 -0
  408. data/spec/models/robot_account_update_spec.rb +41 -0
  409. data/spec/models/role_param_spec.rb +47 -0
  410. data/spec/models/role_request_spec.rb +41 -0
  411. data/spec/models/role_spec.rb +59 -0
  412. data/spec/models/scan_overview_spec.rb +35 -0
  413. data/spec/models/scanner_adapter_metadata_spec.rb +53 -0
  414. data/spec/models/scanner_capability_spec.rb +47 -0
  415. data/spec/models/scanner_registration_req_spec.rb +83 -0
  416. data/spec/models/scanner_registration_settings_spec.rb +59 -0
  417. data/spec/models/scanner_registration_spec.rb +119 -0
  418. data/spec/models/scanner_spec.rb +53 -0
  419. data/spec/models/search_repository_spec.rb +71 -0
  420. data/spec/models/search_result_spec.rb +53 -0
  421. data/spec/models/search_spec.rb +53 -0
  422. data/spec/models/security_report_spec.rb +41 -0
  423. data/spec/models/statistic_map_spec.rb +71 -0
  424. data/spec/models/stats_spec.rb +59 -0
  425. data/spec/models/storage_spec.rb +47 -0
  426. data/spec/models/string_config_item_spec.rb +47 -0
  427. data/spec/models/system_info_spec.rb +41 -0
  428. data/spec/models/tags_spec.rb +41 -0
  429. data/spec/models/trigger_settings_spec.rb +41 -0
  430. data/spec/models/unauthorized_chart_api_error_spec.rb +41 -0
  431. data/spec/models/user_entity_spec.rb +47 -0
  432. data/spec/models/user_group_spec.rb +59 -0
  433. data/spec/models/user_profile_spec.rb +53 -0
  434. data/spec/models/user_search_spec.rb +47 -0
  435. data/spec/models/user_spec.rb +119 -0
  436. data/spec/models/vuln_namespace_timestamp_spec.rb +47 -0
  437. data/spec/models/vulnerability_item_spec.rb +77 -0
  438. data/spec/models/vulnerability_summary_spec.rb +53 -0
  439. data/spec/models/webhook_job_spec.rb +83 -0
  440. data/spec/models/webhook_last_trigger_spec.rb +59 -0
  441. data/spec/models/webhook_policy_spec.rb +95 -0
  442. data/spec/models/webhook_target_object_spec.rb +59 -0
  443. data/spec/spec_helper.rb +111 -0
  444. metadata +832 -0
@@ -0,0 +1,203 @@
1
+ =begin
2
+ #Harbor API
3
+
4
+ #These APIs provide services for manipulating Harbor project.
5
+
6
+ OpenAPI spec version: 1.10.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.17
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Harbor1Client
16
+ class ProjectMember
17
+ # The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for master
18
+ attr_accessor :role_id
19
+
20
+ attr_accessor :member_user
21
+
22
+ attr_accessor :member_group
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'role_id' => :'role_id',
28
+ :'member_user' => :'member_user',
29
+ :'member_group' => :'member_group'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.swagger_types
35
+ {
36
+ :'role_id' => :'Integer',
37
+ :'member_user' => :'UserEntity',
38
+ :'member_group' => :'UserGroup'
39
+ }
40
+ end
41
+
42
+ # Initializes the object
43
+ # @param [Hash] attributes Model attributes in the form of hash
44
+ def initialize(attributes = {})
45
+ return unless attributes.is_a?(Hash)
46
+
47
+ # convert string to symbol for hash key
48
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
49
+
50
+ if attributes.has_key?(:'role_id')
51
+ self.role_id = attributes[:'role_id']
52
+ end
53
+
54
+ if attributes.has_key?(:'member_user')
55
+ self.member_user = attributes[:'member_user']
56
+ end
57
+
58
+ if attributes.has_key?(:'member_group')
59
+ self.member_group = attributes[:'member_group']
60
+ end
61
+ end
62
+
63
+ # Show invalid properties with the reasons. Usually used together with valid?
64
+ # @return Array for valid properties with the reasons
65
+ def list_invalid_properties
66
+ invalid_properties = Array.new
67
+ invalid_properties
68
+ end
69
+
70
+ # Check to see if the all the properties in the model are valid
71
+ # @return true if the model is valid
72
+ def valid?
73
+ true
74
+ end
75
+
76
+ # Checks equality by comparing each attribute.
77
+ # @param [Object] Object to be compared
78
+ def ==(o)
79
+ return true if self.equal?(o)
80
+ self.class == o.class &&
81
+ role_id == o.role_id &&
82
+ member_user == o.member_user &&
83
+ member_group == o.member_group
84
+ end
85
+
86
+ # @see the `==` method
87
+ # @param [Object] Object to be compared
88
+ def eql?(o)
89
+ self == o
90
+ end
91
+
92
+ # Calculates hash code according to all attributes.
93
+ # @return [Fixnum] Hash code
94
+ def hash
95
+ [role_id, member_user, member_group].hash
96
+ end
97
+
98
+ # Builds the object from hash
99
+ # @param [Hash] attributes Model attributes in the form of hash
100
+ # @return [Object] Returns the model itself
101
+ def build_from_hash(attributes)
102
+ return nil unless attributes.is_a?(Hash)
103
+ self.class.swagger_types.each_pair do |key, type|
104
+ if type =~ /\AArray<(.*)>/i
105
+ # check to ensure the input is an array given that the attribute
106
+ # is documented as an array but the input is not
107
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
108
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
109
+ end
110
+ elsif !attributes[self.class.attribute_map[key]].nil?
111
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
112
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
113
+ end
114
+
115
+ self
116
+ end
117
+
118
+ # Deserializes the data based on type
119
+ # @param string type Data type
120
+ # @param string value Value to be deserialized
121
+ # @return [Object] Deserialized data
122
+ def _deserialize(type, value)
123
+ case type.to_sym
124
+ when :DateTime
125
+ DateTime.parse(value)
126
+ when :Date
127
+ Date.parse(value)
128
+ when :String
129
+ value.to_s
130
+ when :Integer
131
+ value.to_i
132
+ when :Float
133
+ value.to_f
134
+ when :BOOLEAN
135
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
136
+ true
137
+ else
138
+ false
139
+ end
140
+ when :Object
141
+ # generic object (usually a Hash), return directly
142
+ value
143
+ when /\AArray<(?<inner_type>.+)>\z/
144
+ inner_type = Regexp.last_match[:inner_type]
145
+ value.map { |v| _deserialize(inner_type, v) }
146
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
147
+ k_type = Regexp.last_match[:k_type]
148
+ v_type = Regexp.last_match[:v_type]
149
+ {}.tap do |hash|
150
+ value.each do |k, v|
151
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
152
+ end
153
+ end
154
+ else # model
155
+ temp_model = Harbor1Client.const_get(type).new
156
+ temp_model.build_from_hash(value)
157
+ end
158
+ end
159
+
160
+ # Returns the string representation of the object
161
+ # @return [String] String presentation of the object
162
+ def to_s
163
+ to_hash.to_s
164
+ end
165
+
166
+ # to_body is an alias to to_hash (backward compatibility)
167
+ # @return [Hash] Returns the object in the form of hash
168
+ def to_body
169
+ to_hash
170
+ end
171
+
172
+ # Returns the object in the form of hash
173
+ # @return [Hash] Returns the object in the form of hash
174
+ def to_hash
175
+ hash = {}
176
+ self.class.attribute_map.each_pair do |attr, param|
177
+ value = self.send(attr)
178
+ next if value.nil?
179
+ hash[param] = _to_hash(value)
180
+ end
181
+ hash
182
+ end
183
+
184
+ # Outputs non-array value in the form of hash
185
+ # For object, use to_hash. Otherwise, just return the value
186
+ # @param [Object] value Any valid value
187
+ # @return [Hash] Returns the value in the form of hash
188
+ def _to_hash(value)
189
+ if value.is_a?(Array)
190
+ value.compact.map { |v| _to_hash(v) }
191
+ elsif value.is_a?(Hash)
192
+ {}.tap do |hash|
193
+ value.each { |k, v| hash[k] = _to_hash(v) }
194
+ end
195
+ elsif value.respond_to? :to_hash
196
+ value.to_hash
197
+ else
198
+ value
199
+ end
200
+ end
201
+
202
+ end
203
+ end
@@ -0,0 +1,245 @@
1
+ =begin
2
+ #Harbor API
3
+
4
+ #These APIs provide services for manipulating Harbor project.
5
+
6
+ OpenAPI spec version: 1.10.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.17
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Harbor1Client
16
+ class ProjectMemberEntity
17
+ # the project member id
18
+ attr_accessor :id
19
+
20
+ # the project id
21
+ attr_accessor :project_id
22
+
23
+ # the name of the group member.
24
+ attr_accessor :entity_name
25
+
26
+ # the name of the role
27
+ attr_accessor :role_name
28
+
29
+ # the role id
30
+ attr_accessor :role_id
31
+
32
+ # the id of entity, if the member is a user, it is user_id in user table. if the member is a user group, it is the user group's ID in user_group table.
33
+ attr_accessor :entity_id
34
+
35
+ # the entity's type, u for user entity, g for group entity.
36
+ attr_accessor :entity_type
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ def self.attribute_map
40
+ {
41
+ :'id' => :'id',
42
+ :'project_id' => :'project_id',
43
+ :'entity_name' => :'entity_name',
44
+ :'role_name' => :'role_name',
45
+ :'role_id' => :'role_id',
46
+ :'entity_id' => :'entity_id',
47
+ :'entity_type' => :'entity_type'
48
+ }
49
+ end
50
+
51
+ # Attribute type mapping.
52
+ def self.swagger_types
53
+ {
54
+ :'id' => :'Integer',
55
+ :'project_id' => :'Integer',
56
+ :'entity_name' => :'String',
57
+ :'role_name' => :'String',
58
+ :'role_id' => :'Integer',
59
+ :'entity_id' => :'Integer',
60
+ :'entity_type' => :'String'
61
+ }
62
+ end
63
+
64
+ # Initializes the object
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ def initialize(attributes = {})
67
+ return unless attributes.is_a?(Hash)
68
+
69
+ # convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
71
+
72
+ if attributes.has_key?(:'id')
73
+ self.id = attributes[:'id']
74
+ end
75
+
76
+ if attributes.has_key?(:'project_id')
77
+ self.project_id = attributes[:'project_id']
78
+ end
79
+
80
+ if attributes.has_key?(:'entity_name')
81
+ self.entity_name = attributes[:'entity_name']
82
+ end
83
+
84
+ if attributes.has_key?(:'role_name')
85
+ self.role_name = attributes[:'role_name']
86
+ end
87
+
88
+ if attributes.has_key?(:'role_id')
89
+ self.role_id = attributes[:'role_id']
90
+ end
91
+
92
+ if attributes.has_key?(:'entity_id')
93
+ self.entity_id = attributes[:'entity_id']
94
+ end
95
+
96
+ if attributes.has_key?(:'entity_type')
97
+ self.entity_type = attributes[:'entity_type']
98
+ end
99
+ end
100
+
101
+ # Show invalid properties with the reasons. Usually used together with valid?
102
+ # @return Array for valid properties with the reasons
103
+ def list_invalid_properties
104
+ invalid_properties = Array.new
105
+ invalid_properties
106
+ end
107
+
108
+ # Check to see if the all the properties in the model are valid
109
+ # @return true if the model is valid
110
+ def valid?
111
+ true
112
+ end
113
+
114
+ # Checks equality by comparing each attribute.
115
+ # @param [Object] Object to be compared
116
+ def ==(o)
117
+ return true if self.equal?(o)
118
+ self.class == o.class &&
119
+ id == o.id &&
120
+ project_id == o.project_id &&
121
+ entity_name == o.entity_name &&
122
+ role_name == o.role_name &&
123
+ role_id == o.role_id &&
124
+ entity_id == o.entity_id &&
125
+ entity_type == o.entity_type
126
+ end
127
+
128
+ # @see the `==` method
129
+ # @param [Object] Object to be compared
130
+ def eql?(o)
131
+ self == o
132
+ end
133
+
134
+ # Calculates hash code according to all attributes.
135
+ # @return [Fixnum] Hash code
136
+ def hash
137
+ [id, project_id, entity_name, role_name, role_id, entity_id, entity_type].hash
138
+ end
139
+
140
+ # Builds the object from hash
141
+ # @param [Hash] attributes Model attributes in the form of hash
142
+ # @return [Object] Returns the model itself
143
+ def build_from_hash(attributes)
144
+ return nil unless attributes.is_a?(Hash)
145
+ self.class.swagger_types.each_pair do |key, type|
146
+ if type =~ /\AArray<(.*)>/i
147
+ # check to ensure the input is an array given that the attribute
148
+ # is documented as an array but the input is not
149
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
150
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
151
+ end
152
+ elsif !attributes[self.class.attribute_map[key]].nil?
153
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
154
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
155
+ end
156
+
157
+ self
158
+ end
159
+
160
+ # Deserializes the data based on type
161
+ # @param string type Data type
162
+ # @param string value Value to be deserialized
163
+ # @return [Object] Deserialized data
164
+ def _deserialize(type, value)
165
+ case type.to_sym
166
+ when :DateTime
167
+ DateTime.parse(value)
168
+ when :Date
169
+ Date.parse(value)
170
+ when :String
171
+ value.to_s
172
+ when :Integer
173
+ value.to_i
174
+ when :Float
175
+ value.to_f
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
+ temp_model = Harbor1Client.const_get(type).new
198
+ temp_model.build_from_hash(value)
199
+ end
200
+ end
201
+
202
+ # Returns the string representation of the object
203
+ # @return [String] String presentation of the object
204
+ def to_s
205
+ to_hash.to_s
206
+ end
207
+
208
+ # to_body is an alias to to_hash (backward compatibility)
209
+ # @return [Hash] Returns the object in the form of hash
210
+ def to_body
211
+ to_hash
212
+ end
213
+
214
+ # Returns the object in the form of hash
215
+ # @return [Hash] Returns the object in the form of hash
216
+ def to_hash
217
+ hash = {}
218
+ self.class.attribute_map.each_pair do |attr, param|
219
+ value = self.send(attr)
220
+ next if value.nil?
221
+ hash[param] = _to_hash(value)
222
+ end
223
+ hash
224
+ end
225
+
226
+ # Outputs non-array value in the form of hash
227
+ # For object, use to_hash. Otherwise, just return the value
228
+ # @param [Object] value Any valid value
229
+ # @return [Hash] Returns the value in the form of hash
230
+ def _to_hash(value)
231
+ if value.is_a?(Array)
232
+ value.compact.map { |v| _to_hash(v) }
233
+ elsif value.is_a?(Hash)
234
+ {}.tap do |hash|
235
+ value.each { |k, v| hash[k] = _to_hash(v) }
236
+ end
237
+ elsif value.respond_to? :to_hash
238
+ value.to_hash
239
+ else
240
+ value
241
+ end
242
+ end
243
+
244
+ end
245
+ end
@@ -0,0 +1,235 @@
1
+ =begin
2
+ #Harbor API
3
+
4
+ #These APIs provide services for manipulating Harbor project.
5
+
6
+ OpenAPI spec version: 1.10.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.17
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Harbor1Client
16
+ class ProjectMetadata
17
+ # The public status of the project. The valid values are \"true\", \"false\".
18
+ attr_accessor :public
19
+
20
+ # Whether content trust is enabled or not. If it is enabled, user can't pull unsigned images from this project. The valid values are \"true\", \"false\".
21
+ attr_accessor :enable_content_trust
22
+
23
+ # Whether prevent the vulnerable images from running. The valid values are \"true\", \"false\".
24
+ attr_accessor :prevent_vul
25
+
26
+ # If the vulnerability is high than severity defined here, the images can't be pulled. The valid values are \"none\", \"low\", \"medium\", \"high\", \"critical\".
27
+ attr_accessor :severity
28
+
29
+ # Whether scan images automatically when pushing. The valid values are \"true\", \"false\".
30
+ attr_accessor :auto_scan
31
+
32
+ # Whether this project reuse the system level CVE whitelist as the whitelist of its own. The valid values are \"true\", \"false\". If it is set to \"true\" the actual whitelist associate with this project, if any, will be ignored.
33
+ attr_accessor :reuse_sys_cve_whitelist
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'public' => :'public',
39
+ :'enable_content_trust' => :'enable_content_trust',
40
+ :'prevent_vul' => :'prevent_vul',
41
+ :'severity' => :'severity',
42
+ :'auto_scan' => :'auto_scan',
43
+ :'reuse_sys_cve_whitelist' => :'reuse_sys_cve_whitelist'
44
+ }
45
+ end
46
+
47
+ # Attribute type mapping.
48
+ def self.swagger_types
49
+ {
50
+ :'public' => :'String',
51
+ :'enable_content_trust' => :'String',
52
+ :'prevent_vul' => :'String',
53
+ :'severity' => :'String',
54
+ :'auto_scan' => :'String',
55
+ :'reuse_sys_cve_whitelist' => :'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
+ return unless attributes.is_a?(Hash)
63
+
64
+ # convert string to symbol for hash key
65
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
66
+
67
+ if attributes.has_key?(:'public')
68
+ self.public = attributes[:'public']
69
+ end
70
+
71
+ if attributes.has_key?(:'enable_content_trust')
72
+ self.enable_content_trust = attributes[:'enable_content_trust']
73
+ end
74
+
75
+ if attributes.has_key?(:'prevent_vul')
76
+ self.prevent_vul = attributes[:'prevent_vul']
77
+ end
78
+
79
+ if attributes.has_key?(:'severity')
80
+ self.severity = attributes[:'severity']
81
+ end
82
+
83
+ if attributes.has_key?(:'auto_scan')
84
+ self.auto_scan = attributes[:'auto_scan']
85
+ end
86
+
87
+ if attributes.has_key?(:'reuse_sys_cve_whitelist')
88
+ self.reuse_sys_cve_whitelist = attributes[:'reuse_sys_cve_whitelist']
89
+ end
90
+ end
91
+
92
+ # Show invalid properties with the reasons. Usually used together with valid?
93
+ # @return Array for valid properties with the reasons
94
+ def list_invalid_properties
95
+ invalid_properties = Array.new
96
+ invalid_properties
97
+ end
98
+
99
+ # Check to see if the all the properties in the model are valid
100
+ # @return true if the model is valid
101
+ def valid?
102
+ true
103
+ end
104
+
105
+ # Checks equality by comparing each attribute.
106
+ # @param [Object] Object to be compared
107
+ def ==(o)
108
+ return true if self.equal?(o)
109
+ self.class == o.class &&
110
+ public == o.public &&
111
+ enable_content_trust == o.enable_content_trust &&
112
+ prevent_vul == o.prevent_vul &&
113
+ severity == o.severity &&
114
+ auto_scan == o.auto_scan &&
115
+ reuse_sys_cve_whitelist == o.reuse_sys_cve_whitelist
116
+ end
117
+
118
+ # @see the `==` method
119
+ # @param [Object] Object to be compared
120
+ def eql?(o)
121
+ self == o
122
+ end
123
+
124
+ # Calculates hash code according to all attributes.
125
+ # @return [Fixnum] Hash code
126
+ def hash
127
+ [public, enable_content_trust, prevent_vul, severity, auto_scan, reuse_sys_cve_whitelist].hash
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.swagger_types.each_pair do |key, type|
136
+ if type =~ /\AArray<(.*)>/i
137
+ # check to ensure the input is an array given that the attribute
138
+ # is documented as an array but the input is not
139
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
140
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
141
+ end
142
+ elsif !attributes[self.class.attribute_map[key]].nil?
143
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
144
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
145
+ end
146
+
147
+ self
148
+ end
149
+
150
+ # Deserializes the data based on type
151
+ # @param string type Data type
152
+ # @param string value Value to be deserialized
153
+ # @return [Object] Deserialized data
154
+ def _deserialize(type, value)
155
+ case type.to_sym
156
+ when :DateTime
157
+ DateTime.parse(value)
158
+ when :Date
159
+ Date.parse(value)
160
+ when :String
161
+ value.to_s
162
+ when :Integer
163
+ value.to_i
164
+ when :Float
165
+ value.to_f
166
+ when :BOOLEAN
167
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
168
+ true
169
+ else
170
+ false
171
+ end
172
+ when :Object
173
+ # generic object (usually a Hash), return directly
174
+ value
175
+ when /\AArray<(?<inner_type>.+)>\z/
176
+ inner_type = Regexp.last_match[:inner_type]
177
+ value.map { |v| _deserialize(inner_type, v) }
178
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
179
+ k_type = Regexp.last_match[:k_type]
180
+ v_type = Regexp.last_match[:v_type]
181
+ {}.tap do |hash|
182
+ value.each do |k, v|
183
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
184
+ end
185
+ end
186
+ else # model
187
+ temp_model = Harbor1Client.const_get(type).new
188
+ temp_model.build_from_hash(value)
189
+ end
190
+ end
191
+
192
+ # Returns the string representation of the object
193
+ # @return [String] String presentation of the object
194
+ def to_s
195
+ to_hash.to_s
196
+ end
197
+
198
+ # to_body is an alias to to_hash (backward compatibility)
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_body
201
+ to_hash
202
+ end
203
+
204
+ # Returns the object in the form of hash
205
+ # @return [Hash] Returns the object in the form of hash
206
+ def to_hash
207
+ hash = {}
208
+ self.class.attribute_map.each_pair do |attr, param|
209
+ value = self.send(attr)
210
+ next if value.nil?
211
+ hash[param] = _to_hash(value)
212
+ end
213
+ hash
214
+ end
215
+
216
+ # Outputs non-array value in the form of hash
217
+ # For object, use to_hash. Otherwise, just return the value
218
+ # @param [Object] value Any valid value
219
+ # @return [Hash] Returns the value in the form of hash
220
+ def _to_hash(value)
221
+ if value.is_a?(Array)
222
+ value.compact.map { |v| _to_hash(v) }
223
+ elsif value.is_a?(Hash)
224
+ {}.tap do |hash|
225
+ value.each { |k, v| hash[k] = _to_hash(v) }
226
+ end
227
+ elsif value.respond_to? :to_hash
228
+ value.to_hash
229
+ else
230
+ value
231
+ end
232
+ end
233
+
234
+ end
235
+ end