sbom-cyclonedx 0.1.0 → 0.2.0

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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -0
  3. data/.gitlab-ci.yml +49 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +72 -0
  6. data/.vscode/settings.json +6 -0
  7. data/CHANGELOG.md +9 -0
  8. data/CODE_OF_CONDUCT.md +132 -0
  9. data/Gemfile +26 -0
  10. data/Gemfile.lock +179 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +39 -0
  13. data/Rakefile +36 -0
  14. data/Steepfile +14 -0
  15. data/bin/console +11 -0
  16. data/bin/rbs_spec +9 -0
  17. data/bin/setup +8 -0
  18. data/bom-1.6.schema.json +7334 -0
  19. data/lib/email_address_extension.rb +26 -0
  20. data/lib/sbom/cyclone_dx/enum.rb +2178 -0
  21. data/lib/sbom/cyclone_dx/field.rb +404 -0
  22. data/lib/sbom/cyclone_dx/pattern.rb +43 -0
  23. data/lib/sbom/cyclone_dx/record/advisory.rb +17 -0
  24. data/lib/sbom/cyclone_dx/record/annotation.rb +46 -0
  25. data/lib/sbom/cyclone_dx/record/attachment.rb +21 -0
  26. data/lib/sbom/cyclone_dx/record/base.rb +244 -0
  27. data/lib/sbom/cyclone_dx/record/cipher_suite.rb +23 -0
  28. data/lib/sbom/cyclone_dx/record/co2_measure.rb +18 -0
  29. data/lib/sbom/cyclone_dx/record/command.rb +18 -0
  30. data/lib/sbom/cyclone_dx/record/commit.rb +25 -0
  31. data/lib/sbom/cyclone_dx/record/component.rb +126 -0
  32. data/lib/sbom/cyclone_dx/record/component_data.rb +46 -0
  33. data/lib/sbom/cyclone_dx/record/component_evidence.rb +68 -0
  34. data/lib/sbom/cyclone_dx/record/component_identity_evidence.rb +36 -0
  35. data/lib/sbom/cyclone_dx/record/composition.rb +33 -0
  36. data/lib/sbom/cyclone_dx/record/condition.rb +20 -0
  37. data/lib/sbom/cyclone_dx/record/copyright.rb +16 -0
  38. data/lib/sbom/cyclone_dx/record/crypto_properties.rb +137 -0
  39. data/lib/sbom/cyclone_dx/record/data_governance.rb +21 -0
  40. data/lib/sbom/cyclone_dx/record/data_governance_responsible_party.rb +22 -0
  41. data/lib/sbom/cyclone_dx/record/declarations.rb +193 -0
  42. data/lib/sbom/cyclone_dx/record/definitions.rb +17 -0
  43. data/lib/sbom/cyclone_dx/record/dependency.rb +21 -0
  44. data/lib/sbom/cyclone_dx/record/diff.rb +18 -0
  45. data/lib/sbom/cyclone_dx/record/energy_consumption.rb +31 -0
  46. data/lib/sbom/cyclone_dx/record/energy_measure.rb +18 -0
  47. data/lib/sbom/cyclone_dx/record/energy_provider.rb +31 -0
  48. data/lib/sbom/cyclone_dx/record/environmental_consideration.rb +20 -0
  49. data/lib/sbom/cyclone_dx/record/event.rb +31 -0
  50. data/lib/sbom/cyclone_dx/record/external_reference.rb +25 -0
  51. data/lib/sbom/cyclone_dx/record/fairness_assessment.rb +22 -0
  52. data/lib/sbom/cyclone_dx/record/formula.rb +29 -0
  53. data/lib/sbom/cyclone_dx/record/graphic.rb +19 -0
  54. data/lib/sbom/cyclone_dx/record/graphics_collection.rb +19 -0
  55. data/lib/sbom/cyclone_dx/record/hash_data.rb +18 -0
  56. data/lib/sbom/cyclone_dx/record/identifiable_action.rb +21 -0
  57. data/lib/sbom/cyclone_dx/record/input.rb +34 -0
  58. data/lib/sbom/cyclone_dx/record/input_output_ml_parameter.rb +17 -0
  59. data/lib/sbom/cyclone_dx/record/issue.rb +36 -0
  60. data/lib/sbom/cyclone_dx/record/license.rb +90 -0
  61. data/lib/sbom/cyclone_dx/record/license_choice.rb +35 -0
  62. data/lib/sbom/cyclone_dx/record/metadata.rb +55 -0
  63. data/lib/sbom/cyclone_dx/record/model_card.rb +89 -0
  64. data/lib/sbom/cyclone_dx/record/note.rb +20 -0
  65. data/lib/sbom/cyclone_dx/record/organizational_contact.rb +26 -0
  66. data/lib/sbom/cyclone_dx/record/organizational_entity.rb +28 -0
  67. data/lib/sbom/cyclone_dx/record/output.rb +34 -0
  68. data/lib/sbom/cyclone_dx/record/parameter.rb +20 -0
  69. data/lib/sbom/cyclone_dx/record/patch.rb +23 -0
  70. data/lib/sbom/cyclone_dx/record/performance_metric.rb +30 -0
  71. data/lib/sbom/cyclone_dx/record/postal_address.rb +34 -0
  72. data/lib/sbom/cyclone_dx/record/property.rb +18 -0
  73. data/lib/sbom/cyclone_dx/record/rating.rb +27 -0
  74. data/lib/sbom/cyclone_dx/record/release_notes.rb +44 -0
  75. data/lib/sbom/cyclone_dx/record/resource_reference_choice.rb +22 -0
  76. data/lib/sbom/cyclone_dx/record/risk.rb +18 -0
  77. data/lib/sbom/cyclone_dx/record/root.rb +63 -0
  78. data/lib/sbom/cyclone_dx/record/secured_by.rb +20 -0
  79. data/lib/sbom/cyclone_dx/record/service.rb +54 -0
  80. data/lib/sbom/cyclone_dx/record/service_data.rb +32 -0
  81. data/lib/sbom/cyclone_dx/record/signature.rb +85 -0
  82. data/lib/sbom/cyclone_dx/record/standard.rb +72 -0
  83. data/lib/sbom/cyclone_dx/record/step.rb +24 -0
  84. data/lib/sbom/cyclone_dx/record/swid.rb +29 -0
  85. data/lib/sbom/cyclone_dx/record/task.rb +56 -0
  86. data/lib/sbom/cyclone_dx/record/tools.rb +20 -0
  87. data/lib/sbom/cyclone_dx/record/trigger.rb +48 -0
  88. data/lib/sbom/cyclone_dx/record/version.rb +24 -0
  89. data/lib/sbom/cyclone_dx/record/volume.rb +33 -0
  90. data/lib/sbom/cyclone_dx/record/vulnerability.rb +119 -0
  91. data/lib/sbom/cyclone_dx/record/vulnerability_source.rb +20 -0
  92. data/lib/sbom/cyclone_dx/record/workflow.rb +59 -0
  93. data/lib/sbom/cyclone_dx/record/workspace.rb +45 -0
  94. data/lib/sbom/cyclone_dx/record.rb +12 -0
  95. data/lib/sbom/cyclone_dx/validator/array_validator.rb +66 -0
  96. data/lib/sbom/cyclone_dx/validator/base_validator.rb +43 -0
  97. data/lib/sbom/cyclone_dx/validator/boolean_validator.rb +16 -0
  98. data/lib/sbom/cyclone_dx/validator/date_time_validator.rb +29 -0
  99. data/lib/sbom/cyclone_dx/validator/email_address_validator.rb +31 -0
  100. data/lib/sbom/cyclone_dx/validator/float_validator.rb +30 -0
  101. data/lib/sbom/cyclone_dx/validator/integer_validator.rb +30 -0
  102. data/lib/sbom/cyclone_dx/validator/record_validator.rb +26 -0
  103. data/lib/sbom/cyclone_dx/validator/string_validator.rb +33 -0
  104. data/lib/sbom/cyclone_dx/validator/union_validator.rb +39 -0
  105. data/lib/sbom/cyclone_dx/validator/uri_validator.rb +32 -0
  106. data/lib/sbom/cyclone_dx/validator.rb +32 -0
  107. data/lib/sbom/cyclone_dx/version.rb +7 -0
  108. data/lib/sbom/cyclone_dx.rb +39 -0
  109. data/rbs_collection.lock.yaml +288 -0
  110. data/rbs_collection.yaml +31 -0
  111. data/sbom-cyclone_dx.gemspec +32 -0
  112. data/sig/email_address_extension.rbs +14 -0
  113. data/sig/sbom/cyclone_dx/enum.rbs +93 -0
  114. data/sig/sbom/cyclone_dx/field.rbs +434 -0
  115. data/sig/sbom/cyclone_dx/pattern.rbs +24 -0
  116. data/sig/sbom/cyclone_dx/record/advisory.rbs +19 -0
  117. data/sig/sbom/cyclone_dx/record/annotation.rbs +63 -0
  118. data/sig/sbom/cyclone_dx/record/attachment.rbs +24 -0
  119. data/sig/sbom/cyclone_dx/record/base.rbs +62 -0
  120. data/sig/sbom/cyclone_dx/record/cipher_suite.rbs +24 -0
  121. data/sig/sbom/cyclone_dx/record/co2_measure.rbs +14 -0
  122. data/sig/sbom/cyclone_dx/record/command.rbs +19 -0
  123. data/sig/sbom/cyclone_dx/record/commit.rbs +34 -0
  124. data/sig/sbom/cyclone_dx/record/component.rbs +203 -0
  125. data/sig/sbom/cyclone_dx/record/component_data.rbs +73 -0
  126. data/sig/sbom/cyclone_dx/record/component_evidence.rbs +115 -0
  127. data/sig/sbom/cyclone_dx/record/component_identity_evidence.rbs +53 -0
  128. data/sig/sbom/cyclone_dx/record/composition.rbs +39 -0
  129. data/sig/sbom/cyclone_dx/record/condition.rbs +24 -0
  130. data/sig/sbom/cyclone_dx/record/copyright.rbs +14 -0
  131. data/sig/sbom/cyclone_dx/record/crypto_properties.rbs +268 -0
  132. data/sig/sbom/cyclone_dx/record/data_governance.rbs +24 -0
  133. data/sig/sbom/cyclone_dx/record/data_governance_responsible_party.rbs +19 -0
  134. data/sig/sbom/cyclone_dx/record/declarations.rbs +352 -0
  135. data/sig/sbom/cyclone_dx/record/definitions.rbs +14 -0
  136. data/sig/sbom/cyclone_dx/record/dependency.rbs +24 -0
  137. data/sig/sbom/cyclone_dx/record/diff.rbs +19 -0
  138. data/sig/sbom/cyclone_dx/record/energy_consumption.rbs +39 -0
  139. data/sig/sbom/cyclone_dx/record/energy_measure.rbs +14 -0
  140. data/sig/sbom/cyclone_dx/record/energy_provider.rbs +39 -0
  141. data/sig/sbom/cyclone_dx/record/environmental_consideration.rbs +19 -0
  142. data/sig/sbom/cyclone_dx/record/event.rbs +44 -0
  143. data/sig/sbom/cyclone_dx/record/external_reference.rbs +29 -0
  144. data/sig/sbom/cyclone_dx/record/fairness_assessment.rbs +29 -0
  145. data/sig/sbom/cyclone_dx/record/formula.rbs +34 -0
  146. data/sig/sbom/cyclone_dx/record/graphic.rbs +19 -0
  147. data/sig/sbom/cyclone_dx/record/graphics_collection.rbs +19 -0
  148. data/sig/sbom/cyclone_dx/record/hash_data.rbs +19 -0
  149. data/sig/sbom/cyclone_dx/record/identifiable_action.rbs +24 -0
  150. data/sig/sbom/cyclone_dx/record/input.rbs +44 -0
  151. data/sig/sbom/cyclone_dx/record/input_output_ml_parameter.rbs +14 -0
  152. data/sig/sbom/cyclone_dx/record/issue.rbs +53 -0
  153. data/sig/sbom/cyclone_dx/record/license.rbs +134 -0
  154. data/sig/sbom/cyclone_dx/record/license_choice.rbs +39 -0
  155. data/sig/sbom/cyclone_dx/record/metadata.rbs +82 -0
  156. data/sig/sbom/cyclone_dx/record/model_card.rbs +143 -0
  157. data/sig/sbom/cyclone_dx/record/note.rbs +19 -0
  158. data/sig/sbom/cyclone_dx/record/organizational_contact.rbs +29 -0
  159. data/sig/sbom/cyclone_dx/record/organizational_entity.rbs +34 -0
  160. data/sig/sbom/cyclone_dx/record/output.rbs +44 -0
  161. data/sig/sbom/cyclone_dx/record/parameter.rbs +24 -0
  162. data/sig/sbom/cyclone_dx/record/patch.rbs +24 -0
  163. data/sig/sbom/cyclone_dx/record/performance_metric.rbs +43 -0
  164. data/sig/sbom/cyclone_dx/record/postal_address.rbs +44 -0
  165. data/sig/sbom/cyclone_dx/record/property.rbs +19 -0
  166. data/sig/sbom/cyclone_dx/record/rating.rbs +39 -0
  167. data/sig/sbom/cyclone_dx/record/release_notes.rbs +64 -0
  168. data/sig/sbom/cyclone_dx/record/resource_reference_choice.rbs +19 -0
  169. data/sig/sbom/cyclone_dx/record/risk.rbs +19 -0
  170. data/sig/sbom/cyclone_dx/record/root.rbs +84 -0
  171. data/sig/sbom/cyclone_dx/record/secured_by.rbs +19 -0
  172. data/sig/sbom/cyclone_dx/record/service.rbs +99 -0
  173. data/sig/sbom/cyclone_dx/record/service_data.rbs +44 -0
  174. data/sig/sbom/cyclone_dx/record/signature.rbs +130 -0
  175. data/sig/sbom/cyclone_dx/record/standard.rbs +132 -0
  176. data/sig/sbom/cyclone_dx/record/step.rbs +29 -0
  177. data/sig/sbom/cyclone_dx/record/swid.rbs +44 -0
  178. data/sig/sbom/cyclone_dx/record/task.rbs +84 -0
  179. data/sig/sbom/cyclone_dx/record/tools.rbs +19 -0
  180. data/sig/sbom/cyclone_dx/record/trigger.rbs +69 -0
  181. data/sig/sbom/cyclone_dx/record/version.rbs +24 -0
  182. data/sig/sbom/cyclone_dx/record/volume.rbs +49 -0
  183. data/sig/sbom/cyclone_dx/record/vulnerability.rbs +209 -0
  184. data/sig/sbom/cyclone_dx/record/vulnerability_source.rbs +19 -0
  185. data/sig/sbom/cyclone_dx/record/workflow.rbs +94 -0
  186. data/sig/sbom/cyclone_dx/record/workspace.rbs +69 -0
  187. data/sig/sbom/cyclone_dx/record.rbs +161 -0
  188. data/sig/sbom/cyclone_dx/type.rbs +16 -0
  189. data/sig/sbom/cyclone_dx/validator/array_validator.rbs +31 -0
  190. data/sig/sbom/cyclone_dx/validator/base_validator.rbs +21 -0
  191. data/sig/sbom/cyclone_dx/validator/boolean_validator.rbs +9 -0
  192. data/sig/sbom/cyclone_dx/validator/date_time_validator.rbs +10 -0
  193. data/sig/sbom/cyclone_dx/validator/email_address_validator.rbs +10 -0
  194. data/sig/sbom/cyclone_dx/validator/float_validator.rbs +12 -0
  195. data/sig/sbom/cyclone_dx/validator/integer_validator.rbs +12 -0
  196. data/sig/sbom/cyclone_dx/validator/record_validator.rbs +12 -0
  197. data/sig/sbom/cyclone_dx/validator/string_validator.rbs +14 -0
  198. data/sig/sbom/cyclone_dx/validator/union_validator.rbs +24 -0
  199. data/sig/sbom/cyclone_dx/validator/uri_validator.rbs +10 -0
  200. data/sig/sbom/cyclone_dx/validator.rbs +66 -0
  201. data/sig/sbom/cyclone_dx.rbs +13 -0
  202. data/sig/types.rbs +45 -0
  203. data/spec/email_address_extension_spec.rb +27 -0
  204. data/spec/factories/factory_helper.rb +78 -0
  205. data/spec/factories/record/advisory_factory.rb +11 -0
  206. data/spec/factories/record/annotation_factory.rb +63 -0
  207. data/spec/factories/record/attachment_factory.rb +9 -0
  208. data/spec/factories/record/cipher_suite_factory.rb +26 -0
  209. data/spec/factories/record/co2_measure_factory.rb +9 -0
  210. data/spec/factories/record/command_factory.rb +10 -0
  211. data/spec/factories/record/commit_factory.rb +13 -0
  212. data/spec/factories/record/component_data_factory.rb +28 -0
  213. data/spec/factories/record/component_evidence_factory.rb +44 -0
  214. data/spec/factories/record/component_factory.rb +102 -0
  215. data/spec/factories/record/component_identity_evidence_factory.rb +25 -0
  216. data/spec/factories/record/composition_factory.rb +20 -0
  217. data/spec/factories/record/condition_factory.rb +11 -0
  218. data/spec/factories/record/copyright_factory.rb +9 -0
  219. data/spec/factories/record/crypto_properties_factory.rb +191 -0
  220. data/spec/factories/record/data_governance_factory.rb +11 -0
  221. data/spec/factories/record/data_governance_responsible_party_factory.rb +31 -0
  222. data/spec/factories/record/declarations_factory.rb +145 -0
  223. data/spec/factories/record/definitions_factory.rb +9 -0
  224. data/spec/factories/record/dependency_factory.rb +12 -0
  225. data/spec/factories/record/diff_factory.rb +24 -0
  226. data/spec/factories/record/energy_consumption_factory.rb +15 -0
  227. data/spec/factories/record/energy_measure_factory.rb +9 -0
  228. data/spec/factories/record/energy_provider_factory.rb +15 -0
  229. data/spec/factories/record/environmental_consideration_factory.rb +10 -0
  230. data/spec/factories/record/event_factory.rb +15 -0
  231. data/spec/factories/record/external_reference_factory.rb +13 -0
  232. data/spec/factories/record/fairness_assessment_factory.rb +12 -0
  233. data/spec/factories/record/formula_factory.rb +13 -0
  234. data/spec/factories/record/graphic_factory.rb +10 -0
  235. data/spec/factories/record/graphics_collection_factory.rb +10 -0
  236. data/spec/factories/record/hash_data_factory.rb +10 -0
  237. data/spec/factories/record/identifiable_action_factory.rb +11 -0
  238. data/spec/factories/record/input_factory.rb +36 -0
  239. data/spec/factories/record/input_output_ml_parameter_factory.rb +9 -0
  240. data/spec/factories/record/issue_factory.rb +22 -0
  241. data/spec/factories/record/license_choice_factory.rb +23 -0
  242. data/spec/factories/record/license_factory.rb +99 -0
  243. data/spec/factories/record/metadata_factory.rb +38 -0
  244. data/spec/factories/record/model_card_factory.rb +59 -0
  245. data/spec/factories/record/note_factory.rb +11 -0
  246. data/spec/factories/record/organizational_contact_factory.rb +12 -0
  247. data/spec/factories/record/organizational_entity_factory.rb +13 -0
  248. data/spec/factories/record/output_factory.rb +32 -0
  249. data/spec/factories/record/parameter_factory.rb +11 -0
  250. data/spec/factories/record/patch_factory.rb +12 -0
  251. data/spec/factories/record/performance_metric_factory.rb +20 -0
  252. data/spec/factories/record/postal_address_factory.rb +14 -0
  253. data/spec/factories/record/property_factory.rb +11 -0
  254. data/spec/factories/record/rating_factory.rb +14 -0
  255. data/spec/factories/record/release_notes_factory.rb +20 -0
  256. data/spec/factories/record/resource_reference_choice_factory.rb +27 -0
  257. data/spec/factories/record/risk_factory.rb +10 -0
  258. data/spec/factories/record/root_factory.rb +23 -0
  259. data/spec/factories/record/secured_by_factory.rb +10 -0
  260. data/spec/factories/record/service_data_factory.rb +16 -0
  261. data/spec/factories/record/service_factory.rb +27 -0
  262. data/spec/factories/record/signature_factory.rb +50 -0
  263. data/spec/factories/record/standard_factory.rb +37 -0
  264. data/spec/factories/record/step_factory.rb +12 -0
  265. data/spec/factories/record/swid_factory.rb +16 -0
  266. data/spec/factories/record/task_factory.rb +24 -0
  267. data/spec/factories/record/tools_factory.rb +10 -0
  268. data/spec/factories/record/trigger_factory.rb +21 -0
  269. data/spec/factories/record/version_factory.rb +19 -0
  270. data/spec/factories/record/volume_factory.rb +16 -0
  271. data/spec/factories/record/vulnerability_factory.rb +70 -0
  272. data/spec/factories/record/vulnerability_source_factory.rb +10 -0
  273. data/spec/factories/record/workflow_factory.rb +26 -0
  274. data/spec/factories/record/workspace_factory.rb +21 -0
  275. data/spec/factories/record_factory.rb +159 -0
  276. data/spec/fixtures/cipher_info.yml +948 -0
  277. data/spec/fixtures/purl_data.yml +0 -0
  278. data/spec/sbom/cyclone_dx/enum_spec.rb +30 -0
  279. data/spec/sbom/cyclone_dx/field_spec.rb +104 -0
  280. data/spec/sbom/cyclone_dx/pattern_spec.rb +18 -0
  281. data/spec/sbom/cyclone_dx/record/advisory_spec.rb +14 -0
  282. data/spec/sbom/cyclone_dx/record/annotation_spec.rb +31 -0
  283. data/spec/sbom/cyclone_dx/record/attachment_spec.rb +14 -0
  284. data/spec/sbom/cyclone_dx/record/base_spec.rb +363 -0
  285. data/spec/sbom/cyclone_dx/record/cipher_suite_spec.rb +14 -0
  286. data/spec/sbom/cyclone_dx/record/co2_measure_spec.rb +14 -0
  287. data/spec/sbom/cyclone_dx/record/command_spec.rb +14 -0
  288. data/spec/sbom/cyclone_dx/record/commit_spec.rb +14 -0
  289. data/spec/sbom/cyclone_dx/record/component_data_spec.rb +14 -0
  290. data/spec/sbom/cyclone_dx/record/component_evidence_spec.rb +14 -0
  291. data/spec/sbom/cyclone_dx/record/component_identity_evidence_spec.rb +14 -0
  292. data/spec/sbom/cyclone_dx/record/component_spec.rb +14 -0
  293. data/spec/sbom/cyclone_dx/record/composition_spec.rb +14 -0
  294. data/spec/sbom/cyclone_dx/record/condition_spec.rb +14 -0
  295. data/spec/sbom/cyclone_dx/record/copyright_spec.rb +14 -0
  296. data/spec/sbom/cyclone_dx/record/crypto_properties_spec.rb +14 -0
  297. data/spec/sbom/cyclone_dx/record/data_governance_responsible_party_spec.rb +19 -0
  298. data/spec/sbom/cyclone_dx/record/data_governance_spec.rb +14 -0
  299. data/spec/sbom/cyclone_dx/record/declarations_spec.rb +14 -0
  300. data/spec/sbom/cyclone_dx/record/definitions_spec.rb +14 -0
  301. data/spec/sbom/cyclone_dx/record/dependency_spec.rb +14 -0
  302. data/spec/sbom/cyclone_dx/record/diff_spec.rb +14 -0
  303. data/spec/sbom/cyclone_dx/record/energy_consumption_spec.rb +14 -0
  304. data/spec/sbom/cyclone_dx/record/energy_measure_spec.rb +14 -0
  305. data/spec/sbom/cyclone_dx/record/energy_provider_spec.rb +14 -0
  306. data/spec/sbom/cyclone_dx/record/environmental_consideration_spec.rb +14 -0
  307. data/spec/sbom/cyclone_dx/record/event_spec.rb +14 -0
  308. data/spec/sbom/cyclone_dx/record/external_reference_spec.rb +14 -0
  309. data/spec/sbom/cyclone_dx/record/fairness_assessment_spec.rb +14 -0
  310. data/spec/sbom/cyclone_dx/record/formula_spec.rb +14 -0
  311. data/spec/sbom/cyclone_dx/record/graphic_spec.rb +14 -0
  312. data/spec/sbom/cyclone_dx/record/graphics_collection_spec.rb +14 -0
  313. data/spec/sbom/cyclone_dx/record/hash_data_spec.rb +14 -0
  314. data/spec/sbom/cyclone_dx/record/identifiable_action_spec.rb +14 -0
  315. data/spec/sbom/cyclone_dx/record/input_output_ml_parameter_spec.rb +14 -0
  316. data/spec/sbom/cyclone_dx/record/input_spec.rb +14 -0
  317. data/spec/sbom/cyclone_dx/record/issue_spec.rb +14 -0
  318. data/spec/sbom/cyclone_dx/record/license_choice_spec.rb +26 -0
  319. data/spec/sbom/cyclone_dx/record/license_spec.rb +14 -0
  320. data/spec/sbom/cyclone_dx/record/metadata_spec.rb +14 -0
  321. data/spec/sbom/cyclone_dx/record/model_card_spec.rb +14 -0
  322. data/spec/sbom/cyclone_dx/record/note_spec.rb +14 -0
  323. data/spec/sbom/cyclone_dx/record/organizational_contact_spec.rb +14 -0
  324. data/spec/sbom/cyclone_dx/record/organizational_entity_spec.rb +14 -0
  325. data/spec/sbom/cyclone_dx/record/output_spec.rb +14 -0
  326. data/spec/sbom/cyclone_dx/record/parameter_spec.rb +14 -0
  327. data/spec/sbom/cyclone_dx/record/patch_spec.rb +14 -0
  328. data/spec/sbom/cyclone_dx/record/performance_metric_spec.rb +14 -0
  329. data/spec/sbom/cyclone_dx/record/postal_address_spec.rb +14 -0
  330. data/spec/sbom/cyclone_dx/record/property_spec.rb +14 -0
  331. data/spec/sbom/cyclone_dx/record/rating_spec.rb +14 -0
  332. data/spec/sbom/cyclone_dx/record/release_notes_spec.rb +14 -0
  333. data/spec/sbom/cyclone_dx/record/resource_reference_choice_spec.rb +14 -0
  334. data/spec/sbom/cyclone_dx/record/risk_spec.rb +14 -0
  335. data/spec/sbom/cyclone_dx/record/root_spec.rb +14 -0
  336. data/spec/sbom/cyclone_dx/record/secured_by_spec.rb +14 -0
  337. data/spec/sbom/cyclone_dx/record/service_data_spec.rb +14 -0
  338. data/spec/sbom/cyclone_dx/record/service_spec.rb +14 -0
  339. data/spec/sbom/cyclone_dx/record/signature_spec.rb +26 -0
  340. data/spec/sbom/cyclone_dx/record/standard_spec.rb +14 -0
  341. data/spec/sbom/cyclone_dx/record/step_spec.rb +14 -0
  342. data/spec/sbom/cyclone_dx/record/swid_spec.rb +14 -0
  343. data/spec/sbom/cyclone_dx/record/task_spec.rb +14 -0
  344. data/spec/sbom/cyclone_dx/record/tools_spec.rb +14 -0
  345. data/spec/sbom/cyclone_dx/record/trigger_spec.rb +14 -0
  346. data/spec/sbom/cyclone_dx/record/version_spec.rb +14 -0
  347. data/spec/sbom/cyclone_dx/record/volume_spec.rb +14 -0
  348. data/spec/sbom/cyclone_dx/record/vulnerability_source_spec.rb +14 -0
  349. data/spec/sbom/cyclone_dx/record/vulnerability_spec.rb +14 -0
  350. data/spec/sbom/cyclone_dx/record/workflow_spec.rb +14 -0
  351. data/spec/sbom/cyclone_dx/record/workspace_spec.rb +14 -0
  352. data/spec/sbom/cyclone_dx/record_spec.rb +7 -0
  353. data/spec/sbom/cyclone_dx/validator/array_validator_spec.rb +184 -0
  354. data/spec/sbom/cyclone_dx/validator/base_validator_spec.rb +71 -0
  355. data/spec/sbom/cyclone_dx/validator/boolean_validator_spec.rb +26 -0
  356. data/spec/sbom/cyclone_dx/validator/date_time_validator_spec.rb +28 -0
  357. data/spec/sbom/cyclone_dx/validator/email_address_validator_spec.rb +23 -0
  358. data/spec/sbom/cyclone_dx/validator/float_validator_spec.rb +71 -0
  359. data/spec/sbom/cyclone_dx/validator/integer_validator_spec.rb +71 -0
  360. data/spec/sbom/cyclone_dx/validator/record_validator_spec.rb +35 -0
  361. data/spec/sbom/cyclone_dx/validator/string_validator_spec.rb +94 -0
  362. data/spec/sbom/cyclone_dx/validator/union_validator_spec.rb +65 -0
  363. data/spec/sbom/cyclone_dx/validator/uri_validator_spec.rb +21 -0
  364. data/spec/sbom/cyclone_dx/validator_spec.rb +38 -0
  365. data/spec/sbom/cyclone_dx/version_spec.rb +9 -0
  366. data/spec/sbom/cyclone_dx_spec.rb +7 -0
  367. data/spec/spec_helper.rb +39 -0
  368. metadata +377 -6
