cloudsmith-api 2.0.2 → 2.0.3

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 (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