hoppr-cyclonedx-models 0.5.5__py3-none-any.whl → 0.6.1__py3-none-any.whl
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.
Potentially problematic release.
This version of hoppr-cyclonedx-models might be problematic. Click here for more details.
- hoppr_cyclonedx_models/__init__.py +1 -1
- hoppr_cyclonedx_models/cyclonedx_1_3.py +59 -13
- hoppr_cyclonedx_models/cyclonedx_1_4.py +127 -58
- hoppr_cyclonedx_models/cyclonedx_1_5.py +1134 -359
- hoppr_cyclonedx_models/cyclonedx_1_6.py +7049 -0
- hoppr_cyclonedx_models/spdx.py +119 -3
- {hoppr_cyclonedx_models-0.5.5.dist-info → hoppr_cyclonedx_models-0.6.1.dist-info}/METADATA +7 -4
- hoppr_cyclonedx_models-0.6.1.dist-info/RECORD +12 -0
- {hoppr_cyclonedx_models-0.5.5.dist-info → hoppr_cyclonedx_models-0.6.1.dist-info}/WHEEL +1 -1
- hoppr_cyclonedx_models-0.5.5.dist-info/RECORD +0 -11
- {hoppr_cyclonedx_models-0.5.5.dist-info → hoppr_cyclonedx_models-0.6.1.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""
|
|
2
2
|
--------------------------------------------------------------------------------
|
|
3
|
-
SPDX-FileCopyrightText: Copyright ©
|
|
3
|
+
SPDX-FileCopyrightText: Copyright © 2025 Lockheed Martin <open.source@lmco.com>
|
|
4
4
|
SPDX-FileName: hoppr_cyclonedx_models/cyclonedx_1_5.py
|
|
5
5
|
SPDX-FileType: SOURCE
|
|
6
6
|
SPDX-License-Identifier: MIT
|
|
@@ -25,8 +25,8 @@ THE SOFTWARE.
|
|
|
25
25
|
--------------------------------------------------------------------------------
|
|
26
26
|
This file was generated by datamodel-codegen:
|
|
27
27
|
filename: bom-1.5.schema.json
|
|
28
|
-
timestamp:
|
|
29
|
-
version: 0.
|
|
28
|
+
timestamp: 2025-09-17T19:02:47+00:00
|
|
29
|
+
version: 0.25.7
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
32
|
from __future__ import annotations
|
|
@@ -103,7 +103,11 @@ class Phase(Enum):
|
|
|
103
103
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
class
|
|
106
|
+
class Lifecycles(CycloneDXBaseModel):
|
|
107
|
+
"""
|
|
108
|
+
The product lifecycle(s) that this BOM represents.
|
|
109
|
+
"""
|
|
110
|
+
|
|
107
111
|
class Config:
|
|
108
112
|
extra = Extra.forbid
|
|
109
113
|
|
|
@@ -137,7 +141,11 @@ class Lifecycle(CycloneDXBaseModel):
|
|
|
137
141
|
]
|
|
138
142
|
|
|
139
143
|
|
|
140
|
-
class
|
|
144
|
+
class Lifecycles1(CycloneDXBaseModel):
|
|
145
|
+
"""
|
|
146
|
+
The product lifecycle(s) that this BOM represents.
|
|
147
|
+
"""
|
|
148
|
+
|
|
141
149
|
class Config:
|
|
142
150
|
extra = Extra.forbid
|
|
143
151
|
|
|
@@ -316,76 +324,42 @@ class LicenseType(Enum):
|
|
|
316
324
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
317
325
|
|
|
318
326
|
|
|
319
|
-
class
|
|
320
|
-
"""
|
|
321
|
-
Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
|
|
322
|
-
"""
|
|
323
|
-
|
|
327
|
+
class LicenseChoice21(CycloneDXBaseModel):
|
|
324
328
|
class Config:
|
|
325
329
|
extra = Extra.forbid
|
|
326
330
|
|
|
327
|
-
|
|
328
|
-
|
|
331
|
+
expression: Annotated[
|
|
332
|
+
str,
|
|
329
333
|
Field(
|
|
330
|
-
|
|
331
|
-
title="
|
|
334
|
+
examples=["Apache-2.0 AND (MIT OR GPL-2.0-only)", "GPL-3.0-only WITH Classpath-exception-2.0"],
|
|
335
|
+
title="SPDX License Expression",
|
|
332
336
|
),
|
|
333
|
-
]
|
|
334
|
-
|
|
337
|
+
]
|
|
338
|
+
bom_ref: Annotated[
|
|
335
339
|
Optional[str],
|
|
336
340
|
Field(
|
|
341
|
+
alias="bom-ref",
|
|
337
342
|
description=(
|
|
338
|
-
"
|
|
339
|
-
|
|
340
|
-
title="Purchase Order",
|
|
341
|
-
),
|
|
342
|
-
] = None
|
|
343
|
-
licenseTypes: Annotated[
|
|
344
|
-
Optional[List[LicenseType]],
|
|
345
|
-
Field(
|
|
346
|
-
description=(
|
|
347
|
-
"The type of license(s) that was granted to the licensee\n\n* __academic__ = A license that grants use"
|
|
348
|
-
" of software solely for the purpose of education or research.\n* __appliance__ = A license covering"
|
|
349
|
-
" use of software embedded in a specific piece of hardware.\n* __client-access__ = A Client Access"
|
|
350
|
-
" License (CAL) allows client computers to access services provided by server software.\n*"
|
|
351
|
-
" __concurrent-user__ = A Concurrent User license (aka floating license) limits the number of licenses"
|
|
352
|
-
" for a software application and licenses are shared among a larger number of users.\n* __core-points__"
|
|
353
|
-
" = A license where the core of a computer's processor is assigned a specific number of points.\n*"
|
|
354
|
-
" __custom-metric__ = A license for which consumption is measured by non-standard metrics.\n*"
|
|
355
|
-
" __device__ = A license that covers a defined number of installations on computers and other types of"
|
|
356
|
-
" devices.\n* __evaluation__ = A license that grants permission to install and use software for trial"
|
|
357
|
-
" purposes.\n* __named-user__ = A license that grants access to the software to one or more pre-defined"
|
|
358
|
-
" users.\n* __node-locked__ = A license that grants access to the software on one or more pre-defined"
|
|
359
|
-
" computers or devices.\n* __oem__ = An Original Equipment Manufacturer license that is delivered with"
|
|
360
|
-
" hardware, cannot be transferred to other hardware, and is valid for the life of the hardware.\n*"
|
|
361
|
-
" __perpetual__ = A license where the software is sold on a one-time basis and the licensee can use a"
|
|
362
|
-
" copy of the software indefinitely.\n* __processor-points__ = A license where each installation"
|
|
363
|
-
" consumes points per processor.\n* __subscription__ = A license where the licensee pays a fee to use"
|
|
364
|
-
" the software or service.\n* __user__ = A license that grants access to the software or service by a"
|
|
365
|
-
" specified number of users.\n* __other__ = Another license type.\n"
|
|
366
|
-
),
|
|
367
|
-
title="License Type",
|
|
368
|
-
),
|
|
369
|
-
] = None
|
|
370
|
-
lastRenewal: Annotated[
|
|
371
|
-
Optional[datetime],
|
|
372
|
-
Field(
|
|
373
|
-
description=(
|
|
374
|
-
"The timestamp indicating when the license was last renewed. For new purchases, this is often the"
|
|
375
|
-
" purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of"
|
|
376
|
-
" when the license was last renewed."
|
|
343
|
+
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
344
|
+
" MUST be unique within the BOM."
|
|
377
345
|
),
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
] = None
|
|
381
|
-
expiration: Annotated[
|
|
382
|
-
Optional[datetime],
|
|
383
|
-
Field(
|
|
384
|
-
description="The timestamp indicating when the current license expires (if applicable).", title="Expiration"
|
|
346
|
+
min_length=1,
|
|
347
|
+
title="BOM Reference",
|
|
385
348
|
),
|
|
386
349
|
] = None
|
|
387
350
|
|
|
388
351
|
|
|
352
|
+
LicenseChoice2 = Annotated[
|
|
353
|
+
List[LicenseChoice21],
|
|
354
|
+
Field(
|
|
355
|
+
description="A tuple of exactly one SPDX License Expression.",
|
|
356
|
+
max_items=1,
|
|
357
|
+
min_items=1,
|
|
358
|
+
title="SPDX License Expression",
|
|
359
|
+
),
|
|
360
|
+
]
|
|
361
|
+
|
|
362
|
+
|
|
389
363
|
class Type1(Enum):
|
|
390
364
|
"""
|
|
391
365
|
Specifies the purpose for the patch including the resolution of defects, security issues, or new behavior or functionality.
|
|
@@ -615,11 +589,12 @@ class Dependency(CycloneDXBaseModel):
|
|
|
615
589
|
),
|
|
616
590
|
]
|
|
617
591
|
dependsOn: Annotated[
|
|
618
|
-
Optional[List[
|
|
592
|
+
Optional[List[str]],
|
|
619
593
|
Field(
|
|
620
594
|
description=(
|
|
621
595
|
"The bom-ref identifiers of the components or services that are dependencies of this dependency object."
|
|
622
596
|
),
|
|
597
|
+
min_length=1,
|
|
623
598
|
title="Depends On",
|
|
624
599
|
),
|
|
625
600
|
] = None
|
|
@@ -821,39 +796,6 @@ class Callstack(CycloneDXBaseModel):
|
|
|
821
796
|
frames: Annotated[Optional[List[Frame]], Field(title="Methods")] = None
|
|
822
797
|
|
|
823
798
|
|
|
824
|
-
class ComponentEvidence(CycloneDXBaseModel):
|
|
825
|
-
"""
|
|
826
|
-
Provides the ability to document evidence collected through various forms of extraction or analysis.
|
|
827
|
-
"""
|
|
828
|
-
|
|
829
|
-
class Config:
|
|
830
|
-
extra = Extra.forbid
|
|
831
|
-
|
|
832
|
-
identity: Annotated[
|
|
833
|
-
Optional[Identity], Field(description="Evidence that substantiates the identity of a component.")
|
|
834
|
-
] = None
|
|
835
|
-
occurrences: Annotated[
|
|
836
|
-
Optional[List[Occurrence]],
|
|
837
|
-
Field(
|
|
838
|
-
description="Evidence of individual instances of a component spread across multiple locations.",
|
|
839
|
-
title="Occurrences",
|
|
840
|
-
),
|
|
841
|
-
] = None
|
|
842
|
-
callstack: Annotated[
|
|
843
|
-
Optional[Callstack], Field(description="Evidence of the components use through the callstack.")
|
|
844
|
-
] = None
|
|
845
|
-
licenses: Annotated[
|
|
846
|
-
Optional[List],
|
|
847
|
-
Field(
|
|
848
|
-
description=(
|
|
849
|
-
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
850
|
-
),
|
|
851
|
-
title="Component License(s)",
|
|
852
|
-
),
|
|
853
|
-
] = None
|
|
854
|
-
copyright: Annotated[Optional[List[Copyright]], Field(title="Copyright")] = None
|
|
855
|
-
|
|
856
|
-
|
|
857
799
|
class AggregateType(Enum):
|
|
858
800
|
COMPLETE = complete = "complete"
|
|
859
801
|
INCOMPLETE = incomplete = "incomplete"
|
|
@@ -1012,19 +954,6 @@ class Advisory(CycloneDXBaseModel):
|
|
|
1012
954
|
url: Annotated[str, Field(description="Location where the advisory can be obtained.", title="URL")]
|
|
1013
955
|
|
|
1014
956
|
|
|
1015
|
-
Cwe = Annotated[
|
|
1016
|
-
int,
|
|
1017
|
-
Field(
|
|
1018
|
-
description=(
|
|
1019
|
-
"Integer representation of a Common Weaknesses Enumerations (CWE). For example 399 (of"
|
|
1020
|
-
" https://cwe.mitre.org/data/definitions/399.html)"
|
|
1021
|
-
),
|
|
1022
|
-
ge=1,
|
|
1023
|
-
title="CWE",
|
|
1024
|
-
),
|
|
1025
|
-
]
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
957
|
class Severity(Enum):
|
|
1029
958
|
"""
|
|
1030
959
|
Textual representation of the severity of the vulnerability adopted by the analysis method. If the analysis method uses values other than what is provided, the user is expected to translate appropriately.
|
|
@@ -1256,19 +1185,6 @@ class Analysis(CycloneDXBaseModel):
|
|
|
1256
1185
|
] = None
|
|
1257
1186
|
|
|
1258
1187
|
|
|
1259
|
-
class Affect(CycloneDXBaseModel):
|
|
1260
|
-
class Config:
|
|
1261
|
-
extra = Extra.forbid
|
|
1262
|
-
|
|
1263
|
-
ref: Annotated[
|
|
1264
|
-
Union[RefLinkType, BomLinkElementType],
|
|
1265
|
-
Field(description="References a component or service by the objects bom-ref", title="Reference"),
|
|
1266
|
-
]
|
|
1267
|
-
versions: Annotated[
|
|
1268
|
-
Optional[List], Field(description="Zero or more individual versions or range of versions.", title="Versions")
|
|
1269
|
-
] = None
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
1188
|
class AffectedStatus(Enum):
|
|
1273
1189
|
"""
|
|
1274
1190
|
The vulnerability status of a given version or range of versions of a product. The statuses 'affected' and 'unaffected' indicate that the version is affected or unaffected by the vulnerability. The status 'unknown' indicates that it is unknown or unspecified whether the given version is affected. There can be many reasons for an 'unknown' status, including that an investigation has not been undertaken or that a vendor has not disclosed the status.
|
|
@@ -1286,24 +1202,6 @@ class AffectedStatus(Enum):
|
|
|
1286
1202
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
1287
1203
|
|
|
1288
1204
|
|
|
1289
|
-
Version = Annotated[
|
|
1290
|
-
str, Field(description="A single version of a component or service.", max_length=1024, min_length=1)
|
|
1291
|
-
]
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
Range = Annotated[
|
|
1295
|
-
str,
|
|
1296
|
-
Field(
|
|
1297
|
-
description=(
|
|
1298
|
-
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
1299
|
-
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
1300
|
-
),
|
|
1301
|
-
max_length=1024,
|
|
1302
|
-
min_length=1,
|
|
1303
|
-
),
|
|
1304
|
-
]
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
1205
|
class Type4(Enum):
|
|
1308
1206
|
"""
|
|
1309
1207
|
Learning types describing the learning problem or hybrid learning problem.
|
|
@@ -1340,7 +1238,7 @@ class Approach(CycloneDXBaseModel):
|
|
|
1340
1238
|
] = None
|
|
1341
1239
|
|
|
1342
1240
|
|
|
1343
|
-
class
|
|
1241
|
+
class Datasets(CycloneDXBaseModel):
|
|
1344
1242
|
class Config:
|
|
1345
1243
|
extra = Extra.forbid
|
|
1346
1244
|
|
|
@@ -1677,7 +1575,7 @@ class Parameter(CycloneDXBaseModel):
|
|
|
1677
1575
|
dataType: Annotated[Optional[str], Field(description="The data type of the parameter.", title="Data type")] = None
|
|
1678
1576
|
|
|
1679
1577
|
|
|
1680
|
-
class
|
|
1578
|
+
class Algorithm(Enum):
|
|
1681
1579
|
"""
|
|
1682
1580
|
Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
|
|
1683
1581
|
"""
|
|
@@ -1807,116 +1705,523 @@ class Hash(CycloneDXBaseModel):
|
|
|
1807
1705
|
]
|
|
1808
1706
|
|
|
1809
1707
|
|
|
1810
|
-
class
|
|
1708
|
+
class Licensor(CycloneDXBaseModel):
|
|
1709
|
+
"""
|
|
1710
|
+
The individual or organization that grants a license to another individual or organization
|
|
1711
|
+
"""
|
|
1712
|
+
|
|
1811
1713
|
class Config:
|
|
1812
1714
|
extra = Extra.forbid
|
|
1813
1715
|
|
|
1814
|
-
|
|
1815
|
-
|
|
1716
|
+
organization: Annotated[
|
|
1717
|
+
OrganizationalEntity,
|
|
1718
|
+
Field(description="The organization that granted the license", title="Licensor (Organization)"),
|
|
1719
|
+
]
|
|
1720
|
+
individual: Annotated[
|
|
1721
|
+
Optional[OrganizationalContact],
|
|
1816
1722
|
Field(
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
1820
|
-
" MUST be unique within the BOM."
|
|
1821
|
-
),
|
|
1822
|
-
min_length=1,
|
|
1823
|
-
title="BOM Reference",
|
|
1723
|
+
description="The individual, not associated with an organization, that granted the license",
|
|
1724
|
+
title="Licensor (Individual)",
|
|
1824
1725
|
),
|
|
1825
1726
|
] = None
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
class Licensor1(CycloneDXBaseModel):
|
|
1730
|
+
"""
|
|
1731
|
+
The individual or organization that grants a license to another individual or organization
|
|
1732
|
+
"""
|
|
1733
|
+
|
|
1734
|
+
class Config:
|
|
1735
|
+
extra = Extra.forbid
|
|
1736
|
+
|
|
1737
|
+
organization: Annotated[
|
|
1738
|
+
Optional[OrganizationalEntity],
|
|
1739
|
+
Field(description="The organization that granted the license", title="Licensor (Organization)"),
|
|
1829
1740
|
] = None
|
|
1830
|
-
|
|
1831
|
-
|
|
1741
|
+
individual: Annotated[
|
|
1742
|
+
OrganizationalContact,
|
|
1832
1743
|
Field(
|
|
1833
|
-
description="
|
|
1834
|
-
|
|
1835
|
-
title="License Name",
|
|
1744
|
+
description="The individual, not associated with an organization, that granted the license",
|
|
1745
|
+
title="Licensor (Individual)",
|
|
1836
1746
|
),
|
|
1837
|
-
]
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1747
|
+
]
|
|
1748
|
+
|
|
1749
|
+
|
|
1750
|
+
class Licensee(CycloneDXBaseModel):
|
|
1751
|
+
"""
|
|
1752
|
+
The individual or organization for which a license was granted to
|
|
1753
|
+
"""
|
|
1754
|
+
|
|
1755
|
+
class Config:
|
|
1756
|
+
extra = Extra.forbid
|
|
1757
|
+
|
|
1758
|
+
organization: Annotated[
|
|
1759
|
+
OrganizationalEntity,
|
|
1760
|
+
Field(description="The organization that was granted the license", title="Licensee (Organization)"),
|
|
1761
|
+
]
|
|
1762
|
+
individual: Annotated[
|
|
1763
|
+
Optional[OrganizationalContact],
|
|
1844
1764
|
Field(
|
|
1845
|
-
description=
|
|
1846
|
-
|
|
1847
|
-
" completeness"
|
|
1848
|
-
),
|
|
1849
|
-
examples=["https://www.apache.org/licenses/LICENSE-2.0.txt"],
|
|
1850
|
-
title="License URL",
|
|
1765
|
+
description="The individual, not associated with an organization, that was granted the license",
|
|
1766
|
+
title="Licensee (Individual)",
|
|
1851
1767
|
),
|
|
1852
1768
|
] = None
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
class Licensee1(CycloneDXBaseModel):
|
|
1772
|
+
"""
|
|
1773
|
+
The individual or organization for which a license was granted to
|
|
1774
|
+
"""
|
|
1775
|
+
|
|
1776
|
+
class Config:
|
|
1777
|
+
extra = Extra.forbid
|
|
1778
|
+
|
|
1779
|
+
organization: Annotated[
|
|
1780
|
+
Optional[OrganizationalEntity],
|
|
1781
|
+
Field(description="The organization that was granted the license", title="Licensee (Organization)"),
|
|
1862
1782
|
] = None
|
|
1863
|
-
|
|
1864
|
-
|
|
1783
|
+
individual: Annotated[
|
|
1784
|
+
OrganizationalContact,
|
|
1865
1785
|
Field(
|
|
1866
|
-
description=
|
|
1867
|
-
|
|
1868
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1869
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1870
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1871
|
-
" registered in the [CycloneDX Property"
|
|
1872
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
1873
|
-
),
|
|
1874
|
-
title="Properties",
|
|
1786
|
+
description="The individual, not associated with an organization, that was granted the license",
|
|
1787
|
+
title="Licensee (Individual)",
|
|
1875
1788
|
),
|
|
1876
|
-
]
|
|
1789
|
+
]
|
|
1877
1790
|
|
|
1878
1791
|
|
|
1879
|
-
class
|
|
1792
|
+
class Purchaser(CycloneDXBaseModel):
|
|
1880
1793
|
"""
|
|
1881
|
-
|
|
1794
|
+
The individual or organization that purchased the license
|
|
1882
1795
|
"""
|
|
1883
1796
|
|
|
1884
1797
|
class Config:
|
|
1885
1798
|
extra = Extra.forbid
|
|
1886
1799
|
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
Field(
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
),
|
|
1894
|
-
title="UID",
|
|
1895
|
-
),
|
|
1896
|
-
] = None
|
|
1897
|
-
url: Annotated[
|
|
1898
|
-
Optional[str],
|
|
1800
|
+
organization: Annotated[
|
|
1801
|
+
OrganizationalEntity,
|
|
1802
|
+
Field(description="The organization that purchased the license", title="Purchaser (Organization)"),
|
|
1803
|
+
]
|
|
1804
|
+
individual: Annotated[
|
|
1805
|
+
Optional[OrganizationalContact],
|
|
1899
1806
|
Field(
|
|
1900
|
-
description="The
|
|
1901
|
-
title="
|
|
1807
|
+
description="The individual, not associated with an organization, that purchased the license",
|
|
1808
|
+
title="Purchaser (Individual)",
|
|
1902
1809
|
),
|
|
1903
1810
|
] = None
|
|
1904
|
-
author: Annotated[
|
|
1905
|
-
Optional[IdentifiableAction],
|
|
1906
|
-
Field(description="The author who created the changes in the commit", title="Author"),
|
|
1907
|
-
] = None
|
|
1908
|
-
committer: Annotated[
|
|
1909
|
-
Optional[IdentifiableAction],
|
|
1910
|
-
Field(description="The person who committed or pushed the commit", title="Committer"),
|
|
1911
|
-
] = None
|
|
1912
|
-
message: Annotated[
|
|
1913
|
-
Optional[str], Field(description="The text description of the contents of the commit", title="Message")
|
|
1914
|
-
] = None
|
|
1915
1811
|
|
|
1916
1812
|
|
|
1917
|
-
class
|
|
1813
|
+
class Purchaser1(CycloneDXBaseModel):
|
|
1918
1814
|
"""
|
|
1919
|
-
|
|
1815
|
+
The individual or organization that purchased the license
|
|
1816
|
+
"""
|
|
1817
|
+
|
|
1818
|
+
class Config:
|
|
1819
|
+
extra = Extra.forbid
|
|
1820
|
+
|
|
1821
|
+
organization: Annotated[
|
|
1822
|
+
Optional[OrganizationalEntity],
|
|
1823
|
+
Field(description="The organization that purchased the license", title="Purchaser (Organization)"),
|
|
1824
|
+
] = None
|
|
1825
|
+
individual: Annotated[
|
|
1826
|
+
OrganizationalContact,
|
|
1827
|
+
Field(
|
|
1828
|
+
description="The individual, not associated with an organization, that purchased the license",
|
|
1829
|
+
title="Purchaser (Individual)",
|
|
1830
|
+
),
|
|
1831
|
+
]
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
class Licensing(CycloneDXBaseModel):
|
|
1835
|
+
"""
|
|
1836
|
+
Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
|
|
1837
|
+
"""
|
|
1838
|
+
|
|
1839
|
+
class Config:
|
|
1840
|
+
extra = Extra.forbid
|
|
1841
|
+
|
|
1842
|
+
altIds: Annotated[
|
|
1843
|
+
Optional[List[str]],
|
|
1844
|
+
Field(
|
|
1845
|
+
description="License identifiers that may be used to manage licenses and their lifecycle",
|
|
1846
|
+
title="Alternate License Identifiers",
|
|
1847
|
+
),
|
|
1848
|
+
] = None
|
|
1849
|
+
licensor: Annotated[
|
|
1850
|
+
Optional[Union[Licensor, Licensor1]],
|
|
1851
|
+
Field(
|
|
1852
|
+
description="The individual or organization that grants a license to another individual or organization",
|
|
1853
|
+
title="Licensor",
|
|
1854
|
+
),
|
|
1855
|
+
] = None
|
|
1856
|
+
licensee: Annotated[
|
|
1857
|
+
Optional[Union[Licensee, Licensee1]],
|
|
1858
|
+
Field(description="The individual or organization for which a license was granted to", title="Licensee"),
|
|
1859
|
+
] = None
|
|
1860
|
+
purchaser: Annotated[
|
|
1861
|
+
Optional[Union[Purchaser, Purchaser1]],
|
|
1862
|
+
Field(description="The individual or organization that purchased the license", title="Purchaser"),
|
|
1863
|
+
] = None
|
|
1864
|
+
purchaseOrder: Annotated[
|
|
1865
|
+
Optional[str],
|
|
1866
|
+
Field(
|
|
1867
|
+
description=(
|
|
1868
|
+
"The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase"
|
|
1869
|
+
),
|
|
1870
|
+
title="Purchase Order",
|
|
1871
|
+
),
|
|
1872
|
+
] = None
|
|
1873
|
+
licenseTypes: Annotated[
|
|
1874
|
+
Optional[List[LicenseType]],
|
|
1875
|
+
Field(
|
|
1876
|
+
description=(
|
|
1877
|
+
"The type of license(s) that was granted to the licensee\n\n* __academic__ = A license that grants use"
|
|
1878
|
+
" of software solely for the purpose of education or research.\n* __appliance__ = A license covering"
|
|
1879
|
+
" use of software embedded in a specific piece of hardware.\n* __client-access__ = A Client Access"
|
|
1880
|
+
" License (CAL) allows client computers to access services provided by server software.\n*"
|
|
1881
|
+
" __concurrent-user__ = A Concurrent User license (aka floating license) limits the number of licenses"
|
|
1882
|
+
" for a software application and licenses are shared among a larger number of users.\n* __core-points__"
|
|
1883
|
+
" = A license where the core of a computer's processor is assigned a specific number of points.\n*"
|
|
1884
|
+
" __custom-metric__ = A license for which consumption is measured by non-standard metrics.\n*"
|
|
1885
|
+
" __device__ = A license that covers a defined number of installations on computers and other types of"
|
|
1886
|
+
" devices.\n* __evaluation__ = A license that grants permission to install and use software for trial"
|
|
1887
|
+
" purposes.\n* __named-user__ = A license that grants access to the software to one or more pre-defined"
|
|
1888
|
+
" users.\n* __node-locked__ = A license that grants access to the software on one or more pre-defined"
|
|
1889
|
+
" computers or devices.\n* __oem__ = An Original Equipment Manufacturer license that is delivered with"
|
|
1890
|
+
" hardware, cannot be transferred to other hardware, and is valid for the life of the hardware.\n*"
|
|
1891
|
+
" __perpetual__ = A license where the software is sold on a one-time basis and the licensee can use a"
|
|
1892
|
+
" copy of the software indefinitely.\n* __processor-points__ = A license where each installation"
|
|
1893
|
+
" consumes points per processor.\n* __subscription__ = A license where the licensee pays a fee to use"
|
|
1894
|
+
" the software or service.\n* __user__ = A license that grants access to the software or service by a"
|
|
1895
|
+
" specified number of users.\n* __other__ = Another license type.\n"
|
|
1896
|
+
),
|
|
1897
|
+
title="License Type",
|
|
1898
|
+
),
|
|
1899
|
+
] = None
|
|
1900
|
+
lastRenewal: Annotated[
|
|
1901
|
+
Optional[datetime],
|
|
1902
|
+
Field(
|
|
1903
|
+
description=(
|
|
1904
|
+
"The timestamp indicating when the license was last renewed. For new purchases, this is often the"
|
|
1905
|
+
" purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of"
|
|
1906
|
+
" when the license was last renewed."
|
|
1907
|
+
),
|
|
1908
|
+
title="Last Renewal",
|
|
1909
|
+
),
|
|
1910
|
+
] = None
|
|
1911
|
+
expiration: Annotated[
|
|
1912
|
+
Optional[datetime],
|
|
1913
|
+
Field(
|
|
1914
|
+
description="The timestamp indicating when the current license expires (if applicable).", title="Expiration"
|
|
1915
|
+
),
|
|
1916
|
+
] = None
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
class License1(CycloneDXBaseModel):
|
|
1920
|
+
class Config:
|
|
1921
|
+
extra = Extra.forbid
|
|
1922
|
+
|
|
1923
|
+
bom_ref: Annotated[
|
|
1924
|
+
Optional[str],
|
|
1925
|
+
Field(
|
|
1926
|
+
alias="bom-ref",
|
|
1927
|
+
description=(
|
|
1928
|
+
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
1929
|
+
" MUST be unique within the BOM."
|
|
1930
|
+
),
|
|
1931
|
+
min_length=1,
|
|
1932
|
+
title="BOM Reference",
|
|
1933
|
+
),
|
|
1934
|
+
] = None
|
|
1935
|
+
id: Annotated[
|
|
1936
|
+
spdx.LicenseID, Field(description="A valid SPDX license ID", examples=["Apache-2.0"], title="License ID (SPDX)")
|
|
1937
|
+
]
|
|
1938
|
+
name: Annotated[
|
|
1939
|
+
Optional[str],
|
|
1940
|
+
Field(
|
|
1941
|
+
description="If SPDX does not define the license used, this field may be used to provide the license name",
|
|
1942
|
+
examples=["Acme Software License"],
|
|
1943
|
+
title="License Name",
|
|
1944
|
+
),
|
|
1945
|
+
] = None
|
|
1946
|
+
text: Annotated[
|
|
1947
|
+
Optional[Attachment],
|
|
1948
|
+
Field(description="An optional way to include the textual content of a license.", title="License text"),
|
|
1949
|
+
] = None
|
|
1950
|
+
url: Annotated[
|
|
1951
|
+
Optional[str],
|
|
1952
|
+
Field(
|
|
1953
|
+
description=(
|
|
1954
|
+
"The URL to the license file. If specified, a 'license' externalReference should also be specified for"
|
|
1955
|
+
" completeness"
|
|
1956
|
+
),
|
|
1957
|
+
examples=["https://www.apache.org/licenses/LICENSE-2.0.txt"],
|
|
1958
|
+
title="License URL",
|
|
1959
|
+
),
|
|
1960
|
+
] = None
|
|
1961
|
+
licensing: Annotated[
|
|
1962
|
+
Optional[Licensing],
|
|
1963
|
+
Field(
|
|
1964
|
+
description=(
|
|
1965
|
+
"Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and"
|
|
1966
|
+
" other important metadata"
|
|
1967
|
+
),
|
|
1968
|
+
title="Licensing information",
|
|
1969
|
+
),
|
|
1970
|
+
] = None
|
|
1971
|
+
properties: Annotated[
|
|
1972
|
+
Optional[List[Property]],
|
|
1973
|
+
Field(
|
|
1974
|
+
description=(
|
|
1975
|
+
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
1976
|
+
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1977
|
+
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1978
|
+
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1979
|
+
" registered in the [CycloneDX Property"
|
|
1980
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
1981
|
+
),
|
|
1982
|
+
title="Properties",
|
|
1983
|
+
),
|
|
1984
|
+
] = None
|
|
1985
|
+
|
|
1986
|
+
|
|
1987
|
+
class Licensor2(Licensor):
|
|
1988
|
+
"""
|
|
1989
|
+
The individual or organization that grants a license to another individual or organization
|
|
1990
|
+
"""
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
class Licensor3(Licensor1):
|
|
1994
|
+
"""
|
|
1995
|
+
The individual or organization that grants a license to another individual or organization
|
|
1996
|
+
"""
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
class Licensee2(Licensee):
|
|
2000
|
+
"""
|
|
2001
|
+
The individual or organization for which a license was granted to
|
|
2002
|
+
"""
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
class Licensee3(Licensee1):
|
|
2006
|
+
"""
|
|
2007
|
+
The individual or organization for which a license was granted to
|
|
2008
|
+
"""
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
class Purchaser2(Purchaser):
|
|
2012
|
+
"""
|
|
2013
|
+
The individual or organization that purchased the license
|
|
2014
|
+
"""
|
|
2015
|
+
|
|
2016
|
+
|
|
2017
|
+
class Purchaser3(Purchaser1):
|
|
2018
|
+
"""
|
|
2019
|
+
The individual or organization that purchased the license
|
|
2020
|
+
"""
|
|
2021
|
+
|
|
2022
|
+
|
|
2023
|
+
class Licensing1(CycloneDXBaseModel):
|
|
2024
|
+
"""
|
|
2025
|
+
Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
|
|
2026
|
+
"""
|
|
2027
|
+
|
|
2028
|
+
class Config:
|
|
2029
|
+
extra = Extra.forbid
|
|
2030
|
+
|
|
2031
|
+
altIds: Annotated[
|
|
2032
|
+
Optional[List[str]],
|
|
2033
|
+
Field(
|
|
2034
|
+
description="License identifiers that may be used to manage licenses and their lifecycle",
|
|
2035
|
+
title="Alternate License Identifiers",
|
|
2036
|
+
),
|
|
2037
|
+
] = None
|
|
2038
|
+
licensor: Annotated[
|
|
2039
|
+
Optional[Union[Licensor2, Licensor3]],
|
|
2040
|
+
Field(
|
|
2041
|
+
description="The individual or organization that grants a license to another individual or organization",
|
|
2042
|
+
title="Licensor",
|
|
2043
|
+
),
|
|
2044
|
+
] = None
|
|
2045
|
+
licensee: Annotated[
|
|
2046
|
+
Optional[Union[Licensee2, Licensee3]],
|
|
2047
|
+
Field(description="The individual or organization for which a license was granted to", title="Licensee"),
|
|
2048
|
+
] = None
|
|
2049
|
+
purchaser: Annotated[
|
|
2050
|
+
Optional[Union[Purchaser2, Purchaser3]],
|
|
2051
|
+
Field(description="The individual or organization that purchased the license", title="Purchaser"),
|
|
2052
|
+
] = None
|
|
2053
|
+
purchaseOrder: Annotated[
|
|
2054
|
+
Optional[str],
|
|
2055
|
+
Field(
|
|
2056
|
+
description=(
|
|
2057
|
+
"The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase"
|
|
2058
|
+
),
|
|
2059
|
+
title="Purchase Order",
|
|
2060
|
+
),
|
|
2061
|
+
] = None
|
|
2062
|
+
licenseTypes: Annotated[
|
|
2063
|
+
Optional[List[LicenseType]],
|
|
2064
|
+
Field(
|
|
2065
|
+
description=(
|
|
2066
|
+
"The type of license(s) that was granted to the licensee\n\n* __academic__ = A license that grants use"
|
|
2067
|
+
" of software solely for the purpose of education or research.\n* __appliance__ = A license covering"
|
|
2068
|
+
" use of software embedded in a specific piece of hardware.\n* __client-access__ = A Client Access"
|
|
2069
|
+
" License (CAL) allows client computers to access services provided by server software.\n*"
|
|
2070
|
+
" __concurrent-user__ = A Concurrent User license (aka floating license) limits the number of licenses"
|
|
2071
|
+
" for a software application and licenses are shared among a larger number of users.\n* __core-points__"
|
|
2072
|
+
" = A license where the core of a computer's processor is assigned a specific number of points.\n*"
|
|
2073
|
+
" __custom-metric__ = A license for which consumption is measured by non-standard metrics.\n*"
|
|
2074
|
+
" __device__ = A license that covers a defined number of installations on computers and other types of"
|
|
2075
|
+
" devices.\n* __evaluation__ = A license that grants permission to install and use software for trial"
|
|
2076
|
+
" purposes.\n* __named-user__ = A license that grants access to the software to one or more pre-defined"
|
|
2077
|
+
" users.\n* __node-locked__ = A license that grants access to the software on one or more pre-defined"
|
|
2078
|
+
" computers or devices.\n* __oem__ = An Original Equipment Manufacturer license that is delivered with"
|
|
2079
|
+
" hardware, cannot be transferred to other hardware, and is valid for the life of the hardware.\n*"
|
|
2080
|
+
" __perpetual__ = A license where the software is sold on a one-time basis and the licensee can use a"
|
|
2081
|
+
" copy of the software indefinitely.\n* __processor-points__ = A license where each installation"
|
|
2082
|
+
" consumes points per processor.\n* __subscription__ = A license where the licensee pays a fee to use"
|
|
2083
|
+
" the software or service.\n* __user__ = A license that grants access to the software or service by a"
|
|
2084
|
+
" specified number of users.\n* __other__ = Another license type.\n"
|
|
2085
|
+
),
|
|
2086
|
+
title="License Type",
|
|
2087
|
+
),
|
|
2088
|
+
] = None
|
|
2089
|
+
lastRenewal: Annotated[
|
|
2090
|
+
Optional[datetime],
|
|
2091
|
+
Field(
|
|
2092
|
+
description=(
|
|
2093
|
+
"The timestamp indicating when the license was last renewed. For new purchases, this is often the"
|
|
2094
|
+
" purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of"
|
|
2095
|
+
" when the license was last renewed."
|
|
2096
|
+
),
|
|
2097
|
+
title="Last Renewal",
|
|
2098
|
+
),
|
|
2099
|
+
] = None
|
|
2100
|
+
expiration: Annotated[
|
|
2101
|
+
Optional[datetime],
|
|
2102
|
+
Field(
|
|
2103
|
+
description="The timestamp indicating when the current license expires (if applicable).", title="Expiration"
|
|
2104
|
+
),
|
|
2105
|
+
] = None
|
|
2106
|
+
|
|
2107
|
+
|
|
2108
|
+
class License2(CycloneDXBaseModel):
|
|
2109
|
+
class Config:
|
|
2110
|
+
extra = Extra.forbid
|
|
2111
|
+
|
|
2112
|
+
bom_ref: Annotated[
|
|
2113
|
+
Optional[str],
|
|
2114
|
+
Field(
|
|
2115
|
+
alias="bom-ref",
|
|
2116
|
+
description=(
|
|
2117
|
+
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
2118
|
+
" MUST be unique within the BOM."
|
|
2119
|
+
),
|
|
2120
|
+
min_length=1,
|
|
2121
|
+
title="BOM Reference",
|
|
2122
|
+
),
|
|
2123
|
+
] = None
|
|
2124
|
+
id: Annotated[
|
|
2125
|
+
Optional[spdx.LicenseID],
|
|
2126
|
+
Field(description="A valid SPDX license ID", examples=["Apache-2.0"], title="License ID (SPDX)"),
|
|
2127
|
+
] = None
|
|
2128
|
+
name: Annotated[
|
|
2129
|
+
str,
|
|
2130
|
+
Field(
|
|
2131
|
+
description="If SPDX does not define the license used, this field may be used to provide the license name",
|
|
2132
|
+
examples=["Acme Software License"],
|
|
2133
|
+
title="License Name",
|
|
2134
|
+
),
|
|
2135
|
+
]
|
|
2136
|
+
text: Annotated[
|
|
2137
|
+
Optional[Attachment],
|
|
2138
|
+
Field(description="An optional way to include the textual content of a license.", title="License text"),
|
|
2139
|
+
] = None
|
|
2140
|
+
url: Annotated[
|
|
2141
|
+
Optional[str],
|
|
2142
|
+
Field(
|
|
2143
|
+
description=(
|
|
2144
|
+
"The URL to the license file. If specified, a 'license' externalReference should also be specified for"
|
|
2145
|
+
" completeness"
|
|
2146
|
+
),
|
|
2147
|
+
examples=["https://www.apache.org/licenses/LICENSE-2.0.txt"],
|
|
2148
|
+
title="License URL",
|
|
2149
|
+
),
|
|
2150
|
+
] = None
|
|
2151
|
+
licensing: Annotated[
|
|
2152
|
+
Optional[Licensing1],
|
|
2153
|
+
Field(
|
|
2154
|
+
description=(
|
|
2155
|
+
"Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and"
|
|
2156
|
+
" other important metadata"
|
|
2157
|
+
),
|
|
2158
|
+
title="Licensing information",
|
|
2159
|
+
),
|
|
2160
|
+
] = None
|
|
2161
|
+
properties: Annotated[
|
|
2162
|
+
Optional[List[Property]],
|
|
2163
|
+
Field(
|
|
2164
|
+
description=(
|
|
2165
|
+
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
2166
|
+
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
2167
|
+
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
2168
|
+
" having different values. Property names of interest to the general public are encouraged to be"
|
|
2169
|
+
" registered in the [CycloneDX Property"
|
|
2170
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
2171
|
+
),
|
|
2172
|
+
title="Properties",
|
|
2173
|
+
),
|
|
2174
|
+
] = None
|
|
2175
|
+
|
|
2176
|
+
|
|
2177
|
+
class LicenseChoice1(CycloneDXBaseModel):
|
|
2178
|
+
class Config:
|
|
2179
|
+
extra = Extra.forbid
|
|
2180
|
+
|
|
2181
|
+
license: Annotated[Union[License1, License2], Field(title="License Object")]
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
class Commit(CycloneDXBaseModel):
|
|
2185
|
+
"""
|
|
2186
|
+
Specifies an individual commit
|
|
2187
|
+
"""
|
|
2188
|
+
|
|
2189
|
+
class Config:
|
|
2190
|
+
extra = Extra.forbid
|
|
2191
|
+
|
|
2192
|
+
uid: Annotated[
|
|
2193
|
+
Optional[str],
|
|
2194
|
+
Field(
|
|
2195
|
+
description=(
|
|
2196
|
+
"A unique identifier of the commit. This may be version control specific. For example, Subversion uses"
|
|
2197
|
+
" revision numbers whereas git uses commit hashes."
|
|
2198
|
+
),
|
|
2199
|
+
title="UID",
|
|
2200
|
+
),
|
|
2201
|
+
] = None
|
|
2202
|
+
url: Annotated[
|
|
2203
|
+
Optional[str],
|
|
2204
|
+
Field(
|
|
2205
|
+
description="The URL to the commit. This URL will typically point to a commit in a version control system.",
|
|
2206
|
+
title="URL",
|
|
2207
|
+
),
|
|
2208
|
+
] = None
|
|
2209
|
+
author: Annotated[
|
|
2210
|
+
Optional[IdentifiableAction],
|
|
2211
|
+
Field(description="The author who created the changes in the commit", title="Author"),
|
|
2212
|
+
] = None
|
|
2213
|
+
committer: Annotated[
|
|
2214
|
+
Optional[IdentifiableAction],
|
|
2215
|
+
Field(description="The person who committed or pushed the commit", title="Committer"),
|
|
2216
|
+
] = None
|
|
2217
|
+
message: Annotated[
|
|
2218
|
+
Optional[str], Field(description="The text description of the contents of the commit", title="Message")
|
|
2219
|
+
] = None
|
|
2220
|
+
|
|
2221
|
+
|
|
2222
|
+
class Patch(CycloneDXBaseModel):
|
|
2223
|
+
"""
|
|
2224
|
+
Specifies an individual patch
|
|
1920
2225
|
"""
|
|
1921
2226
|
|
|
1922
2227
|
class Config:
|
|
@@ -2050,6 +2355,39 @@ class ExternalReference(CycloneDXBaseModel):
|
|
|
2050
2355
|
] = None
|
|
2051
2356
|
|
|
2052
2357
|
|
|
2358
|
+
class ComponentEvidence(CycloneDXBaseModel):
|
|
2359
|
+
"""
|
|
2360
|
+
Provides the ability to document evidence collected through various forms of extraction or analysis.
|
|
2361
|
+
"""
|
|
2362
|
+
|
|
2363
|
+
class Config:
|
|
2364
|
+
extra = Extra.forbid
|
|
2365
|
+
|
|
2366
|
+
identity: Annotated[
|
|
2367
|
+
Optional[Identity], Field(description="Evidence that substantiates the identity of a component.")
|
|
2368
|
+
] = None
|
|
2369
|
+
occurrences: Annotated[
|
|
2370
|
+
Optional[List[Occurrence]],
|
|
2371
|
+
Field(
|
|
2372
|
+
description="Evidence of individual instances of a component spread across multiple locations.",
|
|
2373
|
+
title="Occurrences",
|
|
2374
|
+
),
|
|
2375
|
+
] = None
|
|
2376
|
+
callstack: Annotated[
|
|
2377
|
+
Optional[Callstack], Field(description="Evidence of the components use through the callstack.")
|
|
2378
|
+
] = None
|
|
2379
|
+
licenses: Annotated[
|
|
2380
|
+
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
2381
|
+
Field(
|
|
2382
|
+
description=(
|
|
2383
|
+
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
2384
|
+
),
|
|
2385
|
+
title="Component License(s)",
|
|
2386
|
+
),
|
|
2387
|
+
] = None
|
|
2388
|
+
copyright: Annotated[Optional[List[Copyright]], Field(title="Copyright")] = None
|
|
2389
|
+
|
|
2390
|
+
|
|
2053
2391
|
class Rating(CycloneDXBaseModel):
|
|
2054
2392
|
"""
|
|
2055
2393
|
Defines the severity or risk ratings of a vulnerability.
|
|
@@ -2073,35 +2411,95 @@ class Rating(CycloneDXBaseModel):
|
|
|
2073
2411
|
vector: Annotated[
|
|
2074
2412
|
Optional[str],
|
|
2075
2413
|
Field(
|
|
2076
|
-
description="Textual representation of the metric values used to score the vulnerability", title="Vector"
|
|
2414
|
+
description="Textual representation of the metric values used to score the vulnerability", title="Vector"
|
|
2415
|
+
),
|
|
2416
|
+
] = None
|
|
2417
|
+
justification: Annotated[
|
|
2418
|
+
Optional[str],
|
|
2419
|
+
Field(description="An optional reason for rating the vulnerability as it was", title="Justification"),
|
|
2420
|
+
] = None
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
class Credits(CycloneDXBaseModel):
|
|
2424
|
+
"""
|
|
2425
|
+
Individuals or organizations credited with the discovery of the vulnerability.
|
|
2426
|
+
"""
|
|
2427
|
+
|
|
2428
|
+
class Config:
|
|
2429
|
+
extra = Extra.forbid
|
|
2430
|
+
|
|
2431
|
+
organizations: Annotated[
|
|
2432
|
+
Optional[List[OrganizationalEntity]],
|
|
2433
|
+
Field(description="The organizations credited with vulnerability discovery.", title="Organizations"),
|
|
2434
|
+
] = None
|
|
2435
|
+
individuals: Annotated[
|
|
2436
|
+
Optional[List[OrganizationalContact]],
|
|
2437
|
+
Field(
|
|
2438
|
+
description=(
|
|
2439
|
+
"The individuals, not associated with organizations, that are credited with vulnerability discovery."
|
|
2440
|
+
),
|
|
2441
|
+
title="Individuals",
|
|
2442
|
+
),
|
|
2443
|
+
] = None
|
|
2444
|
+
|
|
2445
|
+
|
|
2446
|
+
class Versions(CycloneDXBaseModel):
|
|
2447
|
+
class Config:
|
|
2448
|
+
extra = Extra.forbid
|
|
2449
|
+
|
|
2450
|
+
version: Annotated[
|
|
2451
|
+
str, Field(description="A single version of a component or service.", max_length=1024, min_length=1)
|
|
2452
|
+
]
|
|
2453
|
+
range: Annotated[
|
|
2454
|
+
Optional[str],
|
|
2455
|
+
Field(
|
|
2456
|
+
description=(
|
|
2457
|
+
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
2458
|
+
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
2459
|
+
),
|
|
2460
|
+
max_length=1024,
|
|
2461
|
+
min_length=1,
|
|
2077
2462
|
),
|
|
2078
2463
|
] = None
|
|
2079
|
-
|
|
2080
|
-
Optional[
|
|
2081
|
-
|
|
2082
|
-
] = None
|
|
2464
|
+
status: Annotated[
|
|
2465
|
+
Optional[AffectedStatus], Field(description="The vulnerability status for the version or range of versions.")
|
|
2466
|
+
] = AffectedStatus.affected
|
|
2083
2467
|
|
|
2084
2468
|
|
|
2085
|
-
class
|
|
2086
|
-
"""
|
|
2087
|
-
Individuals or organizations credited with the discovery of the vulnerability.
|
|
2088
|
-
"""
|
|
2089
|
-
|
|
2469
|
+
class Versions1(CycloneDXBaseModel):
|
|
2090
2470
|
class Config:
|
|
2091
2471
|
extra = Extra.forbid
|
|
2092
2472
|
|
|
2093
|
-
|
|
2094
|
-
Optional[
|
|
2095
|
-
Field(description="The organizations credited with vulnerability discovery.", title="Organizations"),
|
|
2473
|
+
version: Annotated[
|
|
2474
|
+
Optional[str], Field(description="A single version of a component or service.", max_length=1024, min_length=1)
|
|
2096
2475
|
] = None
|
|
2097
|
-
|
|
2098
|
-
|
|
2476
|
+
range: Annotated[
|
|
2477
|
+
str,
|
|
2099
2478
|
Field(
|
|
2100
2479
|
description=(
|
|
2101
|
-
"
|
|
2480
|
+
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
2481
|
+
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
2102
2482
|
),
|
|
2103
|
-
|
|
2483
|
+
max_length=1024,
|
|
2484
|
+
min_length=1,
|
|
2104
2485
|
),
|
|
2486
|
+
]
|
|
2487
|
+
status: Annotated[
|
|
2488
|
+
Optional[AffectedStatus], Field(description="The vulnerability status for the version or range of versions.")
|
|
2489
|
+
] = AffectedStatus.affected
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
class Affect(CycloneDXBaseModel):
|
|
2493
|
+
class Config:
|
|
2494
|
+
extra = Extra.forbid
|
|
2495
|
+
|
|
2496
|
+
ref: Annotated[
|
|
2497
|
+
Union[RefLinkType, BomLinkElementType],
|
|
2498
|
+
Field(description="References a component or service by the objects bom-ref", title="Reference"),
|
|
2499
|
+
]
|
|
2500
|
+
versions: Annotated[
|
|
2501
|
+
Optional[List[Union[Versions, Versions1]]],
|
|
2502
|
+
Field(description="Zero or more individual versions or range of versions.", title="Versions"),
|
|
2105
2503
|
] = None
|
|
2106
2504
|
|
|
2107
2505
|
|
|
@@ -2155,14 +2553,22 @@ class Considerations(CycloneDXBaseModel):
|
|
|
2155
2553
|
] = None
|
|
2156
2554
|
|
|
2157
2555
|
|
|
2158
|
-
class
|
|
2556
|
+
class DataGovernanceResponsibleParty1(CycloneDXBaseModel):
|
|
2159
2557
|
class Config:
|
|
2160
2558
|
extra = Extra.forbid
|
|
2161
2559
|
|
|
2162
|
-
organization: Annotated[
|
|
2560
|
+
organization: Annotated[OrganizationalEntity, Field(title="Organization")]
|
|
2163
2561
|
contact: Annotated[Optional[OrganizationalContact], Field(title="Individual")] = None
|
|
2164
2562
|
|
|
2165
2563
|
|
|
2564
|
+
class DataGovernanceResponsibleParty2(CycloneDXBaseModel):
|
|
2565
|
+
class Config:
|
|
2566
|
+
extra = Extra.forbid
|
|
2567
|
+
|
|
2568
|
+
organization: Annotated[Optional[OrganizationalEntity], Field(title="Organization")] = None
|
|
2569
|
+
contact: Annotated[OrganizationalContact, Field(title="Individual")]
|
|
2570
|
+
|
|
2571
|
+
|
|
2166
2572
|
class GraphicsCollection(CycloneDXBaseModel):
|
|
2167
2573
|
"""
|
|
2168
2574
|
A collection of graphics that represent various measurements.
|
|
@@ -2192,7 +2598,7 @@ class Step(CycloneDXBaseModel):
|
|
|
2192
2598
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2193
2599
|
|
|
2194
2600
|
|
|
2195
|
-
class
|
|
2601
|
+
class ResourceReferenceChoice1(CycloneDXBaseModel):
|
|
2196
2602
|
"""
|
|
2197
2603
|
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
2198
2604
|
"""
|
|
@@ -2201,20 +2607,38 @@ class ResourceReferenceChoice(CycloneDXBaseModel):
|
|
|
2201
2607
|
extra = Extra.forbid
|
|
2202
2608
|
|
|
2203
2609
|
ref: Annotated[
|
|
2204
|
-
|
|
2610
|
+
Union[RefLinkType, BomLinkElementType],
|
|
2205
2611
|
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
2206
|
-
]
|
|
2612
|
+
]
|
|
2207
2613
|
externalReference: Annotated[
|
|
2208
2614
|
Optional[ExternalReference],
|
|
2209
2615
|
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
2210
2616
|
] = None
|
|
2211
2617
|
|
|
2212
2618
|
|
|
2619
|
+
class ResourceReferenceChoice2(CycloneDXBaseModel):
|
|
2620
|
+
"""
|
|
2621
|
+
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
2622
|
+
"""
|
|
2623
|
+
|
|
2624
|
+
class Config:
|
|
2625
|
+
extra = Extra.forbid
|
|
2626
|
+
|
|
2627
|
+
ref: Annotated[
|
|
2628
|
+
Optional[Union[RefLinkType, BomLinkElementType]],
|
|
2629
|
+
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
2630
|
+
] = None
|
|
2631
|
+
externalReference: Annotated[
|
|
2632
|
+
ExternalReference,
|
|
2633
|
+
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
2634
|
+
]
|
|
2635
|
+
|
|
2636
|
+
|
|
2213
2637
|
class Signer(CycloneDXBaseModel):
|
|
2214
2638
|
class Config:
|
|
2215
2639
|
extra = Extra.forbid
|
|
2216
2640
|
|
|
2217
|
-
algorithm: Union[
|
|
2641
|
+
algorithm: Union[Algorithm, AnyUrl]
|
|
2218
2642
|
keyId: Annotated[
|
|
2219
2643
|
Optional[str],
|
|
2220
2644
|
Field(description="Optional. Application specific string identifying the signature key.", title="Key ID"),
|
|
@@ -2311,21 +2735,21 @@ class DataGovernance(CycloneDXBaseModel):
|
|
|
2311
2735
|
extra = Extra.forbid
|
|
2312
2736
|
|
|
2313
2737
|
custodians: Annotated[
|
|
2314
|
-
Optional[List[
|
|
2738
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2315
2739
|
Field(
|
|
2316
2740
|
description="Data custodians are responsible for the safe custody, transport, and storage of data.",
|
|
2317
2741
|
title="Data Custodians",
|
|
2318
2742
|
),
|
|
2319
2743
|
] = None
|
|
2320
2744
|
stewards: Annotated[
|
|
2321
|
-
Optional[List[
|
|
2745
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2322
2746
|
Field(
|
|
2323
2747
|
description="Data stewards are responsible for data content, context, and associated business rules.",
|
|
2324
2748
|
title="Data Stewards",
|
|
2325
2749
|
),
|
|
2326
2750
|
] = None
|
|
2327
2751
|
owners: Annotated[
|
|
2328
|
-
Optional[List[
|
|
2752
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2329
2753
|
Field(description="Data owners are concerned with risk and appropriate access to data.", title="Data Owners"),
|
|
2330
2754
|
] = None
|
|
2331
2755
|
|
|
@@ -2372,7 +2796,7 @@ class Workspace(CycloneDXBaseModel):
|
|
|
2372
2796
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
2373
2797
|
] = None
|
|
2374
2798
|
resourceReferences: Annotated[
|
|
2375
|
-
Optional[List[
|
|
2799
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
2376
2800
|
Field(
|
|
2377
2801
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
2378
2802
|
title="Resource references",
|
|
@@ -2412,46 +2836,229 @@ class Workspace(CycloneDXBaseModel):
|
|
|
2412
2836
|
title="Volume request",
|
|
2413
2837
|
),
|
|
2414
2838
|
] = None
|
|
2415
|
-
volume: Annotated[
|
|
2416
|
-
Optional[Volume],
|
|
2839
|
+
volume: Annotated[
|
|
2840
|
+
Optional[Volume],
|
|
2841
|
+
Field(
|
|
2842
|
+
description="Information about the actual volume instance allocated to the workspace.",
|
|
2843
|
+
examples=["see https://kubernetes.io/docs/concepts/storage/persistent-volumes/"],
|
|
2844
|
+
title="Volume",
|
|
2845
|
+
),
|
|
2846
|
+
] = None
|
|
2847
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2848
|
+
|
|
2849
|
+
|
|
2850
|
+
class Event(CycloneDXBaseModel):
|
|
2851
|
+
"""
|
|
2852
|
+
Represents something that happened that may trigger a response.
|
|
2853
|
+
"""
|
|
2854
|
+
|
|
2855
|
+
class Config:
|
|
2856
|
+
extra = Extra.forbid
|
|
2857
|
+
|
|
2858
|
+
uid: Annotated[
|
|
2859
|
+
Optional[str], Field(description="The unique identifier of the event.", title="Unique Identifier (UID)")
|
|
2860
|
+
] = None
|
|
2861
|
+
description: Annotated[Optional[str], Field(description="A description of the event.", title="Description")] = None
|
|
2862
|
+
timeReceived: Annotated[
|
|
2863
|
+
Optional[datetime],
|
|
2864
|
+
Field(description="The date and time (timestamp) when the event was received.", title="Time Received"),
|
|
2865
|
+
] = None
|
|
2866
|
+
data: Annotated[Optional[Attachment], Field(description="Encoding of the raw event data.", title="Data")] = None
|
|
2867
|
+
source: Annotated[
|
|
2868
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2869
|
+
Field(description="References the component or service that was the source of the event", title="Source"),
|
|
2870
|
+
] = None
|
|
2871
|
+
target: Annotated[
|
|
2872
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2873
|
+
Field(description="References the component or service that was the target of the event", title="Target"),
|
|
2874
|
+
] = None
|
|
2875
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2876
|
+
|
|
2877
|
+
|
|
2878
|
+
class InputType1(CycloneDXBaseModel):
|
|
2879
|
+
"""
|
|
2880
|
+
Type that represents various input data types and formats.
|
|
2881
|
+
"""
|
|
2882
|
+
|
|
2883
|
+
class Config:
|
|
2884
|
+
extra = Extra.forbid
|
|
2885
|
+
|
|
2886
|
+
source: Annotated[
|
|
2887
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2888
|
+
Field(
|
|
2889
|
+
description=(
|
|
2890
|
+
"A references to the component or service that provided the input to the task (e.g., reference to a"
|
|
2891
|
+
" service with data flow value of `inbound`)"
|
|
2892
|
+
),
|
|
2893
|
+
examples=["source code repository", "database"],
|
|
2894
|
+
title="Source",
|
|
2895
|
+
),
|
|
2896
|
+
] = None
|
|
2897
|
+
target: Annotated[
|
|
2898
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2899
|
+
Field(
|
|
2900
|
+
description=(
|
|
2901
|
+
"A reference to the component or service that received or stored the input if not the task itself"
|
|
2902
|
+
" (e.g., a local, named storage workspace)"
|
|
2903
|
+
),
|
|
2904
|
+
examples=["workspace", "directory"],
|
|
2905
|
+
title="Target",
|
|
2906
|
+
),
|
|
2907
|
+
] = None
|
|
2908
|
+
resource: Annotated[
|
|
2909
|
+
Union[ResourceReferenceChoice1, ResourceReferenceChoice2],
|
|
2910
|
+
Field(
|
|
2911
|
+
description=(
|
|
2912
|
+
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
2913
|
+
),
|
|
2914
|
+
examples=[
|
|
2915
|
+
"reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
2916
|
+
"reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
2917
|
+
],
|
|
2918
|
+
title="Resource",
|
|
2919
|
+
),
|
|
2920
|
+
]
|
|
2921
|
+
parameters: Annotated[
|
|
2922
|
+
Optional[List[Parameter]],
|
|
2923
|
+
Field(
|
|
2924
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
2925
|
+
title="Parameters",
|
|
2926
|
+
),
|
|
2927
|
+
] = None
|
|
2928
|
+
environmentVars: Annotated[
|
|
2929
|
+
Optional[List[Union[Property, str]]],
|
|
2930
|
+
Field(
|
|
2931
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
2932
|
+
title="Environment variables",
|
|
2933
|
+
),
|
|
2934
|
+
] = None
|
|
2935
|
+
data: Annotated[Optional[Attachment], Field(description="Inputs that have the form of data.", title="Data")] = None
|
|
2936
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2937
|
+
|
|
2938
|
+
|
|
2939
|
+
class InputType2(CycloneDXBaseModel):
|
|
2940
|
+
"""
|
|
2941
|
+
Type that represents various input data types and formats.
|
|
2942
|
+
"""
|
|
2943
|
+
|
|
2944
|
+
class Config:
|
|
2945
|
+
extra = Extra.forbid
|
|
2946
|
+
|
|
2947
|
+
source: Annotated[
|
|
2948
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2949
|
+
Field(
|
|
2950
|
+
description=(
|
|
2951
|
+
"A references to the component or service that provided the input to the task (e.g., reference to a"
|
|
2952
|
+
" service with data flow value of `inbound`)"
|
|
2953
|
+
),
|
|
2954
|
+
examples=["source code repository", "database"],
|
|
2955
|
+
title="Source",
|
|
2956
|
+
),
|
|
2957
|
+
] = None
|
|
2958
|
+
target: Annotated[
|
|
2959
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2960
|
+
Field(
|
|
2961
|
+
description=(
|
|
2962
|
+
"A reference to the component or service that received or stored the input if not the task itself"
|
|
2963
|
+
" (e.g., a local, named storage workspace)"
|
|
2964
|
+
),
|
|
2965
|
+
examples=["workspace", "directory"],
|
|
2966
|
+
title="Target",
|
|
2967
|
+
),
|
|
2968
|
+
] = None
|
|
2969
|
+
resource: Annotated[
|
|
2970
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2971
|
+
Field(
|
|
2972
|
+
description=(
|
|
2973
|
+
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
2974
|
+
),
|
|
2975
|
+
examples=[
|
|
2976
|
+
"reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
2977
|
+
"reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
2978
|
+
],
|
|
2979
|
+
title="Resource",
|
|
2980
|
+
),
|
|
2981
|
+
] = None
|
|
2982
|
+
parameters: Annotated[
|
|
2983
|
+
List[Parameter],
|
|
2984
|
+
Field(
|
|
2985
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
2986
|
+
title="Parameters",
|
|
2987
|
+
),
|
|
2988
|
+
]
|
|
2989
|
+
environmentVars: Annotated[
|
|
2990
|
+
Optional[List[Union[Property, str]]],
|
|
2991
|
+
Field(
|
|
2992
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
2993
|
+
title="Environment variables",
|
|
2994
|
+
),
|
|
2995
|
+
] = None
|
|
2996
|
+
data: Annotated[Optional[Attachment], Field(description="Inputs that have the form of data.", title="Data")] = None
|
|
2997
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2998
|
+
|
|
2999
|
+
|
|
3000
|
+
class InputType3(CycloneDXBaseModel):
|
|
3001
|
+
"""
|
|
3002
|
+
Type that represents various input data types and formats.
|
|
3003
|
+
"""
|
|
3004
|
+
|
|
3005
|
+
class Config:
|
|
3006
|
+
extra = Extra.forbid
|
|
3007
|
+
|
|
3008
|
+
source: Annotated[
|
|
3009
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3010
|
+
Field(
|
|
3011
|
+
description=(
|
|
3012
|
+
"A references to the component or service that provided the input to the task (e.g., reference to a"
|
|
3013
|
+
" service with data flow value of `inbound`)"
|
|
3014
|
+
),
|
|
3015
|
+
examples=["source code repository", "database"],
|
|
3016
|
+
title="Source",
|
|
3017
|
+
),
|
|
3018
|
+
] = None
|
|
3019
|
+
target: Annotated[
|
|
3020
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3021
|
+
Field(
|
|
3022
|
+
description=(
|
|
3023
|
+
"A reference to the component or service that received or stored the input if not the task itself"
|
|
3024
|
+
" (e.g., a local, named storage workspace)"
|
|
3025
|
+
),
|
|
3026
|
+
examples=["workspace", "directory"],
|
|
3027
|
+
title="Target",
|
|
3028
|
+
),
|
|
3029
|
+
] = None
|
|
3030
|
+
resource: Annotated[
|
|
3031
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3032
|
+
Field(
|
|
3033
|
+
description=(
|
|
3034
|
+
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
3035
|
+
),
|
|
3036
|
+
examples=[
|
|
3037
|
+
"reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
3038
|
+
"reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
3039
|
+
],
|
|
3040
|
+
title="Resource",
|
|
3041
|
+
),
|
|
3042
|
+
] = None
|
|
3043
|
+
parameters: Annotated[
|
|
3044
|
+
Optional[List[Parameter]],
|
|
3045
|
+
Field(
|
|
3046
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
3047
|
+
title="Parameters",
|
|
3048
|
+
),
|
|
3049
|
+
] = None
|
|
3050
|
+
environmentVars: Annotated[
|
|
3051
|
+
List[Union[Property, str]],
|
|
2417
3052
|
Field(
|
|
2418
|
-
description="
|
|
2419
|
-
|
|
2420
|
-
title="Volume",
|
|
3053
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
3054
|
+
title="Environment variables",
|
|
2421
3055
|
),
|
|
2422
|
-
]
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
class Event(CycloneDXBaseModel):
|
|
2427
|
-
"""
|
|
2428
|
-
Represents something that happened that may trigger a response.
|
|
2429
|
-
"""
|
|
2430
|
-
|
|
2431
|
-
class Config:
|
|
2432
|
-
extra = Extra.forbid
|
|
2433
|
-
|
|
2434
|
-
uid: Annotated[
|
|
2435
|
-
Optional[str], Field(description="The unique identifier of the event.", title="Unique Identifier (UID)")
|
|
2436
|
-
] = None
|
|
2437
|
-
description: Annotated[Optional[str], Field(description="A description of the event.", title="Description")] = None
|
|
2438
|
-
timeReceived: Annotated[
|
|
2439
|
-
Optional[datetime],
|
|
2440
|
-
Field(description="The date and time (timestamp) when the event was received.", title="Time Received"),
|
|
2441
|
-
] = None
|
|
2442
|
-
data: Annotated[Optional[Attachment], Field(description="Encoding of the raw event data.", title="Data")] = None
|
|
2443
|
-
source: Annotated[
|
|
2444
|
-
Optional[ResourceReferenceChoice],
|
|
2445
|
-
Field(description="References the component or service that was the source of the event", title="Source"),
|
|
2446
|
-
] = None
|
|
2447
|
-
target: Annotated[
|
|
2448
|
-
Optional[ResourceReferenceChoice],
|
|
2449
|
-
Field(description="References the component or service that was the target of the event", title="Target"),
|
|
2450
|
-
] = None
|
|
3056
|
+
]
|
|
3057
|
+
data: Annotated[Optional[Attachment], Field(description="Inputs that have the form of data.", title="Data")] = None
|
|
2451
3058
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2452
3059
|
|
|
2453
3060
|
|
|
2454
|
-
class
|
|
3061
|
+
class InputType4(CycloneDXBaseModel):
|
|
2455
3062
|
"""
|
|
2456
3063
|
Type that represents various input data types and formats.
|
|
2457
3064
|
"""
|
|
@@ -2460,7 +3067,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2460
3067
|
extra = Extra.forbid
|
|
2461
3068
|
|
|
2462
3069
|
source: Annotated[
|
|
2463
|
-
Optional[
|
|
3070
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2464
3071
|
Field(
|
|
2465
3072
|
description=(
|
|
2466
3073
|
"A references to the component or service that provided the input to the task (e.g., reference to a"
|
|
@@ -2471,7 +3078,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2471
3078
|
),
|
|
2472
3079
|
] = None
|
|
2473
3080
|
target: Annotated[
|
|
2474
|
-
Optional[
|
|
3081
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2475
3082
|
Field(
|
|
2476
3083
|
description=(
|
|
2477
3084
|
"A reference to the component or service that received or stored the input if not the task itself"
|
|
@@ -2482,7 +3089,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2482
3089
|
),
|
|
2483
3090
|
] = None
|
|
2484
3091
|
resource: Annotated[
|
|
2485
|
-
Optional[
|
|
3092
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2486
3093
|
Field(
|
|
2487
3094
|
description=(
|
|
2488
3095
|
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
@@ -2508,24 +3115,66 @@ class InputType(CycloneDXBaseModel):
|
|
|
2508
3115
|
title="Environment variables",
|
|
2509
3116
|
),
|
|
2510
3117
|
] = None
|
|
2511
|
-
data: Annotated[
|
|
3118
|
+
data: Annotated[Attachment, Field(description="Inputs that have the form of data.", title="Data")]
|
|
3119
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
class OutputType1(CycloneDXBaseModel):
|
|
3123
|
+
class Config:
|
|
3124
|
+
extra = Extra.forbid
|
|
3125
|
+
|
|
3126
|
+
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
3127
|
+
source: Annotated[
|
|
3128
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3129
|
+
Field(
|
|
3130
|
+
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
3131
|
+
title="Source",
|
|
3132
|
+
),
|
|
3133
|
+
] = None
|
|
3134
|
+
target: Annotated[
|
|
3135
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3136
|
+
Field(
|
|
3137
|
+
description=(
|
|
3138
|
+
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
3139
|
+
" with data flow value of `outbound`)"
|
|
3140
|
+
),
|
|
3141
|
+
examples=["a log file described as an `externalReference` within its target domain."],
|
|
3142
|
+
title="Target",
|
|
3143
|
+
),
|
|
3144
|
+
] = None
|
|
3145
|
+
resource: Annotated[
|
|
3146
|
+
Union[ResourceReferenceChoice1, ResourceReferenceChoice2],
|
|
3147
|
+
Field(
|
|
3148
|
+
description="A reference to an independent resource generated as output by the task.",
|
|
3149
|
+
examples=["configuration file", "source code", "scanning service"],
|
|
3150
|
+
title="Resource",
|
|
3151
|
+
),
|
|
3152
|
+
]
|
|
3153
|
+
data: Annotated[Optional[Attachment], Field(description="Outputs that have the form of data.", title="Data")] = None
|
|
3154
|
+
environmentVars: Annotated[
|
|
3155
|
+
Optional[List[Union[Property, str]]],
|
|
3156
|
+
Field(
|
|
3157
|
+
description="Outputs that have the form of environment variables.",
|
|
3158
|
+
title="Environment variables",
|
|
3159
|
+
),
|
|
3160
|
+
] = None
|
|
2512
3161
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2513
3162
|
|
|
2514
3163
|
|
|
2515
|
-
class
|
|
3164
|
+
class OutputType2(CycloneDXBaseModel):
|
|
2516
3165
|
class Config:
|
|
2517
3166
|
extra = Extra.forbid
|
|
2518
3167
|
|
|
2519
3168
|
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
2520
3169
|
source: Annotated[
|
|
2521
|
-
Optional[
|
|
3170
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2522
3171
|
Field(
|
|
2523
3172
|
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
2524
3173
|
title="Source",
|
|
2525
3174
|
),
|
|
2526
3175
|
] = None
|
|
2527
3176
|
target: Annotated[
|
|
2528
|
-
Optional[
|
|
3177
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2529
3178
|
Field(
|
|
2530
3179
|
description=(
|
|
2531
3180
|
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
@@ -2536,7 +3185,7 @@ class OutputType(CycloneDXBaseModel):
|
|
|
2536
3185
|
),
|
|
2537
3186
|
] = None
|
|
2538
3187
|
resource: Annotated[
|
|
2539
|
-
Optional[
|
|
3188
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2540
3189
|
Field(
|
|
2541
3190
|
description="A reference to an independent resource generated as output by the task.",
|
|
2542
3191
|
examples=["configuration file", "source code", "scanning service"],
|
|
@@ -2544,6 +3193,48 @@ class OutputType(CycloneDXBaseModel):
|
|
|
2544
3193
|
),
|
|
2545
3194
|
] = None
|
|
2546
3195
|
data: Annotated[Optional[Attachment], Field(description="Outputs that have the form of data.", title="Data")] = None
|
|
3196
|
+
environmentVars: Annotated[
|
|
3197
|
+
List[Union[Property, str]],
|
|
3198
|
+
Field(
|
|
3199
|
+
description="Outputs that have the form of environment variables.",
|
|
3200
|
+
title="Environment variables",
|
|
3201
|
+
),
|
|
3202
|
+
]
|
|
3203
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
class OutputType3(CycloneDXBaseModel):
|
|
3207
|
+
class Config:
|
|
3208
|
+
extra = Extra.forbid
|
|
3209
|
+
|
|
3210
|
+
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
3211
|
+
source: Annotated[
|
|
3212
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3213
|
+
Field(
|
|
3214
|
+
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
3215
|
+
title="Source",
|
|
3216
|
+
),
|
|
3217
|
+
] = None
|
|
3218
|
+
target: Annotated[
|
|
3219
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3220
|
+
Field(
|
|
3221
|
+
description=(
|
|
3222
|
+
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
3223
|
+
" with data flow value of `outbound`)"
|
|
3224
|
+
),
|
|
3225
|
+
examples=["a log file described as an `externalReference` within its target domain."],
|
|
3226
|
+
title="Target",
|
|
3227
|
+
),
|
|
3228
|
+
] = None
|
|
3229
|
+
resource: Annotated[
|
|
3230
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3231
|
+
Field(
|
|
3232
|
+
description="A reference to an independent resource generated as output by the task.",
|
|
3233
|
+
examples=["configuration file", "source code", "scanning service"],
|
|
3234
|
+
title="Resource",
|
|
3235
|
+
),
|
|
3236
|
+
] = None
|
|
3237
|
+
data: Annotated[Attachment, Field(description="Outputs that have the form of data.", title="Data")]
|
|
2547
3238
|
environmentVars: Annotated[
|
|
2548
3239
|
Optional[List[Union[Property, str]]],
|
|
2549
3240
|
Field(
|
|
@@ -2720,7 +3411,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2720
3411
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
2721
3412
|
] = None
|
|
2722
3413
|
resourceReferences: Annotated[
|
|
2723
|
-
Optional[List[
|
|
3414
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
2724
3415
|
Field(
|
|
2725
3416
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
2726
3417
|
title="Resource references",
|
|
@@ -2739,7 +3430,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2739
3430
|
Field(description="The date and time (timestamp) when the trigger was activated.", title="Time activated"),
|
|
2740
3431
|
] = None
|
|
2741
3432
|
inputs: Annotated[
|
|
2742
|
-
Optional[List[
|
|
3433
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
2743
3434
|
Field(
|
|
2744
3435
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
2745
3436
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -2747,7 +3438,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2747
3438
|
),
|
|
2748
3439
|
] = None
|
|
2749
3440
|
outputs: Annotated[
|
|
2750
|
-
Optional[List[
|
|
3441
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
2751
3442
|
Field(
|
|
2752
3443
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
2753
3444
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -2848,7 +3539,7 @@ class Service(CycloneDXBaseModel):
|
|
|
2848
3539
|
),
|
|
2849
3540
|
] = None
|
|
2850
3541
|
licenses: Annotated[
|
|
2851
|
-
Optional[List],
|
|
3542
|
+
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
2852
3543
|
Field(
|
|
2853
3544
|
description=(
|
|
2854
3545
|
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
@@ -2994,52 +3685,6 @@ class Compositions(CycloneDXBaseModel):
|
|
|
2994
3685
|
] = None
|
|
2995
3686
|
|
|
2996
3687
|
|
|
2997
|
-
class Annotations(CycloneDXBaseModel):
|
|
2998
|
-
"""
|
|
2999
|
-
A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.
|
|
3000
|
-
"""
|
|
3001
|
-
|
|
3002
|
-
class Config:
|
|
3003
|
-
extra = Extra.forbid
|
|
3004
|
-
|
|
3005
|
-
bom_ref: Annotated[
|
|
3006
|
-
Optional[str],
|
|
3007
|
-
Field(
|
|
3008
|
-
alias="bom-ref",
|
|
3009
|
-
description=(
|
|
3010
|
-
"An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every"
|
|
3011
|
-
" bom-ref MUST be unique within the BOM."
|
|
3012
|
-
),
|
|
3013
|
-
min_length=1,
|
|
3014
|
-
title="BOM Reference",
|
|
3015
|
-
),
|
|
3016
|
-
] = None
|
|
3017
|
-
subjects: Annotated[
|
|
3018
|
-
List[Union[RefLinkType, BomLinkElementType]],
|
|
3019
|
-
Field(
|
|
3020
|
-
description=(
|
|
3021
|
-
"The object in the BOM identified by its bom-ref. This is often a component or service, but may be any"
|
|
3022
|
-
" object type supporting bom-refs."
|
|
3023
|
-
),
|
|
3024
|
-
title="BOM References",
|
|
3025
|
-
),
|
|
3026
|
-
]
|
|
3027
|
-
timestamp: Annotated[
|
|
3028
|
-
datetime, Field(description="The date and time (timestamp) when the annotation was created.", title="Timestamp")
|
|
3029
|
-
]
|
|
3030
|
-
text: Annotated[str, Field(description="The textual content of the annotation.", title="Text")]
|
|
3031
|
-
signature: Annotated[
|
|
3032
|
-
Optional[Union[Signature1, Signature2, Signer]],
|
|
3033
|
-
Field(
|
|
3034
|
-
description=(
|
|
3035
|
-
"Enveloped signature in [JSON Signature Format"
|
|
3036
|
-
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
3037
|
-
),
|
|
3038
|
-
title="Signature",
|
|
3039
|
-
),
|
|
3040
|
-
] = None
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
3688
|
class ModelParameters(CycloneDXBaseModel):
|
|
3044
3689
|
"""
|
|
3045
3690
|
Hyper-parameters for construction of the model.
|
|
@@ -3080,7 +3725,7 @@ class ModelParameters(CycloneDXBaseModel):
|
|
|
3080
3725
|
),
|
|
3081
3726
|
] = None
|
|
3082
3727
|
datasets: Annotated[
|
|
3083
|
-
Optional[List[Union[ComponentData,
|
|
3728
|
+
Optional[List[Union[ComponentData, Datasets]]],
|
|
3084
3729
|
Field(description="The datasets used to train and evaluate the model.", title="Datasets"),
|
|
3085
3730
|
] = None
|
|
3086
3731
|
inputs: Annotated[
|
|
@@ -3178,7 +3823,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3178
3823
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
3179
3824
|
] = None
|
|
3180
3825
|
resourceReferences: Annotated[
|
|
3181
|
-
Optional[List[
|
|
3826
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
3182
3827
|
Field(
|
|
3183
3828
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
3184
3829
|
title="Resource references",
|
|
@@ -3201,7 +3846,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3201
3846
|
),
|
|
3202
3847
|
] = None
|
|
3203
3848
|
inputs: Annotated[
|
|
3204
|
-
Optional[List[
|
|
3849
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
3205
3850
|
Field(
|
|
3206
3851
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
3207
3852
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -3209,7 +3854,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3209
3854
|
),
|
|
3210
3855
|
] = None
|
|
3211
3856
|
outputs: Annotated[
|
|
3212
|
-
Optional[List[
|
|
3857
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
3213
3858
|
Field(
|
|
3214
3859
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
3215
3860
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -3272,7 +3917,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3272
3917
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
3273
3918
|
] = None
|
|
3274
3919
|
resourceReferences: Annotated[
|
|
3275
|
-
Optional[List[
|
|
3920
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
3276
3921
|
Field(
|
|
3277
3922
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
3278
3923
|
title="Resource references",
|
|
@@ -3309,7 +3954,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3309
3954
|
),
|
|
3310
3955
|
] = None
|
|
3311
3956
|
inputs: Annotated[
|
|
3312
|
-
Optional[List[
|
|
3957
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
3313
3958
|
Field(
|
|
3314
3959
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
3315
3960
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -3317,7 +3962,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3317
3962
|
),
|
|
3318
3963
|
] = None
|
|
3319
3964
|
outputs: Annotated[
|
|
3320
|
-
Optional[List[
|
|
3965
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
3321
3966
|
Field(
|
|
3322
3967
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
3323
3968
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -3503,7 +4148,7 @@ class CyclonedxSoftwareBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
3503
4148
|
] = None
|
|
3504
4149
|
|
|
3505
4150
|
|
|
3506
|
-
class
|
|
4151
|
+
class Tools(CycloneDXBaseModel):
|
|
3507
4152
|
"""
|
|
3508
4153
|
The tool(s) used in the creation of the BOM.
|
|
3509
4154
|
"""
|
|
@@ -3539,9 +4184,9 @@ class Metadata(CycloneDXBaseModel):
|
|
|
3539
4184
|
Field(description="The date and time (timestamp) when the BOM was created.", title="Timestamp"),
|
|
3540
4185
|
] = None
|
|
3541
4186
|
lifecycles: Annotated[
|
|
3542
|
-
Optional[List[Union[
|
|
4187
|
+
Optional[List[Union[Lifecycles, Lifecycles1]]], Field(description="", title="Lifecycles")
|
|
3543
4188
|
] = None
|
|
3544
|
-
tools: Optional[Union[
|
|
4189
|
+
tools: Optional[Union[Tools, List[Tool]]] = None
|
|
3545
4190
|
authors: Annotated[
|
|
3546
4191
|
Optional[List[OrganizationalContact]],
|
|
3547
4192
|
Field(
|
|
@@ -3572,7 +4217,7 @@ class Metadata(CycloneDXBaseModel):
|
|
|
3572
4217
|
),
|
|
3573
4218
|
] = None
|
|
3574
4219
|
licenses: Annotated[
|
|
3575
|
-
Optional[List],
|
|
4220
|
+
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
3576
4221
|
Field(
|
|
3577
4222
|
description=(
|
|
3578
4223
|
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
@@ -3816,7 +4461,7 @@ class Component(CycloneDXBaseModel):
|
|
|
3816
4461
|
] = Scope.required
|
|
3817
4462
|
hashes: Annotated[Optional[List[Hash]], Field(title="Component Hashes")] = None
|
|
3818
4463
|
licenses: Annotated[
|
|
3819
|
-
Optional[List],
|
|
4464
|
+
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
3820
4465
|
Field(
|
|
3821
4466
|
description=(
|
|
3822
4467
|
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
@@ -3964,7 +4609,7 @@ class Component(CycloneDXBaseModel):
|
|
|
3964
4609
|
] = None
|
|
3965
4610
|
|
|
3966
4611
|
|
|
3967
|
-
class
|
|
4612
|
+
class Tools1(CycloneDXBaseModel):
|
|
3968
4613
|
"""
|
|
3969
4614
|
The tool(s) used to identify, confirm, or score the vulnerability.
|
|
3970
4615
|
"""
|
|
@@ -4038,13 +4683,14 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4038
4683
|
Optional[List[Rating]], Field(description="List of vulnerability ratings", title="Ratings")
|
|
4039
4684
|
] = None
|
|
4040
4685
|
cwes: Annotated[
|
|
4041
|
-
Optional[List[
|
|
4686
|
+
Optional[List[int]],
|
|
4042
4687
|
Field(
|
|
4043
4688
|
description=(
|
|
4044
4689
|
"List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability. For example 399"
|
|
4045
4690
|
" (of https://cwe.mitre.org/data/definitions/399.html)"
|
|
4046
4691
|
),
|
|
4047
4692
|
examples=[399],
|
|
4693
|
+
ge=1,
|
|
4048
4694
|
title="CWEs",
|
|
4049
4695
|
),
|
|
4050
4696
|
] = None
|
|
@@ -4123,7 +4769,7 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4123
4769
|
title="Credits",
|
|
4124
4770
|
),
|
|
4125
4771
|
] = None
|
|
4126
|
-
tools: Optional[Union[
|
|
4772
|
+
tools: Optional[Union[Tools1, List[Tool]]] = None
|
|
4127
4773
|
analysis: Annotated[
|
|
4128
4774
|
Optional[Analysis],
|
|
4129
4775
|
Field(
|
|
@@ -4153,6 +4799,135 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4153
4799
|
] = None
|
|
4154
4800
|
|
|
4155
4801
|
|
|
4802
|
+
class Annotator(CycloneDXBaseModel):
|
|
4803
|
+
"""
|
|
4804
|
+
The organization, person, component, or service which created the textual content of the annotation.
|
|
4805
|
+
"""
|
|
4806
|
+
|
|
4807
|
+
class Config:
|
|
4808
|
+
extra = Extra.forbid
|
|
4809
|
+
|
|
4810
|
+
organization: Annotated[OrganizationalEntity, Field(description="The organization that created the annotation")]
|
|
4811
|
+
individual: Annotated[
|
|
4812
|
+
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
4813
|
+
] = None
|
|
4814
|
+
component: Annotated[
|
|
4815
|
+
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
4816
|
+
] = None
|
|
4817
|
+
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
4818
|
+
|
|
4819
|
+
|
|
4820
|
+
class Annotator1(CycloneDXBaseModel):
|
|
4821
|
+
"""
|
|
4822
|
+
The organization, person, component, or service which created the textual content of the annotation.
|
|
4823
|
+
"""
|
|
4824
|
+
|
|
4825
|
+
class Config:
|
|
4826
|
+
extra = Extra.forbid
|
|
4827
|
+
|
|
4828
|
+
organization: Annotated[
|
|
4829
|
+
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
4830
|
+
] = None
|
|
4831
|
+
individual: Annotated[OrganizationalContact, Field(description="The person that created the annotation")]
|
|
4832
|
+
component: Annotated[
|
|
4833
|
+
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
4834
|
+
] = None
|
|
4835
|
+
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
4836
|
+
|
|
4837
|
+
|
|
4838
|
+
class Annotator2(CycloneDXBaseModel):
|
|
4839
|
+
"""
|
|
4840
|
+
The organization, person, component, or service which created the textual content of the annotation.
|
|
4841
|
+
"""
|
|
4842
|
+
|
|
4843
|
+
class Config:
|
|
4844
|
+
extra = Extra.forbid
|
|
4845
|
+
|
|
4846
|
+
organization: Annotated[
|
|
4847
|
+
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
4848
|
+
] = None
|
|
4849
|
+
individual: Annotated[
|
|
4850
|
+
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
4851
|
+
] = None
|
|
4852
|
+
component: Annotated[Component, Field(description="The tool or component that created the annotation")]
|
|
4853
|
+
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
4854
|
+
|
|
4855
|
+
|
|
4856
|
+
class Annotator3(CycloneDXBaseModel):
|
|
4857
|
+
"""
|
|
4858
|
+
The organization, person, component, or service which created the textual content of the annotation.
|
|
4859
|
+
"""
|
|
4860
|
+
|
|
4861
|
+
class Config:
|
|
4862
|
+
extra = Extra.forbid
|
|
4863
|
+
|
|
4864
|
+
organization: Annotated[
|
|
4865
|
+
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
4866
|
+
] = None
|
|
4867
|
+
individual: Annotated[
|
|
4868
|
+
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
4869
|
+
] = None
|
|
4870
|
+
component: Annotated[
|
|
4871
|
+
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
4872
|
+
] = None
|
|
4873
|
+
service: Annotated[Service, Field(description="The service that created the annotation")]
|
|
4874
|
+
|
|
4875
|
+
|
|
4876
|
+
class Annotations(CycloneDXBaseModel):
|
|
4877
|
+
"""
|
|
4878
|
+
A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.
|
|
4879
|
+
"""
|
|
4880
|
+
|
|
4881
|
+
class Config:
|
|
4882
|
+
extra = Extra.forbid
|
|
4883
|
+
|
|
4884
|
+
bom_ref: Annotated[
|
|
4885
|
+
Optional[str],
|
|
4886
|
+
Field(
|
|
4887
|
+
alias="bom-ref",
|
|
4888
|
+
description=(
|
|
4889
|
+
"An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every"
|
|
4890
|
+
" bom-ref MUST be unique within the BOM."
|
|
4891
|
+
),
|
|
4892
|
+
min_length=1,
|
|
4893
|
+
title="BOM Reference",
|
|
4894
|
+
),
|
|
4895
|
+
] = None
|
|
4896
|
+
subjects: Annotated[
|
|
4897
|
+
List[Union[RefLinkType, BomLinkElementType]],
|
|
4898
|
+
Field(
|
|
4899
|
+
description=(
|
|
4900
|
+
"The object in the BOM identified by its bom-ref. This is often a component or service, but may be any"
|
|
4901
|
+
" object type supporting bom-refs."
|
|
4902
|
+
),
|
|
4903
|
+
title="BOM References",
|
|
4904
|
+
),
|
|
4905
|
+
]
|
|
4906
|
+
annotator: Annotated[
|
|
4907
|
+
Union[Annotator, Annotator1, Annotator2, Annotator3],
|
|
4908
|
+
Field(
|
|
4909
|
+
description=(
|
|
4910
|
+
"The organization, person, component, or service which created the textual content of the annotation."
|
|
4911
|
+
),
|
|
4912
|
+
title="Annotator",
|
|
4913
|
+
),
|
|
4914
|
+
]
|
|
4915
|
+
timestamp: Annotated[
|
|
4916
|
+
datetime, Field(description="The date and time (timestamp) when the annotation was created.", title="Timestamp")
|
|
4917
|
+
]
|
|
4918
|
+
text: Annotated[str, Field(description="The textual content of the annotation.", title="Text")]
|
|
4919
|
+
signature: Annotated[
|
|
4920
|
+
Optional[Union[Signature1, Signature2, Signer]],
|
|
4921
|
+
Field(
|
|
4922
|
+
description=(
|
|
4923
|
+
"Enveloped signature in [JSON Signature Format"
|
|
4924
|
+
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
4925
|
+
),
|
|
4926
|
+
title="Signature",
|
|
4927
|
+
),
|
|
4928
|
+
] = None
|
|
4929
|
+
|
|
4930
|
+
|
|
4156
4931
|
class Formula(CycloneDXBaseModel):
|
|
4157
4932
|
"""
|
|
4158
4933
|
Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed.
|
|
@@ -4206,6 +4981,6 @@ class Formula(CycloneDXBaseModel):
|
|
|
4206
4981
|
|
|
4207
4982
|
Service.update_forward_refs()
|
|
4208
4983
|
CyclonedxSoftwareBillOfMaterialsStandard.update_forward_refs()
|
|
4209
|
-
|
|
4984
|
+
Tools.update_forward_refs()
|
|
4210
4985
|
Metadata.update_forward_refs()
|
|
4211
4986
|
Pedigree.update_forward_refs()
|