cloudsmith-api 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +9 -5
  4. data/build.json +1 -1
  5. data/docs/Eula.md +1 -1
  6. data/docs/HexPackageUpload.md +75 -0
  7. data/docs/HexPackageUploadRequest.md +10 -0
  8. data/docs/NestedLicensePolicy.md +1 -0
  9. data/docs/NestedVulnerabilityPolicy.md +1 -0
  10. data/docs/NestedVulnerabilityScanResults.md +1 -1
  11. data/docs/OrganizationPackageLicensePolicy.md +1 -0
  12. data/docs/OrganizationPackageLicensePolicyRequest.md +1 -0
  13. data/docs/OrganizationPackageLicensePolicyRequestPatch.md +1 -0
  14. data/docs/OrganizationPackageVulnerabilityPolicy.md +1 -0
  15. data/docs/OrganizationPackageVulnerabilityPolicyRequest.md +1 -0
  16. data/docs/OrganizationPackageVulnerabilityPolicyRequestPatch.md +1 -0
  17. data/docs/PackagesApi.md +123 -0
  18. data/docs/RepositoryToken.md +1 -1
  19. data/docs/RepositoryTokenRefresh.md +1 -1
  20. data/docs/RepositoryWebhook.md +1 -1
  21. data/docs/StatusBasic.md +1 -1
  22. data/docs/VulnerabilitiesApi.md +8 -8
  23. data/docs/VulnerabilityScanResults.md +1 -1
  24. data/docs/VulnerabilityScanResultsList.md +1 -1
  25. data/lib/cloudsmith-api/api/packages_api.rb +123 -0
  26. data/lib/cloudsmith-api/api/vulnerabilities_api.rb +13 -13
  27. data/lib/cloudsmith-api/models/eula.rb +0 -5
  28. data/lib/cloudsmith-api/models/hex_package_upload.rb +850 -0
  29. data/lib/cloudsmith-api/models/hex_package_upload_request.rb +210 -0
  30. data/lib/cloudsmith-api/models/nested_license_policy.rb +10 -1
  31. data/lib/cloudsmith-api/models/nested_vulnerability_policy.rb +10 -1
  32. data/lib/cloudsmith-api/models/nested_vulnerability_scan_results.rb +1 -0
  33. data/lib/cloudsmith-api/models/organization_package_license_policy.rb +10 -1
  34. data/lib/cloudsmith-api/models/organization_package_license_policy_request.rb +10 -1
  35. data/lib/cloudsmith-api/models/organization_package_license_policy_request_patch.rb +10 -1
  36. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy.rb +10 -1
  37. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy_request.rb +13 -4
  38. data/lib/cloudsmith-api/models/organization_package_vulnerability_policy_request_patch.rb +13 -4
  39. data/lib/cloudsmith-api/models/repository_token.rb +1 -0
  40. data/lib/cloudsmith-api/models/repository_token_refresh.rb +1 -0
  41. data/lib/cloudsmith-api/models/repository_webhook.rb +1 -0
  42. data/lib/cloudsmith-api/models/status_basic.rb +1 -1
  43. data/lib/cloudsmith-api/models/vulnerability_scan_results.rb +1 -0
  44. data/lib/cloudsmith-api/models/vulnerability_scan_results_list.rb +1 -0
  45. data/lib/cloudsmith-api/version.rb +1 -1
  46. data/lib/cloudsmith-api.rb +2 -0
  47. data/spec/api/packages_api_spec.rb +28 -0
  48. data/spec/api/vulnerabilities_api_spec.rb +3 -3
  49. data/spec/models/hex_package_upload_request_spec.rb +53 -0
  50. data/spec/models/hex_package_upload_spec.rb +447 -0
  51. data/spec/models/nested_license_policy_spec.rb +6 -0
  52. data/spec/models/nested_vulnerability_policy_spec.rb +6 -0
  53. data/spec/models/organization_package_license_policy_request_patch_spec.rb +6 -0
  54. data/spec/models/organization_package_license_policy_request_spec.rb +6 -0
  55. data/spec/models/organization_package_license_policy_spec.rb +6 -0
  56. data/spec/models/organization_package_vulnerability_policy_request_patch_spec.rb +6 -0
  57. data/spec/models/organization_package_vulnerability_policy_request_spec.rb +6 -0
  58. data/spec/models/organization_package_vulnerability_policy_spec.rb +6 -0
  59. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.20/gem_make.out +1 -1
  60. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.5/gem_make.out +2 -2
  61. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/gem_make.out +1 -1
  62. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/mkmf.log +1 -1
  63. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +2 -2
  64. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/Makefile +2 -2
  65. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/Makefile +2 -2
  66. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/Makefile +2 -2
  67. metadata +10 -2
