cloudsmith-api 2.0.2 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +13 -5
  4. data/build.json +1 -1
  5. data/docs/Eula.md +1 -1
  6. data/docs/HelmPackageUploadRequest.md +1 -0
  7. data/docs/HexPackageUpload.md +75 -0
  8. data/docs/HexPackageUploadRequest.md +10 -0
  9. data/docs/NestedLicensePolicy.md +1 -0
  10. data/docs/NestedVulnerabilityPolicy.md +1 -0
  11. data/docs/NestedVulnerabilityScanResults.md +1 -1
  12. data/docs/OrganizationPackageLicensePolicy.md +1 -0
  13. data/docs/OrganizationPackageLicensePolicyRequest.md +1 -0
  14. data/docs/OrganizationPackageLicensePolicyRequestPatch.md +1 -0
  15. data/docs/OrganizationPackageVulnerabilityPolicy.md +1 -0
  16. data/docs/OrganizationPackageVulnerabilityPolicyRequest.md +1 -0
  17. data/docs/OrganizationPackageVulnerabilityPolicyRequestPatch.md +1 -0
  18. data/docs/PackagesApi.md +246 -0
  19. data/docs/RepositoryToken.md +1 -1
  20. data/docs/RepositoryTokenRefresh.md +1 -1
  21. data/docs/RepositoryWebhook.md +1 -1
  22. data/docs/StatusBasic.md +1 -1
  23. data/docs/SwiftPackageUpload.md +75 -0
  24. data/docs/SwiftPackageUploadRequest.md +11 -0
  25. data/docs/VulnerabilitiesApi.md +8 -8
  26. data/docs/VulnerabilityScanResults.md +1 -1
  27. data/docs/VulnerabilityScanResultsList.md +1 -1
  28. data/lib/cloudsmith-api/api/packages_api.rb +246 -0
  29. data/lib/cloudsmith-api/api/vulnerabilities_api.rb +13 -13
  30. data/lib/cloudsmith-api/models/eula.rb +0 -5
  31. data/lib/cloudsmith-api/models/helm_package_upload_request.rb +11 -1
  32. data/lib/cloudsmith-api/models/hex_package_upload.rb +850 -0
  33. data/lib/cloudsmith-api/models/hex_package_upload_request.rb +210 -0
  34. data/lib/cloudsmith-api/models/nested_license_policy.rb +10 -1
  35. data/lib/cloudsmith-api/models/nested_vulnerability_policy.rb +10 -1
  36. data/lib/cloudsmith-api/models/nested_vulnerability_scan_results.rb +1 -0
  37. data/lib/cloudsmith-api/models/organization_package_license_policy.rb +10 -1
  38. data/lib/cloudsmith-api/models/organization_package_license_policy_request.rb +10 -1
  39. data/lib/cloudsmith-api/models/organization_package_license_policy_request_patch.rb +10 -1
  40. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy.rb +10 -1
  41. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy_request.rb +13 -4
  42. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy_request_patch.rb +13 -4
  43. data/lib/cloudsmith-api/models/repository_token.rb +1 -0
  44. data/lib/cloudsmith-api/models/repository_token_refresh.rb +1 -0
  45. data/lib/cloudsmith-api/models/repository_webhook.rb +1 -0
  46. data/lib/cloudsmith-api/models/status_basic.rb +1 -1
  47. data/lib/cloudsmith-api/models/swift_package_upload.rb +855 -0
  48. data/lib/cloudsmith-api/models/swift_package_upload_request.rb +225 -0
  49. data/lib/cloudsmith-api/models/vulnerability_scan_results.rb +1 -0
  50. data/lib/cloudsmith-api/models/vulnerability_scan_results_list.rb +1 -0
  51. data/lib/cloudsmith-api/version.rb +1 -1
  52. data/lib/cloudsmith-api.rb +4 -0
  53. data/spec/api/packages_api_spec.rb +56 -0
  54. data/spec/api/vulnerabilities_api_spec.rb +3 -3
  55. data/spec/models/helm_package_upload_request_spec.rb +6 -0
  56. data/spec/models/hex_package_upload_request_spec.rb +53 -0
  57. data/spec/models/hex_package_upload_spec.rb +447 -0
  58. data/spec/models/nested_license_policy_spec.rb +6 -0
  59. data/spec/models/nested_vulnerability_policy_spec.rb +6 -0
  60. data/spec/models/organization_package_license_policy_request_patch_spec.rb +6 -0
  61. data/spec/models/organization_package_license_policy_request_spec.rb +6 -0
  62. data/spec/models/organization_package_license_policy_spec.rb +6 -0
  63. data/spec/models/organization_package_vulnerability_policy_request_patch_spec.rb +6 -0
  64. data/spec/models/organization_package_vulnerability_policy_request_spec.rb +6 -0
  65. data/spec/models/organization_package_vulnerability_policy_spec.rb +6 -0
  66. data/spec/models/swift_package_upload_request_spec.rb +59 -0
  67. data/spec/models/swift_package_upload_spec.rb +447 -0
  68. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.20/gem_make.out +1 -1
  69. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.5/gem_make.out +2 -2
  70. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/gem_make.out +1 -1
  71. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/mkmf.log +1 -1
  72. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +2 -2
  73. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/Makefile +2 -2
  74. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/Makefile +2 -2
  75. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/Makefile +2 -2
  76. metadata +18 -2