@@ -0,0 +1,69 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Trigger < Base
5
+ def initialize: (bom_ref: String, uid: String, ?name: String?, ?description: String?, ?resource_references: Array[ResourceReferenceChoice]?, type: String, ?event: Event?, ?conditions: Array[Condition]?, ?time_activated: dateTime?, ?inputs: Array[Input]?, ?outputs: Array[Output]?, ?properties: Array[Property]?) -> void
6
+
7
+ def bom_ref: () -> String
8
+ def bom_ref=: (String) -> String
9
+ def bom_ref?: () -> bool
10
+ def bom_ref_valid?: () -> bool
11
+
12
+ def uid: () -> String
13
+ def uid=: (String) -> String
14
+ def uid?: () -> bool
15
+ def uid_valid?: () -> bool
16
+
17
+ def name: () -> String?
18
+ def name=: (String?) -> String?
19
+ def name?: () -> bool
20
+ def name_valid?: () -> bool
21
+
22
+ def description: () -> String?
23
+ def description=: (String?) -> String?
24
+ def description?: () -> bool
25
+ def description_valid?: () -> bool
26
+
27
+ def resource_references: () -> Array[ResourceReferenceChoice]?
28
+ def resource_references=: (Array[ResourceReferenceChoice]?) -> Array[ResourceReferenceChoice]?
29
+ def resource_references?: () -> bool
30
+ def resource_references_valid?: () -> bool
31
+
32
+ def type: () -> String
33
+ def type=: (String) -> String
34
+ def type?: () -> bool
35
+ def type_valid?: () -> bool
36
+
37
+ def event: () -> Event?
38
+ def event=: (Event?) -> Event?
39
+ def event?: () -> bool
40
+ def event_valid?: () -> bool
41
+
42
+ def conditions: () -> Array[Condition]?
43
+ def conditions=: (Array[Condition]?) -> Array[Condition]?
44
+ def conditions?: () -> bool
45
+ def conditions_valid?: () -> bool
46
+
47
+ def time_activated: () -> dateTime?
48
+ def time_activated=: (dateTime?) -> dateTime?
49
+ def time_activated?: () -> bool
50
+ def time_activated_valid?: () -> bool
51
+
52
+ def inputs: () -> Array[Input]?
53
+ def inputs=: (Array[Input]?) -> Array[Input]?
54
+ def inputs?: () -> bool
55
+ def inputs_valid?: () -> bool
56
+
57
+ def outputs: () -> Array[Output]?
58
+ def outputs=: (Array[Output]?) -> Array[Output]?
59
+ def outputs?: () -> bool
60
+ def outputs_valid?: () -> bool
61
+
62
+ def properties: () -> Array[Property]?
63
+ def properties=: (Array[Property]?) -> Array[Property]?
64
+ def properties?: () -> bool
65
+ def properties_valid?: () -> bool
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,24 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Version < Base
5
+ def initialize: (?version: String?, ?range: String?, ?status: String?) -> void
6
+
7
+ def version: () -> String?
8
+ def version=: (String?) -> String?
9
+ def version?: () -> bool
10
+ def version_valid?: () -> bool
11
+
12
+ def range: () -> String?
13
+ def range=: (String?) -> String?
14
+ def range?: () -> bool
15
+ def range_valid?: () -> bool
16
+
17
+ def status: () -> String?
18
+ def status=: (String?) -> String?
19
+ def status?: () -> bool
20
+ def status_valid?: () -> bool
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,49 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Volume < Base
5
+ def initialize: (?uid: String?, ?name: String?, ?mode: String?, ?path: String?, ?size_allocated: String?, ?persistent: bool?, ?remote: bool?, ?properties: Array[Property]?) -> void
6
+
7
+ def uid: () -> String?
8
+ def uid=: (String?) -> String?
9
+ def uid?: () -> bool
10
+ def uid_valid?: () -> bool
11
+
12
+ def name: () -> String?
13
+ def name=: (String?) -> String?
14
+ def name?: () -> bool
15
+ def name_valid?: () -> bool
16
+
17
+ def mode: () -> String?
18
+ def mode=: (String?) -> String?
19
+ def mode?: () -> bool
20
+ def mode_valid?: () -> bool
21
+
22
+ def path: () -> String?
23
+ def path=: (String?) -> String?
24
+ def path?: () -> bool
25
+ def path_valid?: () -> bool
26
+
27
+ def size_allocated: () -> String?
28
+ def size_allocated=: (String?) -> String?
29
+ def size_allocated?: () -> bool
30
+ def size_allocated_valid?: () -> bool
31
+
32
+ def persistent: () -> bool?
33
+ def persistent=: (bool?) -> bool?
34
+ def persistent?: () -> bool
35
+ def persistent_valid?: () -> bool
36
+
37
+ def remote: () -> bool?
38
+ def remote=: (bool?) -> bool?
39
+ def remote?: () -> bool
40
+ def remote_valid?: () -> bool
41
+
42
+ def properties: () -> Array[Property]?
43
+ def properties=: (Array[Property]?) -> Array[Property]?
44
+ def properties?: () -> bool
45
+ def properties_valid?: () -> bool
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,209 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Vulnerability < Base
5
+ class Analysis < Base
6
+ def initialize: (?state: String?, ?justification: String?, ?response: Array[String]?, ?detail: String?, ?first_issued: dateTime?, ?last_updated: dateTime?) -> void
7
+
8
+ def state: () -> String?
9
+ def state=: (String?) -> String?
10
+ def state?: () -> bool
11
+ def state_valid?: () -> bool
12
+
13
+ def justification: () -> String?
14
+ def justification=: (String?) -> String?
15
+ def justification?: () -> bool
16
+ def justification_valid?: () -> bool
17
+
18
+ def response: () -> Array[String]?
19
+ def response=: (Array[String]?) -> Array[String]?
20
+ def response?: () -> bool
21
+ def response_valid?: () -> bool
22
+
23
+ def detail: () -> String?
24
+ def detail=: (String?) -> String?
25
+ def detail?: () -> bool
26
+ def detail_valid?: () -> bool
27
+
28
+ def first_issued: () -> dateTime?
29
+ def first_issued=: (dateTime?) -> dateTime?
30
+ def first_issued?: () -> bool
31
+ def first_issued_valid?: () -> bool
32
+
33
+ def last_updated: () -> dateTime?
34
+ def last_updated=: (dateTime?) -> dateTime?
35
+ def last_updated?: () -> bool
36
+ def last_updated_valid?: () -> bool
37
+ end
38
+
39
+ class Affects < Base
40
+ def initialize: (ref: String, ?versions: Array[Version]?) -> void
41
+
42
+ def ref: () -> String
43
+ def ref=: (String) -> String
44
+ def ref?: () -> bool
45
+ def ref_valid?: () -> bool
46
+
47
+ def versions: () -> Array[Version]?
48
+ def versions=: (Array[Version]?) -> Array[Version]?
49
+ def versions?: () -> bool
50
+ def versions_valid?: () -> bool
51
+ end
52
+
53
+ class Credits < Base
54
+ def initialize: (?organizations: Array[OrganizationalEntity]?, ?individuals: Array[OrganizationalContact]?) -> void
55
+
56
+ def organizations: () -> Array[OrganizationalEntity]?
57
+ def organizations=: (Array[OrganizationalEntity]?) -> Array[OrganizationalEntity]?
58
+ def organizations?: () -> bool
59
+ def organizations_valid?: () -> bool
60
+
61
+ def individuals: () -> Array[OrganizationalContact]?
62
+ def individuals=: (Array[OrganizationalContact]?) -> Array[OrganizationalContact]?
63
+ def individuals?: () -> bool
64
+ def individuals_valid?: () -> bool
65
+ end
66
+
67
+ class ProofOfConcept < Base
68
+ def initialize: (?reproduction_steps: String?, ?environment: String?, ?supporting_material: Array[Attachment]?) -> void
69
+
70
+ def reproduction_steps: () -> String?
71
+ def reproduction_steps=: (String?) -> String?
72
+ def reproduction_steps?: () -> bool
73
+ def reproduction_steps_valid?: () -> bool
74
+
75
+ def environment: () -> String?
76
+ def environment=: (String?) -> String?
77
+ def environment?: () -> bool
78
+ def environment_valid?: () -> bool
79
+
80
+ def supporting_material: () -> Array[Attachment]?
81
+ def supporting_material=: (Array[Attachment]?) -> Array[Attachment]?
82
+ def supporting_material?: () -> bool
83
+ def supporting_material_valid?: () -> bool
84
+ end
85
+
86
+ class Reference < Base
87
+ def initialize: (id: String, source: VulnerabilitySource) -> void
88
+
89
+ def id: () -> String
90
+ def id=: (String) -> String
91
+ def id?: () -> bool
92
+ def id_valid?: () -> bool
93
+
94
+ def source: () -> VulnerabilitySource
95
+ def source=: (VulnerabilitySource) -> VulnerabilitySource
96
+ def source?: () -> bool
97
+ def source_valid?: () -> bool
98
+ end
99
+
100
+ def initialize: (?bom_ref: String?, ?id: String?, ?source: VulnerabilitySource?, ?references: Array[Reference]?, ?ratings: Array[Rating]?, ?cwes: Array[Integer]?, ?description: String?, ?detail: String?, ?recommendation: String?, ?workaround: String?, ?proof_of_concept: ProofOfConcept?, ?advisories: Array[Advisory]?, ?created: dateTime?, ?published: dateTime?, ?updated: dateTime?, ?rejected: dateTime?, ?credits: Credits?, ?tools: Tools?, ?analysis: Analysis?, ?affects: Array[Affects]?, ?properties: Array[Property]?) -> void
101
+
102
+ def bom_ref: () -> String?
103
+ def bom_ref=: (String?) -> String?
104
+ def bom_ref?: () -> bool
105
+ def bom_ref_valid?: () -> bool
106
+
107
+ def id: () -> String?
108
+ def id=: (String?) -> String?
109
+ def id?: () -> bool
110
+ def id_valid?: () -> bool
111
+
112
+ def source: () -> VulnerabilitySource?
113
+ def source=: (VulnerabilitySource?) -> VulnerabilitySource?
114
+ def source?: () -> bool
115
+ def source_valid?: () -> bool
116
+
117
+ def references: () -> Array[Reference]?
118
+ def references=: (Array[Reference]?) -> Array[Reference]?
119
+ def references?: () -> bool
120
+ def references_valid?: () -> bool
121
+
122
+ def ratings: () -> Array[Rating]?
123
+ def ratings=: (Array[Rating]?) -> Array[Rating]?
124
+ def ratings?: () -> bool
125
+ def ratings_valid?: () -> bool
126
+
127
+ def cwes: () -> Array[Integer]?
128
+ def cwes=: (Array[Integer]?) -> Array[Integer]?
129
+ def cwes?: () -> bool
130
+ def cwes_valid?: () -> bool
131
+
132
+ def description: () -> String?
133
+ def description=: (String?) -> String?
134
+ def description?: () -> bool
135
+ def description_valid?: () -> bool
136
+
137
+ def detail: () -> String?
138
+ def detail=: (String?) -> String?
139
+ def detail?: () -> bool
140
+ def detail_valid?: () -> bool
141
+
142
+ def recommendation: () -> String?
143
+ def recommendation=: (String?) -> String?
144
+ def recommendation?: () -> bool
145
+ def recommendation_valid?: () -> bool
146
+
147
+ def workaround: () -> String?
148
+ def workaround=: (String?) -> String?
149
+ def workaround?: () -> bool
150
+ def workaround_valid?: () -> bool
151
+
152
+ def proof_of_concept: () -> ProofOfConcept?
153
+ def proof_of_concept=: (ProofOfConcept?) -> ProofOfConcept?
154
+ def proof_of_concept?: () -> bool
155
+ def proof_of_concept_valid?: () -> bool
156
+
157
+ def advisories: () -> Array[Advisory]?
158
+ def advisories=: (Array[Advisory]?) -> Array[Advisory]?
159
+ def advisories?: () -> bool
160
+ def advisories_valid?: () -> bool
161
+
162
+ def created: () -> dateTime?
163
+ def created=: (dateTime?) -> dateTime?
164
+ def created?: () -> bool
165
+ def created_valid?: () -> bool
166
+
167
+ def published: () -> dateTime?
168
+ def published=: (dateTime?) -> dateTime?
169
+ def published?: () -> bool
170
+ def published_valid?: () -> bool
171
+
172
+ def updated: () -> dateTime?
173
+ def updated=: (dateTime?) -> dateTime?
174
+ def updated?: () -> bool
175
+ def updated_valid?: () -> bool
176
+
177
+ def rejected: () -> dateTime?
178
+ def rejected=: (dateTime?) -> dateTime?
179
+ def rejected?: () -> bool
180
+ def rejected_valid?: () -> bool
181
+
182
+ def credits: () -> Credits?
183
+ def credits=: (Credits?) -> Credits?
184
+ def credits?: () -> bool
185
+ def credits_valid?: () -> bool
186
+
187
+ def tools: () -> Tools?
188
+ def tools=: (Tools?) -> Tools?
189
+ def tools?: () -> bool
190
+ def tools_valid?: () -> bool
191
+
192
+ def analysis: () -> Analysis?
193
+ def analysis=: (Analysis?) -> Analysis?
194
+ def analysis?: () -> bool
195
+ def analysis_valid?: () -> bool
196
+
197
+ def affects: () -> Array[Affects]?
198
+ def affects=: (Array[Affects]?) -> Array[Affects]?
199
+ def affects?: () -> bool
200
+ def affects_valid?: () -> bool
201
+
202
+ def properties: () -> Array[Property]?
203
+ def properties=: (Array[Property]?) -> Array[Property]?
204
+ def properties?: () -> bool
205
+ def properties_valid?: () -> bool
206
+ end
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,19 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class VulnerabilitySource < Base
5
+ def initialize: (?url: String?, ?name: String?) -> void
6
+
7
+ def url: () -> String?
8
+ def url=: (String?) -> String?
9
+ def url?: () -> bool
10
+ def url_valid?: () -> bool
11
+
12
+ def name: () -> String?
13
+ def name=: (String?) -> String?
14
+ def name?: () -> bool
15
+ def name_valid?: () -> bool
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,94 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Workflow < Base
5
+ def initialize: (bom_ref: String, uid: String, ?name: String?, ?description: String?, ?resource_references: Array[ResourceReferenceChoice]?, ?tasks: Array[Task]?, ?task_dependencies: Array[Dependency]?, ?task_types: Array[String]?, ?trigger: Trigger?, ?steps: Array[Step]?, ?inputs: Array[Input]?, ?outputs: Array[Output]?, ?time_start: dateTime?, ?time_end: dateTime?, ?workspaces: Array[Workspace]?, ?runtime_topology: Array[Dependency]?, ?properties: Array[Property]?) -> void
6
+
7
+ def bom_ref: () -> String
8
+ def bom_ref=: (String) -> String
9
+ def bom_ref?: () -> bool
10
+ def bom_ref_valid?: () -> bool
11
+
12
+ def uid: () -> String
13
+ def uid=: (String) -> String
14
+ def uid?: () -> bool
15
+ def uid_valid?: () -> bool
16
+
17
+ def name: () -> String?
18
+ def name=: (String?) -> String?
19
+ def name?: () -> bool
20
+ def name_valid?: () -> bool
21
+
22
+ def description: () -> String?
23
+ def description=: (String?) -> String?
24
+ def description?: () -> bool
25
+ def description_valid?: () -> bool
26
+
27
+ def resource_references: () -> Array[ResourceReferenceChoice]?
28
+ def resource_references=: (Array[ResourceReferenceChoice]?) -> Array[ResourceReferenceChoice]?
29
+ def resource_references?: () -> bool
30
+ def resource_references_valid?: () -> bool
31
+
32
+ def tasks: () -> Array[Task]?
33
+ def tasks=: (Array[Task]?) -> Array[Task]?
34
+ def tasks?: () -> bool
35
+ def tasks_valid?: () -> bool
36
+
37
+ def task_dependencies: () -> Array[Dependency]?
38
+ def task_dependencies=: (Array[Dependency]?) -> Array[Dependency]?
39
+ def task_dependencies?: () -> bool
40
+ def task_dependencies_valid?: () -> bool
41
+
42
+ def task_types: () -> Array[String]?
43
+ def task_types=: (Array[String]?) -> Array[String]?
44
+ def task_types?: () -> bool
45
+ def task_types_valid?: () -> bool
46
+
47
+ def trigger: () -> Trigger?
48
+ def trigger=: (Trigger?) -> Trigger?
49
+ def trigger?: () -> bool
50
+ def trigger_valid?: () -> bool
51
+
52
+ def steps: () -> Array[Step]?
53
+ def steps=: (Array[Step]?) -> Array[Step]?
54
+ def steps?: () -> bool
55
+ def steps_valid?: () -> bool
56
+
57
+ def inputs: () -> Array[Input]?
58
+ def inputs=: (Array[Input]?) -> Array[Input]?
59
+ def inputs?: () -> bool
60
+ def inputs_valid?: () -> bool
61
+
62
+ def outputs: () -> Array[Output]?
63
+ def outputs=: (Array[Output]?) -> Array[Output]?
64
+ def outputs?: () -> bool
65
+ def outputs_valid?: () -> bool
66
+
67
+ def time_start: () -> dateTime?
68
+ def time_start=: (dateTime?) -> dateTime?
69
+ def time_start?: () -> bool
70
+ def time_start_valid?: () -> bool
71
+
72
+ def time_end: () -> dateTime?
73
+ def time_end=: (dateTime?) -> dateTime?
74
+ def time_end?: () -> bool
75
+ def time_end_valid?: () -> bool
76
+
77
+ def workspaces: () -> Array[Workspace]?
78
+ def workspaces=: (Array[Workspace]?) -> Array[Workspace]?
79
+ def workspaces?: () -> bool
80
+ def workspaces_valid?: () -> bool
81
+
82
+ def runtime_topology: () -> Array[Dependency]?
83
+ def runtime_topology=: (Array[Dependency]?) -> Array[Dependency]?
84
+ def runtime_topology?: () -> bool
85
+ def runtime_topology_valid?: () -> bool
86
+
87
+ def properties: () -> Array[Property]?
88
+ def properties=: (Array[Property]?) -> Array[Property]?
89
+ def properties?: () -> bool
90
+ def properties_valid?: () -> bool
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,69 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ class Workspace < Base
5
+ def initialize: (bom_ref: String, uid: String, ?name: String?, ?aliases: Array[String]?, ?description: String?, ?resource_references: Array[ResourceReferenceChoice]?, ?access_mode: String?, ?mount_path: String?, ?managed_data_type: String?, ?volume_request: String?, ?volume: Volume?, ?properties: Array[Property]?) -> void
6
+
7
+ def bom_ref: () -> String
8
+ def bom_ref=: (String) -> String
9
+ def bom_ref?: () -> bool
10
+ def bom_ref_valid?: () -> bool
11
+
12
+ def uid: () -> String
13
+ def uid=: (String) -> String
14
+ def uid?: () -> bool
15
+ def uid_valid?: () -> bool
16
+
17
+ def name: () -> String?
18
+ def name=: (String?) -> String?
19
+ def name?: () -> bool
20
+ def name_valid?: () -> bool
21
+
22
+ def aliases: () -> Array[String]?
23
+ def aliases=: (Array[String]?) -> Array[String]?
24
+ def aliases?: () -> bool
25
+ def aliases_valid?: () -> bool
26
+
27
+ def description: () -> String?
28
+ def description=: (String?) -> String?
29
+ def description?: () -> bool
30
+ def description_valid?: () -> bool
31
+
32
+ def resource_references: () -> Array[ResourceReferenceChoice]?
33
+ def resource_references=: (Array[ResourceReferenceChoice]?) -> Array[ResourceReferenceChoice]?
34
+ def resource_references?: () -> bool
35
+ def resource_references_valid?: () -> bool
36
+
37
+ def access_mode: () -> String?
38
+ def access_mode=: (String?) -> String?
39
+ def access_mode?: () -> bool
40
+ def access_mode_valid?: () -> bool
41
+
42
+ def mount_path: () -> String?
43
+ def mount_path=: (String?) -> String?
44
+ def mount_path?: () -> bool
45
+ def mount_path_valid?: () -> bool
46
+
47
+ def managed_data_type: () -> String?
48
+ def managed_data_type=: (String?) -> String?
49
+ def managed_data_type?: () -> bool
50
+ def managed_data_type_valid?: () -> bool
51
+
52
+ def volume_request: () -> String?
53
+ def volume_request=: (String?) -> String?
54
+ def volume_request?: () -> bool
55
+ def volume_request_valid?: () -> bool
56
+
57
+ def volume: () -> Volume?
58
+ def volume=: (Volume?) -> Volume?
59
+ def volume?: () -> bool
60
+ def volume_valid?: () -> bool
61
+
62
+ def properties: () -> Array[Property]?
63
+ def properties=: (Array[Property]?) -> Array[Property]?
64
+ def properties?: () -> bool
65
+ def properties_valid?: () -> bool
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,161 @@
1
+ module SBOM
2
+ module CycloneDX
3
+ module Record
4
+ type presenceCheck = :all | :any | :one
5
+ type arrayFieldOptions =
6
+ {
7
+ ?unique: bool,
8
+ ?json_name: ::String?,
9
+ ?const: ::Array[fieldValue]?,
10
+ ?default: ::SBOM::CycloneDX::Field::undefined
11
+ }
12
+ | {
13
+ ?unique: bool,
14
+ ?json_name: ::String?,
15
+ ?const: Field::undefined,
16
+ ?default: Field::defaultValue[::Array[fieldValue]] | Field::undefined
17
+ }
18
+ type booleanFieldOptions =
19
+ {
20
+ ?json_name: ::String?,
21
+ ?const: bool?,
22
+ ?default: ::SBOM::CycloneDX::Field::undefined
23
+ }
24
+ | {
25
+ ?json_name: ::String?,
26
+ ?const: Field::undefined,
27
+ ?default: Field::defaultValue[bool] | Field::undefined
28
+ }
29
+ type dateTimeFieldOptions =
30
+ {
31
+ ?json_name: ::String?,
32
+ ?const: dateTime?,
33
+ ?default: ::SBOM::CycloneDX::Field::undefined
34
+ }
35
+ | {
36
+ ?json_name: ::String?,
37
+ ?const: Field::undefined,
38
+ ?default: Field::defaultValue[dateTime] | Field::undefined
39
+ }
40
+ type emailAddressFieldOptions =
41
+ {
42
+ ?json_name: ::String?,
43
+ ?const: emailAddress?,
44
+ ?default: ::SBOM::CycloneDX::Field::undefined
45
+ }
46
+ | {
47
+ ?json_name: ::String?,
48
+ ?const: Field::undefined,
49
+ ?default: Field::defaultValue[emailAddress] | Field::undefined
50
+ }
51
+ type floatFieldOptions =
52
+ {
53
+ ?minimum: ::Float?,
54
+ ?maximum: ::Float?,
55
+ ?json_name: ::String?,
56
+ ?const: ::Float?,
57
+ ?default: ::SBOM::CycloneDX::Field::undefined
58
+ }
59
+ | {
60
+ ?minimum: ::Float?,
61
+ ?maximum: ::Float?,
62
+ ?json_name: ::String?,
63
+ ?const: Field::undefined,
64
+ ?default: Field::defaultValue[::Float] | Field::undefined
65
+ }
66
+ type integerFieldOptions =
67
+ {
68
+ ?minimum: ::Integer?,
69
+ ?maximum: ::Integer?,
70
+ ?json_name: ::String?,
71
+ ?const: ::Integer?,
72
+ ?default: ::SBOM::CycloneDX::Field::undefined
73
+ }
74
+ | {
75
+ ?minimum: ::Integer?,
76
+ ?maximum: ::Integer?,
77
+ ?json_name: ::String?,
78
+ ?const: Field::undefined,
79
+ ?default: Field::defaultValue[::Integer] | Field::undefined
80
+ }
81
+ type recordFieldOptions =
82
+ {
83
+ ?json_name: ::String?,
84
+ ?const: ::SBOM::CycloneDX::Record::Base?,
85
+ ?default: ::SBOM::CycloneDX::Field::undefined
86
+ }
87
+ | {
88
+ ?json_name: ::String?,
89
+ ?const: Field::undefined,
90
+ ?default: Field::defaultValue[::SBOM::CycloneDX::Record::Base] | Field::undefined
91
+ }
92
+ type stringFieldOptions =
93
+ {
94
+ ?enum: ::Array[::String]?,
95
+ ?max_length: ::Integer?,
96
+ ?min_length: ::Integer?,
97
+ ?pattern: ::Regexp,
98
+ ?json_name: ::String?,
99
+ ?const: ::String?,
100
+ ?default: ::SBOM::CycloneDX::Field::undefined
101
+ }
102
+ | {
103
+ ?enum: ::Array[::String]?,
104
+ ?max_length: ::Integer?,
105
+ ?min_length: ::Integer?,
106
+ ?pattern: ::Regexp,
107
+ ?json_name: ::String?,
108
+ ?const: Field::undefined,
109
+ ?default: Field::defaultValue[::String] | Field::undefined
110
+ }
111
+ type unionFieldOptions =
112
+ {
113
+ ?json_name: ::String?,
114
+ ?const: fieldValue?,
115
+ ?default: ::SBOM::CycloneDX::Field::undefined
116
+ }
117
+ | {
118
+ ?json_name: ::String?,
119
+ ?const: Field::undefined,
120
+ ?default: Field::defaultValue[fieldValue] | Field::undefined
121
+ }
122
+ type uriFieldOptions =
123
+ {
124
+ ?json_name: ::String?,
125
+ ?const: uri?,
126
+ ?default: ::SBOM::CycloneDX::Field::undefined
127
+ }
128
+ | {
129
+ ?json_name: ::String?,
130
+ ?const: Field::undefined,
131
+ ?default: Field::defaultValue[uri] | Field::undefined
132
+ }
133
+
134
+ interface _Instance
135
+ def initialize: (**untyped) -> void
136
+ def valid?: () -> bool
137
+ def as_json: (?Hash[Symbol, untyped]?) -> Hash[String, jsonObject]
138
+ def to_json: (?::JSON::State?) -> ::String
139
+ def formatted_errors: () -> Array[String]
140
+ def errors: () -> Hash[Symbol | String, Array[String]]
141
+ end
142
+
143
+ interface _Klass
144
+ def create: (**untyped) -> SBOM::CycloneDX::Record::Base
145
+ def create!: (**untyped) -> SBOM::CycloneDX::Record::Base
146
+ def json_name: (String) -> void | (?nil) -> String
147
+ def prop: (Symbol, fieldTypeLabel, ?required: bool, ?json_name: String?, **untyped) -> void
148
+ def const: (Symbol, fieldTypeLabel, fieldValue, ?required: bool, ?json_name: String?, **untyped) -> void
149
+ def validate:
150
+ (*Symbol, presence: :one | :all | :any, ?message: String?) -> void
151
+ | (*Symbol, ?message: String?) { (*fieldValue?) -> (bool? | String | Array[String]) } -> void
152
+ | (*Symbol, presence: :one | :all | :any | nil, ?message: String?) ?{ (*fieldValue?) -> (bool? | String | Array[String]) } -> void
153
+ def prop_names: (?include_const: bool) -> Array[Symbol]
154
+ def const_names: () -> Array[Symbol]
155
+ def fields: [T < SBOM::CycloneDX::Field::Base] () -> Hash[Symbol, singleton(SBOM::CycloneDX::Field::Base)]
156
+ def custom_validators: () -> Array[[Array[Symbol], String?, ^(*fieldValue?) -> (bool? | String | Array[String])]]
157
+ end
158
+
159
+ end
160
+ end
161
+ end