@@ -0,0 +1,850 @@
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 HexPackageUpload
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
+ invalid_properties
638
+ end
639
+
640
+ # Check to see if the all the properties in the model are valid
641
+ # @return true if the model is valid
642
+ def valid?
643
+ 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'])
644
+ return false unless security_scan_status_validator.valid?(@security_scan_status)
645
+ true
646
+ end
647
+
648
+ # Custom attribute writer method checking allowed values (enum).
649
+ # @param [Object] security_scan_status Object to be assigned
650
+ def security_scan_status=(security_scan_status)
651
+ 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'])
652
+ unless validator.valid?(security_scan_status)
653
+ fail ArgumentError, 'invalid value for "security_scan_status", must be one of #{validator.allowable_values}.'
654
+ end
655
+ @security_scan_status = security_scan_status
656
+ end
657
+
658
+ # Checks equality by comparing each attribute.
659
+ # @param [Object] Object to be compared
660
+ def ==(o)
661
+ return true if self.equal?(o)
662
+ self.class == o.class &&
663
+ architectures == o.architectures &&
664
+ cdn_url == o.cdn_url &&
665
+ checksum_md5 == o.checksum_md5 &&
666
+ checksum_sha1 == o.checksum_sha1 &&
667
+ checksum_sha256 == o.checksum_sha256 &&
668
+ checksum_sha512 == o.checksum_sha512 &&
669
+ dependencies_checksum_md5 == o.dependencies_checksum_md5 &&
670
+ dependencies_url == o.dependencies_url &&
671
+ description == o.description &&
672
+ distro == o.distro &&
673
+ distro_version == o.distro_version &&
674
+ downloads == o.downloads &&
675
+ epoch == o.epoch &&
676
+ extension == o.extension &&
677
+ filename == o.filename &&
678
+ files == o.files &&
679
+ format == o.format &&
680
+ format_url == o.format_url &&
681
+ identifier_perm == o.identifier_perm &&
682
+ indexed == o.indexed &&
683
+ is_downloadable == o.is_downloadable &&
684
+ is_quarantined == o.is_quarantined &&
685
+ is_sync_awaiting == o.is_sync_awaiting &&
686
+ is_sync_completed == o.is_sync_completed &&
687
+ is_sync_failed == o.is_sync_failed &&
688
+ is_sync_in_flight == o.is_sync_in_flight &&
689
+ is_sync_in_progress == o.is_sync_in_progress &&
690
+ license == o.license &&
691
+ name == o.name &&
692
+ namespace == o.namespace &&
693
+ namespace_url == o.namespace_url &&
694
+ num_files == o.num_files &&
695
+ origin_repository == o.origin_repository &&
696
+ origin_repository_url == o.origin_repository_url &&
697
+ package_type == o.package_type &&
698
+ release == o.release &&
699
+ repository == o.repository &&
700
+ repository_url == o.repository_url &&
701
+ security_scan_completed_at == o.security_scan_completed_at &&
702
+ security_scan_started_at == o.security_scan_started_at &&
703
+ security_scan_status == o.security_scan_status &&
704
+ security_scan_status_updated_at == o.security_scan_status_updated_at &&
705
+ self_html_url == o.self_html_url &&
706
+ self_url == o.self_url &&
707
+ signature_url == o.signature_url &&
708
+ size == o.size &&
709
+ slug == o.slug &&
710
+ slug_perm == o.slug_perm &&
711
+ stage == o.stage &&
712
+ stage_str == o.stage_str &&
713
+ stage_updated_at == o.stage_updated_at &&
714
+ status == o.status &&
715
+ status_reason == o.status_reason &&
716
+ status_str == o.status_str &&
717
+ status_updated_at == o.status_updated_at &&
718
+ status_url == o.status_url &&
719
+ subtype == o.subtype &&
720
+ summary == o.summary &&
721
+ sync_finished_at == o.sync_finished_at &&
722
+ sync_progress == o.sync_progress &&
723
+ tags_immutable == o.tags_immutable &&
724
+ type_display == o.type_display &&
725
+ uploaded_at == o.uploaded_at &&
726
+ uploader == o.uploader &&
727
+ uploader_url == o.uploader_url &&
728
+ version == o.version &&
729
+ version_orig == o.version_orig &&
730
+ vulnerability_scan_results_url == o.vulnerability_scan_results_url
731
+ end
732
+
733
+ # @see the `==` method
734
+ # @param [Object] Object to be compared
735
+ def eql?(o)
736
+ self == o
737
+ end
738
+
739
+ # Calculates hash code according to all attributes.
740
+ # @return [Fixnum] Hash code
741
+ def hash
742
+ [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
743
+ end
744
+
745
+ # Builds the object from hash
746
+ # @param [Hash] attributes Model attributes in the form of hash
747
+ # @return [Object] Returns the model itself
748
+ def build_from_hash(attributes)
749
+ return nil unless attributes.is_a?(Hash)
750
+ self.class.swagger_types.each_pair do |key, type|
751
+ if type =~ /\AArray<(.*)>/i
752
+ # check to ensure the input is an array given that the attribute
753
+ # is documented as an array but the input is not
754
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
755
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
756
+ end
757
+ elsif !attributes[self.class.attribute_map[key]].nil?
758
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
759
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
760
+ end
761
+
762
+ self
763
+ end
764
+
765
+ # Deserializes the data based on type
766
+ # @param string type Data type
767
+ # @param string value Value to be deserialized
768
+ # @return [Object] Deserialized data
769
+ def _deserialize(type, value)
770
+ case type.to_sym
771
+ when :DateTime
772
+ DateTime.parse(value)
773
+ when :Date
774
+ Date.parse(value)
775
+ when :String
776
+ value.to_s
777
+ when :Integer
778
+ value.to_i
779
+ when :Float
780
+ value.to_f
781
+ when :BOOLEAN
782
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
783
+ true
784
+ else
785
+ false
786
+ end
787
+ when :Object
788
+ # generic object (usually a Hash), return directly
789
+ value
790
+ when /\AArray<(?<inner_type>.+)>\z/
791
+ inner_type = Regexp.last_match[:inner_type]
792
+ value.map { |v| _deserialize(inner_type, v) }
793
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
794
+ k_type = Regexp.last_match[:k_type]
795
+ v_type = Regexp.last_match[:v_type]
796
+ {}.tap do |hash|
797
+ value.each do |k, v|
798
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
799
+ end
800
+ end
801
+ else # model
802
+ temp_model = CloudsmithApi.const_get(type).new
803
+ temp_model.build_from_hash(value)
804
+ end
805
+ end
806
+
807
+ # Returns the string representation of the object
808
+ # @return [String] String presentation of the object
809
+ def to_s
810
+ to_hash.to_s
811
+ end
812
+
813
+ # to_body is an alias to to_hash (backward compatibility)
814
+ # @return [Hash] Returns the object in the form of hash
815
+ def to_body
816
+ to_hash
817
+ end
818
+
819
+ # Returns the object in the form of hash
820
+ # @return [Hash] Returns the object in the form of hash
821
+ def to_hash
822
+ hash = {}
823
+ self.class.attribute_map.each_pair do |attr, param|
824
+ value = self.send(attr)
825
+ next if value.nil?
826
+ hash[param] = _to_hash(value)
827
+ end
828
+ hash
829
+ end
830
+
831
+ # Outputs non-array value in the form of hash
832
+ # For object, use to_hash. Otherwise, just return the value
833
+ # @param [Object] value Any valid value
834
+ # @return [Hash] Returns the value in the form of hash
835
+ def _to_hash(value)
836
+ if value.is_a?(Array)
837
+ value.compact.map { |v| _to_hash(v) }
838
+ elsif value.is_a?(Hash)
839
+ {}.tap do |hash|
840
+ value.each { |k, v| hash[k] = _to_hash(v) }
841
+ end
842
+ elsif value.respond_to? :to_hash
843
+ value.to_hash
844
+ else
845
+ value
846
+ end
847
+ end
848
+
849
+ end
850
+ end