@@ -0,0 +1,855 @@
1
+ =begin
2
+ #Cloudsmith API (v1)
3
+
4
+ #The API to the Cloudsmith Service
5
+
6
+ OpenAPI spec version: v1
7
+ Contact: support@cloudsmith.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.26
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CloudsmithApi
16
+ class SwiftPackageUpload
17
+ attr_accessor :architectures
18
+
19
+ attr_accessor :cdn_url
20
+
21
+ attr_accessor :checksum_md5
22
+
23
+ attr_accessor :checksum_sha1
24
+
25
+ attr_accessor :checksum_sha256
26
+
27
+ attr_accessor :checksum_sha512
28
+
29
+ # A checksum of all of the package's dependencies.
30
+ attr_accessor :dependencies_checksum_md5
31
+
32
+ attr_accessor :dependencies_url
33
+
34
+ # A textual description of this package.
35
+ attr_accessor :description
36
+
37
+ attr_accessor :distro
38
+
39
+ attr_accessor :distro_version
40
+
41
+ attr_accessor :downloads
42
+
43
+ # The epoch of the package version (if any).
44
+ attr_accessor :epoch
45
+
46
+ attr_accessor :extension
47
+
48
+ attr_accessor :filename
49
+
50
+ attr_accessor :files
51
+
52
+ attr_accessor :format
53
+
54
+ attr_accessor :format_url
55
+
56
+ # Unique and permanent identifier for the package.
57
+ attr_accessor :identifier_perm
58
+
59
+ attr_accessor :indexed
60
+
61
+ attr_accessor :is_downloadable
62
+
63
+ attr_accessor :is_quarantined
64
+
65
+ attr_accessor :is_sync_awaiting
66
+
67
+ attr_accessor :is_sync_completed
68
+
69
+ attr_accessor :is_sync_failed
70
+
71
+ attr_accessor :is_sync_in_flight
72
+
73
+ attr_accessor :is_sync_in_progress
74
+
75
+ # The license of this package.
76
+ attr_accessor :license
77
+
78
+ # The name of this package.
79
+ attr_accessor :name
80
+
81
+ attr_accessor :namespace
82
+
83
+ attr_accessor :namespace_url
84
+
85
+ attr_accessor :num_files
86
+
87
+ attr_accessor :origin_repository
88
+
89
+ attr_accessor :origin_repository_url
90
+
91
+ # The type of package contents.
92
+ attr_accessor :package_type
93
+
94
+ # The release of the package version (if any).
95
+ attr_accessor :release
96
+
97
+ attr_accessor :repository
98
+
99
+ attr_accessor :repository_url
100
+
101
+ # The datetime the security scanning was completed.
102
+ attr_accessor :security_scan_completed_at
103
+
104
+ # The datetime the security scanning was started.
105
+ attr_accessor :security_scan_started_at
106
+
107
+ attr_accessor :security_scan_status
108
+
109
+ # The datetime the security scanning status was updated.
110
+ attr_accessor :security_scan_status_updated_at
111
+
112
+ attr_accessor :self_html_url
113
+
114
+ attr_accessor :self_url
115
+
116
+ attr_accessor :signature_url
117
+
118
+ # The calculated size of the package.
119
+ attr_accessor :size
120
+
121
+ # The public unique identifier for the package.
122
+ attr_accessor :slug
123
+
124
+ attr_accessor :slug_perm
125
+
126
+ # The synchronisation (in progress) stage of the package.
127
+ attr_accessor :stage
128
+
129
+ attr_accessor :stage_str
130
+
131
+ # The datetime the package stage was updated at.
132
+ attr_accessor :stage_updated_at
133
+
134
+ # The synchronisation status of the package.
135
+ attr_accessor :status
136
+
137
+ # A textual description for the synchronous status reason (if any
138
+ attr_accessor :status_reason
139
+
140
+ attr_accessor :status_str
141
+
142
+ # The datetime the package status was updated at.
143
+ attr_accessor :status_updated_at
144
+
145
+ attr_accessor :status_url
146
+
147
+ attr_accessor :subtype
148
+
149
+ # A one-liner synopsis of this package.
150
+ attr_accessor :summary
151
+
152
+ # The datetime the package sync was finished at.
153
+ attr_accessor :sync_finished_at
154
+
155
+ # Synchronisation progress (from 0-100)
156
+ attr_accessor :sync_progress
157
+
158
+ attr_accessor :tags_immutable
159
+
160
+ attr_accessor :type_display
161
+
162
+ # The date this package was uploaded.
163
+ attr_accessor :uploaded_at
164
+
165
+ attr_accessor :uploader
166
+
167
+ attr_accessor :uploader_url
168
+
169
+ # The raw version for this package.
170
+ attr_accessor :version
171
+
172
+ attr_accessor :version_orig
173
+
174
+ attr_accessor :vulnerability_scan_results_url
175
+
176
+ class EnumAttributeValidator
177
+ attr_reader :datatype
178
+ attr_reader :allowable_values
179
+
180
+ def initialize(datatype, allowable_values)
181
+ @allowable_values = allowable_values.map do |value|
182
+ case datatype.to_s
183
+ when /Integer/i
184
+ value.to_i
185
+ when /Float/i
186
+ value.to_f
187
+ else
188
+ value
189
+ end
190
+ end
191
+ end
192
+
193
+ def valid?(value)
194
+ !value || allowable_values.include?(value)
195
+ end
196
+ end
197
+
198
+ # Attribute mapping from ruby-style variable name to JSON key.
199
+ def self.attribute_map
200
+ {
201
+ :'architectures' => :'architectures',
202
+ :'cdn_url' => :'cdn_url',
203
+ :'checksum_md5' => :'checksum_md5',
204
+ :'checksum_sha1' => :'checksum_sha1',
205
+ :'checksum_sha256' => :'checksum_sha256',
206
+ :'checksum_sha512' => :'checksum_sha512',
207
+ :'dependencies_checksum_md5' => :'dependencies_checksum_md5',
208
+ :'dependencies_url' => :'dependencies_url',
209
+ :'description' => :'description',
210
+ :'distro' => :'distro',
211
+ :'distro_version' => :'distro_version',
212
+ :'downloads' => :'downloads',
213
+ :'epoch' => :'epoch',
214
+ :'extension' => :'extension',
215
+ :'filename' => :'filename',
216
+ :'files' => :'files',
217
+ :'format' => :'format',
218
+ :'format_url' => :'format_url',
219
+ :'identifier_perm' => :'identifier_perm',
220
+ :'indexed' => :'indexed',
221
+ :'is_downloadable' => :'is_downloadable',
222
+ :'is_quarantined' => :'is_quarantined',
223
+ :'is_sync_awaiting' => :'is_sync_awaiting',
224
+ :'is_sync_completed' => :'is_sync_completed',
225
+ :'is_sync_failed' => :'is_sync_failed',
226
+ :'is_sync_in_flight' => :'is_sync_in_flight',
227
+ :'is_sync_in_progress' => :'is_sync_in_progress',
228
+ :'license' => :'license',
229
+ :'name' => :'name',
230
+ :'namespace' => :'namespace',
231
+ :'namespace_url' => :'namespace_url',
232
+ :'num_files' => :'num_files',
233
+ :'origin_repository' => :'origin_repository',
234
+ :'origin_repository_url' => :'origin_repository_url',
235
+ :'package_type' => :'package_type',
236
+ :'release' => :'release',
237
+ :'repository' => :'repository',
238
+ :'repository_url' => :'repository_url',
239
+ :'security_scan_completed_at' => :'security_scan_completed_at',
240
+ :'security_scan_started_at' => :'security_scan_started_at',
241
+ :'security_scan_status' => :'security_scan_status',
242
+ :'security_scan_status_updated_at' => :'security_scan_status_updated_at',
243
+ :'self_html_url' => :'self_html_url',
244
+ :'self_url' => :'self_url',
245
+ :'signature_url' => :'signature_url',
246
+ :'size' => :'size',
247
+ :'slug' => :'slug',
248
+ :'slug_perm' => :'slug_perm',
249
+ :'stage' => :'stage',
250
+ :'stage_str' => :'stage_str',
251
+ :'stage_updated_at' => :'stage_updated_at',
252
+ :'status' => :'status',
253
+ :'status_reason' => :'status_reason',
254
+ :'status_str' => :'status_str',
255
+ :'status_updated_at' => :'status_updated_at',
256
+ :'status_url' => :'status_url',
257
+ :'subtype' => :'subtype',
258
+ :'summary' => :'summary',
259
+ :'sync_finished_at' => :'sync_finished_at',
260
+ :'sync_progress' => :'sync_progress',
261
+ :'tags_immutable' => :'tags_immutable',
262
+ :'type_display' => :'type_display',
263
+ :'uploaded_at' => :'uploaded_at',
264
+ :'uploader' => :'uploader',
265
+ :'uploader_url' => :'uploader_url',
266
+ :'version' => :'version',
267
+ :'version_orig' => :'version_orig',
268
+ :'vulnerability_scan_results_url' => :'vulnerability_scan_results_url'
269
+ }
270
+ end
271
+
272
+ # Attribute type mapping.
273
+ def self.swagger_types
274
+ {
275
+ :'architectures' => :'Array<Architecture>',
276
+ :'cdn_url' => :'String',
277
+ :'checksum_md5' => :'String',
278
+ :'checksum_sha1' => :'String',
279
+ :'checksum_sha256' => :'String',
280
+ :'checksum_sha512' => :'String',
281
+ :'dependencies_checksum_md5' => :'String',
282
+ :'dependencies_url' => :'String',
283
+ :'description' => :'String',
284
+ :'distro' => :'Distribution',
285
+ :'distro_version' => :'DistributionVersion',
286
+ :'downloads' => :'Integer',
287
+ :'epoch' => :'Integer',
288
+ :'extension' => :'String',
289
+ :'filename' => :'String',
290
+ :'files' => :'Array<PackageFile>',
291
+ :'format' => :'String',
292
+ :'format_url' => :'String',
293
+ :'identifier_perm' => :'String',
294
+ :'indexed' => :'BOOLEAN',
295
+ :'is_downloadable' => :'BOOLEAN',
296
+ :'is_quarantined' => :'BOOLEAN',
297
+ :'is_sync_awaiting' => :'BOOLEAN',
298
+ :'is_sync_completed' => :'BOOLEAN',
299
+ :'is_sync_failed' => :'BOOLEAN',
300
+ :'is_sync_in_flight' => :'BOOLEAN',
301
+ :'is_sync_in_progress' => :'BOOLEAN',
302
+ :'license' => :'String',
303
+ :'name' => :'String',
304
+ :'namespace' => :'String',
305
+ :'namespace_url' => :'String',
306
+ :'num_files' => :'Integer',
307
+ :'origin_repository' => :'String',
308
+ :'origin_repository_url' => :'String',
309
+ :'package_type' => :'Integer',
310
+ :'release' => :'String',
311
+ :'repository' => :'String',
312
+ :'repository_url' => :'String',
313
+ :'security_scan_completed_at' => :'DateTime',
314
+ :'security_scan_started_at' => :'DateTime',
315
+ :'security_scan_status' => :'String',
316
+ :'security_scan_status_updated_at' => :'DateTime',
317
+ :'self_html_url' => :'String',
318
+ :'self_url' => :'String',
319
+ :'signature_url' => :'String',
320
+ :'size' => :'Integer',
321
+ :'slug' => :'String',
322
+ :'slug_perm' => :'String',
323
+ :'stage' => :'Integer',
324
+ :'stage_str' => :'String',
325
+ :'stage_updated_at' => :'DateTime',
326
+ :'status' => :'Integer',
327
+ :'status_reason' => :'String',
328
+ :'status_str' => :'String',
329
+ :'status_updated_at' => :'DateTime',
330
+ :'status_url' => :'String',
331
+ :'subtype' => :'String',
332
+ :'summary' => :'String',
333
+ :'sync_finished_at' => :'DateTime',
334
+ :'sync_progress' => :'Integer',
335
+ :'tags_immutable' => :'Tags',
336
+ :'type_display' => :'String',
337
+ :'uploaded_at' => :'DateTime',
338
+ :'uploader' => :'String',
339
+ :'uploader_url' => :'String',
340
+ :'version' => :'String',
341
+ :'version_orig' => :'String',
342
+ :'vulnerability_scan_results_url' => :'String'
343
+ }
344
+ end
345
+
346
+ # Initializes the object
347
+ # @param [Hash] attributes Model attributes in the form of hash
348
+ def initialize(attributes = {})
349
+ return unless attributes.is_a?(Hash)
350
+
351
+ # convert string to symbol for hash key
352
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
353
+
354
+ if attributes.has_key?(:'architectures')
355
+ if (value = attributes[:'architectures']).is_a?(Array)
356
+ self.architectures = value
357
+ end
358
+ end
359
+
360
+ if attributes.has_key?(:'cdn_url')
361
+ self.cdn_url = attributes[:'cdn_url']
362
+ end
363
+
364
+ if attributes.has_key?(:'checksum_md5')
365
+ self.checksum_md5 = attributes[:'checksum_md5']
366
+ end
367
+
368
+ if attributes.has_key?(:'checksum_sha1')
369
+ self.checksum_sha1 = attributes[:'checksum_sha1']
370
+ end
371
+
372
+ if attributes.has_key?(:'checksum_sha256')
373
+ self.checksum_sha256 = attributes[:'checksum_sha256']
374
+ end
375
+
376
+ if attributes.has_key?(:'checksum_sha512')
377
+ self.checksum_sha512 = attributes[:'checksum_sha512']
378
+ end
379
+
380
+ if attributes.has_key?(:'dependencies_checksum_md5')
381
+ self.dependencies_checksum_md5 = attributes[:'dependencies_checksum_md5']
382
+ end
383
+
384
+ if attributes.has_key?(:'dependencies_url')
385
+ self.dependencies_url = attributes[:'dependencies_url']
386
+ end
387
+
388
+ if attributes.has_key?(:'description')
389
+ self.description = attributes[:'description']
390
+ end
391
+
392
+ if attributes.has_key?(:'distro')
393
+ self.distro = attributes[:'distro']
394
+ end
395
+
396
+ if attributes.has_key?(:'distro_version')
397
+ self.distro_version = attributes[:'distro_version']
398
+ end
399
+
400
+ if attributes.has_key?(:'downloads')
401
+ self.downloads = attributes[:'downloads']
402
+ end
403
+
404
+ if attributes.has_key?(:'epoch')
405
+ self.epoch = attributes[:'epoch']
406
+ end
407
+
408
+ if attributes.has_key?(:'extension')
409
+ self.extension = attributes[:'extension']
410
+ end
411
+
412
+ if attributes.has_key?(:'filename')
413
+ self.filename = attributes[:'filename']
414
+ end
415
+
416
+ if attributes.has_key?(:'files')
417
+ if (value = attributes[:'files']).is_a?(Array)
418
+ self.files = value
419
+ end
420
+ end
421
+
422
+ if attributes.has_key?(:'format')
423
+ self.format = attributes[:'format']
424
+ end
425
+
426
+ if attributes.has_key?(:'format_url')
427
+ self.format_url = attributes[:'format_url']
428
+ end
429
+
430
+ if attributes.has_key?(:'identifier_perm')
431
+ self.identifier_perm = attributes[:'identifier_perm']
432
+ end
433
+
434
+ if attributes.has_key?(:'indexed')
435
+ self.indexed = attributes[:'indexed']
436
+ end
437
+
438
+ if attributes.has_key?(:'is_downloadable')
439
+ self.is_downloadable = attributes[:'is_downloadable']
440
+ end
441
+
442
+ if attributes.has_key?(:'is_quarantined')
443
+ self.is_quarantined = attributes[:'is_quarantined']
444
+ end
445
+
446
+ if attributes.has_key?(:'is_sync_awaiting')
447
+ self.is_sync_awaiting = attributes[:'is_sync_awaiting']
448
+ end
449
+
450
+ if attributes.has_key?(:'is_sync_completed')
451
+ self.is_sync_completed = attributes[:'is_sync_completed']
452
+ end
453
+
454
+ if attributes.has_key?(:'is_sync_failed')
455
+ self.is_sync_failed = attributes[:'is_sync_failed']
456
+ end
457
+
458
+ if attributes.has_key?(:'is_sync_in_flight')
459
+ self.is_sync_in_flight = attributes[:'is_sync_in_flight']
460
+ end
461
+
462
+ if attributes.has_key?(:'is_sync_in_progress')
463
+ self.is_sync_in_progress = attributes[:'is_sync_in_progress']
464
+ end
465
+
466
+ if attributes.has_key?(:'license')
467
+ self.license = attributes[:'license']
468
+ end
469
+
470
+ if attributes.has_key?(:'name')
471
+ self.name = attributes[:'name']
472
+ end
473
+
474
+ if attributes.has_key?(:'namespace')
475
+ self.namespace = attributes[:'namespace']
476
+ end
477
+
478
+ if attributes.has_key?(:'namespace_url')
479
+ self.namespace_url = attributes[:'namespace_url']
480
+ end
481
+
482
+ if attributes.has_key?(:'num_files')
483
+ self.num_files = attributes[:'num_files']
484
+ end
485
+
486
+ if attributes.has_key?(:'origin_repository')
487
+ self.origin_repository = attributes[:'origin_repository']
488
+ end
489
+
490
+ if attributes.has_key?(:'origin_repository_url')
491
+ self.origin_repository_url = attributes[:'origin_repository_url']
492
+ end
493
+
494
+ if attributes.has_key?(:'package_type')
495
+ self.package_type = attributes[:'package_type']
496
+ end
497
+
498
+ if attributes.has_key?(:'release')
499
+ self.release = attributes[:'release']
500
+ end
501
+
502
+ if attributes.has_key?(:'repository')
503
+ self.repository = attributes[:'repository']
504
+ end
505
+
506
+ if attributes.has_key?(:'repository_url')
507
+ self.repository_url = attributes[:'repository_url']
508
+ end
509
+
510
+ if attributes.has_key?(:'security_scan_completed_at')
511
+ self.security_scan_completed_at = attributes[:'security_scan_completed_at']
512
+ end
513
+
514
+ if attributes.has_key?(:'security_scan_started_at')
515
+ self.security_scan_started_at = attributes[:'security_scan_started_at']
516
+ end
517
+
518
+ if attributes.has_key?(:'security_scan_status')
519
+ self.security_scan_status = attributes[:'security_scan_status']
520
+ else
521
+ self.security_scan_status = 'Awaiting Security Scan'
522
+ end
523
+
524
+ if attributes.has_key?(:'security_scan_status_updated_at')
525
+ self.security_scan_status_updated_at = attributes[:'security_scan_status_updated_at']
526
+ end
527
+
528
+ if attributes.has_key?(:'self_html_url')
529
+ self.self_html_url = attributes[:'self_html_url']
530
+ end
531
+
532
+ if attributes.has_key?(:'self_url')
533
+ self.self_url = attributes[:'self_url']
534
+ end
535
+
536
+ if attributes.has_key?(:'signature_url')
537
+ self.signature_url = attributes[:'signature_url']
538
+ end
539
+
540
+ if attributes.has_key?(:'size')
541
+ self.size = attributes[:'size']
542
+ end
543
+
544
+ if attributes.has_key?(:'slug')
545
+ self.slug = attributes[:'slug']
546
+ end
547
+
548
+ if attributes.has_key?(:'slug_perm')
549
+ self.slug_perm = attributes[:'slug_perm']
550
+ end
551
+
552
+ if attributes.has_key?(:'stage')
553
+ self.stage = attributes[:'stage']
554
+ end
555
+
556
+ if attributes.has_key?(:'stage_str')
557
+ self.stage_str = attributes[:'stage_str']
558
+ end
559
+
560
+ if attributes.has_key?(:'stage_updated_at')
561
+ self.stage_updated_at = attributes[:'stage_updated_at']
562
+ end
563
+
564
+ if attributes.has_key?(:'status')
565
+ self.status = attributes[:'status']
566
+ end
567
+
568
+ if attributes.has_key?(:'status_reason')
569
+ self.status_reason = attributes[:'status_reason']
570
+ end
571
+
572
+ if attributes.has_key?(:'status_str')
573
+ self.status_str = attributes[:'status_str']
574
+ end
575
+
576
+ if attributes.has_key?(:'status_updated_at')
577
+ self.status_updated_at = attributes[:'status_updated_at']
578
+ end
579
+
580
+ if attributes.has_key?(:'status_url')
581
+ self.status_url = attributes[:'status_url']
582
+ end
583
+
584
+ if attributes.has_key?(:'subtype')
585
+ self.subtype = attributes[:'subtype']
586
+ end
587
+
588
+ if attributes.has_key?(:'summary')
589
+ self.summary = attributes[:'summary']
590
+ end
591
+
592
+ if attributes.has_key?(:'sync_finished_at')
593
+ self.sync_finished_at = attributes[:'sync_finished_at']
594
+ end
595
+
596
+ if attributes.has_key?(:'sync_progress')
597
+ self.sync_progress = attributes[:'sync_progress']
598
+ end
599
+
600
+ if attributes.has_key?(:'tags_immutable')
601
+ self.tags_immutable = attributes[:'tags_immutable']
602
+ end
603
+
604
+ if attributes.has_key?(:'type_display')
605
+ self.type_display = attributes[:'type_display']
606
+ end
607
+
608
+ if attributes.has_key?(:'uploaded_at')
609
+ self.uploaded_at = attributes[:'uploaded_at']
610
+ end
611
+
612
+ if attributes.has_key?(:'uploader')
613
+ self.uploader = attributes[:'uploader']
614
+ end
615
+
616
+ if attributes.has_key?(:'uploader_url')
617
+ self.uploader_url = attributes[:'uploader_url']
618
+ end
619
+
620
+ if attributes.has_key?(:'version')
621
+ self.version = attributes[:'version']
622
+ end
623
+
624
+ if attributes.has_key?(:'version_orig')
625
+ self.version_orig = attributes[:'version_orig']
626
+ end
627
+
628
+ if attributes.has_key?(:'vulnerability_scan_results_url')
629
+ self.vulnerability_scan_results_url = attributes[:'vulnerability_scan_results_url']
630
+ end
631
+ end
632
+
633
+ # Show invalid properties with the reasons. Usually used together with valid?
634
+ # @return Array for valid properties with the reasons
635
+ def list_invalid_properties
636
+ invalid_properties = Array.new
637
+ if @version.nil?
638
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
639
+ end
640
+
641
+ invalid_properties
642
+ end
643
+
644
+ # Check to see if the all the properties in the model are valid
645
+ # @return true if the model is valid
646
+ def valid?
647
+ security_scan_status_validator = EnumAttributeValidator.new('String', ['Awaiting Security Scan', 'Security Scanning in Progress', 'Scan Detected Vulnerabilities', 'Scan Detected No Vulnerabilities', 'Security Scanning Disabled', 'Security Scanning Failed', 'Security Scanning Skipped', 'Security Scanning Not Supported'])
648
+ return false unless security_scan_status_validator.valid?(@security_scan_status)
649
+ return false if @version.nil?
650
+ true
651
+ end
652
+
653
+ # Custom attribute writer method checking allowed values (enum).
654
+ # @param [Object] security_scan_status Object to be assigned
655
+ def security_scan_status=(security_scan_status)
656
+ validator = EnumAttributeValidator.new('String', ['Awaiting Security Scan', 'Security Scanning in Progress', 'Scan Detected Vulnerabilities', 'Scan Detected No Vulnerabilities', 'Security Scanning Disabled', 'Security Scanning Failed', 'Security Scanning Skipped', 'Security Scanning Not Supported'])
657
+ unless validator.valid?(security_scan_status)
658
+ fail ArgumentError, 'invalid value for "security_scan_status", must be one of #{validator.allowable_values}.'
659
+ end
660
+ @security_scan_status = security_scan_status
661
+ end
662
+
663
+ # Checks equality by comparing each attribute.
664
+ # @param [Object] Object to be compared
665
+ def ==(o)
666
+ return true if self.equal?(o)
667
+ self.class == o.class &&
668
+ architectures == o.architectures &&
669
+ cdn_url == o.cdn_url &&
670
+ checksum_md5 == o.checksum_md5 &&
671
+ checksum_sha1 == o.checksum_sha1 &&
672
+ checksum_sha256 == o.checksum_sha256 &&
673
+ checksum_sha512 == o.checksum_sha512 &&
674
+ dependencies_checksum_md5 == o.dependencies_checksum_md5 &&
675
+ dependencies_url == o.dependencies_url &&
676
+ description == o.description &&
677
+ distro == o.distro &&
678
+ distro_version == o.distro_version &&
679
+ downloads == o.downloads &&
680
+ epoch == o.epoch &&
681
+ extension == o.extension &&
682
+ filename == o.filename &&
683
+ files == o.files &&
684
+ format == o.format &&
685
+ format_url == o.format_url &&
686
+ identifier_perm == o.identifier_perm &&
687
+ indexed == o.indexed &&
688
+ is_downloadable == o.is_downloadable &&
689
+ is_quarantined == o.is_quarantined &&
690
+ is_sync_awaiting == o.is_sync_awaiting &&
691
+ is_sync_completed == o.is_sync_completed &&
692
+ is_sync_failed == o.is_sync_failed &&
693
+ is_sync_in_flight == o.is_sync_in_flight &&
694
+ is_sync_in_progress == o.is_sync_in_progress &&
695
+ license == o.license &&
696
+ name == o.name &&
697
+ namespace == o.namespace &&
698
+ namespace_url == o.namespace_url &&
699
+ num_files == o.num_files &&
700
+ origin_repository == o.origin_repository &&
701
+ origin_repository_url == o.origin_repository_url &&
702
+ package_type == o.package_type &&
703
+ release == o.release &&
704
+ repository == o.repository &&
705
+ repository_url == o.repository_url &&
706
+ security_scan_completed_at == o.security_scan_completed_at &&
707
+ security_scan_started_at == o.security_scan_started_at &&
708
+ security_scan_status == o.security_scan_status &&
709
+ security_scan_status_updated_at == o.security_scan_status_updated_at &&
710
+ self_html_url == o.self_html_url &&
711
+ self_url == o.self_url &&
712
+ signature_url == o.signature_url &&
713
+ size == o.size &&
714
+ slug == o.slug &&
715
+ slug_perm == o.slug_perm &&
716
+ stage == o.stage &&
717
+ stage_str == o.stage_str &&
718
+ stage_updated_at == o.stage_updated_at &&
719
+ status == o.status &&
720
+ status_reason == o.status_reason &&
721
+ status_str == o.status_str &&
722
+ status_updated_at == o.status_updated_at &&
723
+ status_url == o.status_url &&
724
+ subtype == o.subtype &&
725
+ summary == o.summary &&
726
+ sync_finished_at == o.sync_finished_at &&
727
+ sync_progress == o.sync_progress &&
728
+ tags_immutable == o.tags_immutable &&
729
+ type_display == o.type_display &&
730
+ uploaded_at == o.uploaded_at &&
731
+ uploader == o.uploader &&
732
+ uploader_url == o.uploader_url &&
733
+ version == o.version &&
734
+ version_orig == o.version_orig &&
735
+ vulnerability_scan_results_url == o.vulnerability_scan_results_url
736
+ end
737
+
738
+ # @see the `==` method
739
+ # @param [Object] Object to be compared
740
+ def eql?(o)
741
+ self == o
742
+ end
743
+
744
+ # Calculates hash code according to all attributes.
745
+ # @return [Fixnum] Hash code
746
+ def hash
747
+ [architectures, cdn_url, checksum_md5, checksum_sha1, checksum_sha256, checksum_sha512, dependencies_checksum_md5, dependencies_url, description, distro, distro_version, downloads, epoch, extension, filename, files, format, format_url, identifier_perm, indexed, is_downloadable, is_quarantined, is_sync_awaiting, is_sync_completed, is_sync_failed, is_sync_in_flight, is_sync_in_progress, license, name, namespace, namespace_url, num_files, origin_repository, origin_repository_url, package_type, release, repository, repository_url, security_scan_completed_at, security_scan_started_at, security_scan_status, security_scan_status_updated_at, self_html_url, self_url, signature_url, size, slug, slug_perm, stage, stage_str, stage_updated_at, status, status_reason, status_str, status_updated_at, status_url, subtype, summary, sync_finished_at, sync_progress, tags_immutable, type_display, uploaded_at, uploader, uploader_url, version, version_orig, vulnerability_scan_results_url].hash
748
+ end
749
+
750
+ # Builds the object from hash
751
+ # @param [Hash] attributes Model attributes in the form of hash
752
+ # @return [Object] Returns the model itself
753
+ def build_from_hash(attributes)
754
+ return nil unless attributes.is_a?(Hash)
755
+ self.class.swagger_types.each_pair do |key, type|
756
+ if type =~ /\AArray<(.*)>/i
757
+ # check to ensure the input is an array given that the attribute
758
+ # is documented as an array but the input is not
759
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
760
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
761
+ end
762
+ elsif !attributes[self.class.attribute_map[key]].nil?
763
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
764
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
765
+ end
766
+
767
+ self
768
+ end
769
+
770
+ # Deserializes the data based on type
771
+ # @param string type Data type
772
+ # @param string value Value to be deserialized
773
+ # @return [Object] Deserialized data
774
+ def _deserialize(type, value)
775
+ case type.to_sym
776
+ when :DateTime
777
+ DateTime.parse(value)
778
+ when :Date
779
+ Date.parse(value)
780
+ when :String
781
+ value.to_s
782
+ when :Integer
783
+ value.to_i
784
+ when :Float
785
+ value.to_f
786
+ when :BOOLEAN
787
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
788
+ true
789
+ else
790
+ false
791
+ end
792
+ when :Object
793
+ # generic object (usually a Hash), return directly
794
+ value
795
+ when /\AArray<(?<inner_type>.+)>\z/
796
+ inner_type = Regexp.last_match[:inner_type]
797
+ value.map { |v| _deserialize(inner_type, v) }
798
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
799
+ k_type = Regexp.last_match[:k_type]
800
+ v_type = Regexp.last_match[:v_type]
801
+ {}.tap do |hash|
802
+ value.each do |k, v|
803
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
804
+ end
805
+ end
806
+ else # model
807
+ temp_model = CloudsmithApi.const_get(type).new
808
+ temp_model.build_from_hash(value)
809
+ end
810
+ end
811
+
812
+ # Returns the string representation of the object
813
+ # @return [String] String presentation of the object
814
+ def to_s
815
+ to_hash.to_s
816
+ end
817
+
818
+ # to_body is an alias to to_hash (backward compatibility)
819
+ # @return [Hash] Returns the object in the form of hash
820
+ def to_body
821
+ to_hash
822
+ end
823
+
824
+ # Returns the object in the form of hash
825
+ # @return [Hash] Returns the object in the form of hash
826
+ def to_hash
827
+ hash = {}
828
+ self.class.attribute_map.each_pair do |attr, param|
829
+ value = self.send(attr)
830
+ next if value.nil?
831
+ hash[param] = _to_hash(value)
832
+ end
833
+ hash
834
+ end
835
+
836
+ # Outputs non-array value in the form of hash
837
+ # For object, use to_hash. Otherwise, just return the value
838
+ # @param [Object] value Any valid value
839
+ # @return [Hash] Returns the value in the form of hash
840
+ def _to_hash(value)
841
+ if value.is_a?(Array)
842
+ value.compact.map { |v| _to_hash(v) }
843
+ elsif value.is_a?(Hash)
844
+ {}.tap do |hash|
845
+ value.each { |k, v| hash[k] = _to_hash(v) }
846
+ end
847
+ elsif value.respond_to? :to_hash
848
+ value.to_hash
849
+ else
850
+ value
851
+ end
852
+ end
853
+
854
+ end
855
+ end