cloudsmith-api 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +8 -4
  4. data/build.json +1 -1
  5. data/docs/HelmPackageUploadRequest.md +1 -0
  6. data/docs/PackagesApi.md +123 -0
  7. data/docs/StatusBasic.md +1 -1
  8. data/docs/SwiftPackageUpload.md +75 -0
  9. data/docs/SwiftPackageUploadRequest.md +11 -0
  10. data/lib/cloudsmith-api/api/packages_api.rb +123 -0
  11. data/lib/cloudsmith-api/models/helm_package_upload_request.rb +11 -1
  12. data/lib/cloudsmith-api/models/status_basic.rb +1 -1
  13. data/lib/cloudsmith-api/models/swift_package_upload.rb +855 -0
  14. data/lib/cloudsmith-api/models/swift_package_upload_request.rb +225 -0
  15. data/lib/cloudsmith-api/version.rb +1 -1
  16. data/lib/cloudsmith-api.rb +2 -0
  17. data/spec/api/packages_api_spec.rb +28 -0
  18. data/spec/models/helm_package_upload_request_spec.rb +6 -0
  19. data/spec/models/swift_package_upload_request_spec.rb +59 -0
  20. data/spec/models/swift_package_upload_spec.rb +447 -0
  21. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/autotest-fsevent-0.2.20/gem_make.out +1 -1
  22. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/ffi-1.15.5/gem_make.out +2 -2
  23. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/gem_make.out +1 -1
  24. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-2.6.3/mkmf.log +1 -1
  25. data/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +2 -2
  26. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/Makefile +2 -2
  27. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator/Makefile +2 -2
  28. data/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/parser/Makefile +2 -2
  29. metadata +10 -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