hoppr-cyclonedx-models 0.6.0__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 +1118 -361
- hoppr_cyclonedx_models/cyclonedx_1_6.py +1615 -407
- hoppr_cyclonedx_models/spdx.py +28 -3
- {hoppr_cyclonedx_models-0.6.0.dist-info → hoppr_cyclonedx_models-0.6.1.dist-info}/METADATA +6 -4
- hoppr_cyclonedx_models-0.6.1.dist-info/RECORD +12 -0
- {hoppr_cyclonedx_models-0.6.0.dist-info → hoppr_cyclonedx_models-0.6.1.dist-info}/WHEEL +1 -1
- hoppr_cyclonedx_models-0.6.0.dist-info/RECORD +0 -12
- {hoppr_cyclonedx_models-0.6.0.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,15 +25,15 @@ 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
|
|
33
33
|
|
|
34
34
|
from datetime import datetime
|
|
35
35
|
from enum import Enum
|
|
36
|
-
from typing import
|
|
36
|
+
from typing import List, Optional, Union
|
|
37
37
|
|
|
38
38
|
from pydantic import AnyUrl, EmailStr, Extra, Field
|
|
39
39
|
from typing_extensions import Annotated, Literal
|
|
@@ -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,78 +324,33 @@ 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
|
|
|
389
352
|
LicenseChoice2 = Annotated[
|
|
390
|
-
List[
|
|
353
|
+
List[LicenseChoice21],
|
|
391
354
|
Field(
|
|
392
355
|
description="A tuple of exactly one SPDX License Expression.",
|
|
393
356
|
max_items=1,
|
|
@@ -626,11 +589,12 @@ class Dependency(CycloneDXBaseModel):
|
|
|
626
589
|
),
|
|
627
590
|
]
|
|
628
591
|
dependsOn: Annotated[
|
|
629
|
-
Optional[List[
|
|
592
|
+
Optional[List[str]],
|
|
630
593
|
Field(
|
|
631
594
|
description=(
|
|
632
595
|
"The bom-ref identifiers of the components or services that are dependencies of this dependency object."
|
|
633
596
|
),
|
|
597
|
+
min_length=1,
|
|
634
598
|
title="Depends On",
|
|
635
599
|
),
|
|
636
600
|
] = None
|
|
@@ -990,19 +954,6 @@ class Advisory(CycloneDXBaseModel):
|
|
|
990
954
|
url: Annotated[str, Field(description="Location where the advisory can be obtained.", title="URL")]
|
|
991
955
|
|
|
992
956
|
|
|
993
|
-
Cwe = Annotated[
|
|
994
|
-
int,
|
|
995
|
-
Field(
|
|
996
|
-
description=(
|
|
997
|
-
"Integer representation of a Common Weaknesses Enumerations (CWE). For example 399 (of"
|
|
998
|
-
" https://cwe.mitre.org/data/definitions/399.html)"
|
|
999
|
-
),
|
|
1000
|
-
ge=1,
|
|
1001
|
-
title="CWE",
|
|
1002
|
-
),
|
|
1003
|
-
]
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
957
|
class Severity(Enum):
|
|
1007
958
|
"""
|
|
1008
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.
|
|
@@ -1234,19 +1185,6 @@ class Analysis(CycloneDXBaseModel):
|
|
|
1234
1185
|
] = None
|
|
1235
1186
|
|
|
1236
1187
|
|
|
1237
|
-
class Affect(CycloneDXBaseModel):
|
|
1238
|
-
class Config:
|
|
1239
|
-
extra = Extra.forbid
|
|
1240
|
-
|
|
1241
|
-
ref: Annotated[
|
|
1242
|
-
Union[RefLinkType, BomLinkElementType],
|
|
1243
|
-
Field(description="References a component or service by the objects bom-ref", title="Reference"),
|
|
1244
|
-
]
|
|
1245
|
-
versions: Annotated[
|
|
1246
|
-
Optional[List], Field(description="Zero or more individual versions or range of versions.", title="Versions")
|
|
1247
|
-
] = None
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
1188
|
class AffectedStatus(Enum):
|
|
1251
1189
|
"""
|
|
1252
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.
|
|
@@ -1264,24 +1202,6 @@ class AffectedStatus(Enum):
|
|
|
1264
1202
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
1265
1203
|
|
|
1266
1204
|
|
|
1267
|
-
Version = Annotated[
|
|
1268
|
-
str, Field(description="A single version of a component or service.", max_length=1024, min_length=1)
|
|
1269
|
-
]
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
Range = Annotated[
|
|
1273
|
-
str,
|
|
1274
|
-
Field(
|
|
1275
|
-
description=(
|
|
1276
|
-
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
1277
|
-
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
1278
|
-
),
|
|
1279
|
-
max_length=1024,
|
|
1280
|
-
min_length=1,
|
|
1281
|
-
),
|
|
1282
|
-
]
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
1205
|
class Type4(Enum):
|
|
1286
1206
|
"""
|
|
1287
1207
|
Learning types describing the learning problem or hybrid learning problem.
|
|
@@ -1318,7 +1238,7 @@ class Approach(CycloneDXBaseModel):
|
|
|
1318
1238
|
] = None
|
|
1319
1239
|
|
|
1320
1240
|
|
|
1321
|
-
class
|
|
1241
|
+
class Datasets(CycloneDXBaseModel):
|
|
1322
1242
|
class Config:
|
|
1323
1243
|
extra = Extra.forbid
|
|
1324
1244
|
|
|
@@ -1655,7 +1575,7 @@ class Parameter(CycloneDXBaseModel):
|
|
|
1655
1575
|
dataType: Annotated[Optional[str], Field(description="The data type of the parameter.", title="Data type")] = None
|
|
1656
1576
|
|
|
1657
1577
|
|
|
1658
|
-
class
|
|
1578
|
+
class Algorithm(Enum):
|
|
1659
1579
|
"""
|
|
1660
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".
|
|
1661
1581
|
"""
|
|
@@ -1785,165 +1705,565 @@ class Hash(CycloneDXBaseModel):
|
|
|
1785
1705
|
]
|
|
1786
1706
|
|
|
1787
1707
|
|
|
1788
|
-
class
|
|
1708
|
+
class Licensor(CycloneDXBaseModel):
|
|
1709
|
+
"""
|
|
1710
|
+
The individual or organization that grants a license to another individual or organization
|
|
1711
|
+
"""
|
|
1712
|
+
|
|
1789
1713
|
class Config:
|
|
1790
1714
|
extra = Extra.forbid
|
|
1791
1715
|
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
Field(
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
" MUST be unique within the BOM."
|
|
1799
|
-
),
|
|
1800
|
-
min_length=1,
|
|
1801
|
-
title="BOM Reference",
|
|
1802
|
-
),
|
|
1803
|
-
] = None
|
|
1804
|
-
id: Annotated[
|
|
1805
|
-
Optional[spdx.LicenseID],
|
|
1806
|
-
Field(description="A valid SPDX license ID", examples=["Apache-2.0"], title="License ID (SPDX)"),
|
|
1807
|
-
] = None
|
|
1808
|
-
name: Annotated[
|
|
1809
|
-
Optional[str],
|
|
1716
|
+
organization: Annotated[
|
|
1717
|
+
OrganizationalEntity,
|
|
1718
|
+
Field(description="The organization that granted the license", title="Licensor (Organization)"),
|
|
1719
|
+
]
|
|
1720
|
+
individual: Annotated[
|
|
1721
|
+
Optional[OrganizationalContact],
|
|
1810
1722
|
Field(
|
|
1811
|
-
description="
|
|
1812
|
-
|
|
1813
|
-
title="License Name",
|
|
1723
|
+
description="The individual, not associated with an organization, that granted the license",
|
|
1724
|
+
title="Licensor (Individual)",
|
|
1814
1725
|
),
|
|
1815
1726
|
] = None
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
),
|
|
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)"),
|
|
1830
1740
|
] = None
|
|
1831
|
-
|
|
1832
|
-
|
|
1741
|
+
individual: Annotated[
|
|
1742
|
+
OrganizationalContact,
|
|
1833
1743
|
Field(
|
|
1834
|
-
description=
|
|
1835
|
-
|
|
1836
|
-
" other important metadata"
|
|
1837
|
-
),
|
|
1838
|
-
title="Licensing information",
|
|
1744
|
+
description="The individual, not associated with an organization, that granted the license",
|
|
1745
|
+
title="Licensor (Individual)",
|
|
1839
1746
|
),
|
|
1840
|
-
]
|
|
1841
|
-
|
|
1842
|
-
|
|
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],
|
|
1843
1764
|
Field(
|
|
1844
|
-
description=
|
|
1845
|
-
|
|
1846
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1847
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1848
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1849
|
-
" registered in the [CycloneDX Property"
|
|
1850
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
1851
|
-
),
|
|
1852
|
-
title="Properties",
|
|
1765
|
+
description="The individual, not associated with an organization, that was granted the license",
|
|
1766
|
+
title="Licensee (Individual)",
|
|
1853
1767
|
),
|
|
1854
1768
|
] = None
|
|
1855
1769
|
|
|
1856
1770
|
|
|
1857
|
-
class
|
|
1771
|
+
class Licensee1(CycloneDXBaseModel):
|
|
1772
|
+
"""
|
|
1773
|
+
The individual or organization for which a license was granted to
|
|
1774
|
+
"""
|
|
1775
|
+
|
|
1858
1776
|
class Config:
|
|
1859
1777
|
extra = Extra.forbid
|
|
1860
1778
|
|
|
1861
|
-
|
|
1779
|
+
organization: Annotated[
|
|
1780
|
+
Optional[OrganizationalEntity],
|
|
1781
|
+
Field(description="The organization that was granted the license", title="Licensee (Organization)"),
|
|
1782
|
+
] = None
|
|
1783
|
+
individual: Annotated[
|
|
1784
|
+
OrganizationalContact,
|
|
1785
|
+
Field(
|
|
1786
|
+
description="The individual, not associated with an organization, that was granted the license",
|
|
1787
|
+
title="Licensee (Individual)",
|
|
1788
|
+
),
|
|
1789
|
+
]
|
|
1862
1790
|
|
|
1863
1791
|
|
|
1864
|
-
class
|
|
1792
|
+
class Purchaser(CycloneDXBaseModel):
|
|
1865
1793
|
"""
|
|
1866
|
-
|
|
1794
|
+
The individual or organization that purchased the license
|
|
1867
1795
|
"""
|
|
1868
1796
|
|
|
1869
1797
|
class Config:
|
|
1870
1798
|
extra = Extra.forbid
|
|
1871
1799
|
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
Field(
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
),
|
|
1879
|
-
title="UID",
|
|
1880
|
-
),
|
|
1881
|
-
] = None
|
|
1882
|
-
url: Annotated[
|
|
1883
|
-
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],
|
|
1884
1806
|
Field(
|
|
1885
|
-
description="The
|
|
1886
|
-
title="
|
|
1807
|
+
description="The individual, not associated with an organization, that purchased the license",
|
|
1808
|
+
title="Purchaser (Individual)",
|
|
1887
1809
|
),
|
|
1888
1810
|
] = None
|
|
1889
|
-
author: Annotated[
|
|
1890
|
-
Optional[IdentifiableAction],
|
|
1891
|
-
Field(description="The author who created the changes in the commit", title="Author"),
|
|
1892
|
-
] = None
|
|
1893
|
-
committer: Annotated[
|
|
1894
|
-
Optional[IdentifiableAction],
|
|
1895
|
-
Field(description="The person who committed or pushed the commit", title="Committer"),
|
|
1896
|
-
] = None
|
|
1897
|
-
message: Annotated[
|
|
1898
|
-
Optional[str], Field(description="The text description of the contents of the commit", title="Message")
|
|
1899
|
-
] = None
|
|
1900
1811
|
|
|
1901
1812
|
|
|
1902
|
-
class
|
|
1813
|
+
class Purchaser1(CycloneDXBaseModel):
|
|
1903
1814
|
"""
|
|
1904
|
-
|
|
1815
|
+
The individual or organization that purchased the license
|
|
1905
1816
|
"""
|
|
1906
1817
|
|
|
1907
1818
|
class Config:
|
|
1908
1819
|
extra = Extra.forbid
|
|
1909
1820
|
|
|
1910
|
-
|
|
1911
|
-
|
|
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,
|
|
1912
1827
|
Field(
|
|
1913
|
-
description=
|
|
1914
|
-
|
|
1915
|
-
" behavior or functionality.\n\n* __unofficial__ = A patch which is not developed by the creators or"
|
|
1916
|
-
" maintainers of the software being patched. Refer to"
|
|
1917
|
-
" [https://en.wikipedia.org/wiki/Unofficial_patch](https://en.wikipedia.org/wiki/Unofficial_patch)\n*"
|
|
1918
|
-
" __monkey__ = A patch which dynamically modifies runtime behavior. Refer to"
|
|
1919
|
-
" [https://en.wikipedia.org/wiki/Monkey_patch](https://en.wikipedia.org/wiki/Monkey_patch)\n*"
|
|
1920
|
-
" __backport__ = A patch which takes code from a newer version of software and applies it to older"
|
|
1921
|
-
" versions of the same software. Refer to"
|
|
1922
|
-
" [https://en.wikipedia.org/wiki/Backporting](https://en.wikipedia.org/wiki/Backporting)\n*"
|
|
1923
|
-
" __cherry-pick__ = A patch created by selectively applying commits from other versions or branches of"
|
|
1924
|
-
" the same software."
|
|
1925
|
-
),
|
|
1926
|
-
title="Type",
|
|
1828
|
+
description="The individual, not associated with an organization, that purchased the license",
|
|
1829
|
+
title="Purchaser (Individual)",
|
|
1927
1830
|
),
|
|
1928
1831
|
]
|
|
1929
|
-
diff: Annotated[
|
|
1930
|
-
Optional[Diff],
|
|
1931
|
-
Field(
|
|
1932
|
-
description=(
|
|
1933
|
-
"The patch file (or diff) that show changes. Refer to"
|
|
1934
|
-
" [https://en.wikipedia.org/wiki/Diff](https://en.wikipedia.org/wiki/Diff)"
|
|
1935
|
-
),
|
|
1936
|
-
title="Diff",
|
|
1937
|
-
),
|
|
1938
|
-
] = None
|
|
1939
|
-
resolves: Annotated[
|
|
1940
|
-
Optional[List[Issue]], Field(description="A collection of issues the patch resolves", title="Resolves")
|
|
1941
|
-
] = None
|
|
1942
1832
|
|
|
1943
1833
|
|
|
1944
|
-
class
|
|
1834
|
+
class Licensing(CycloneDXBaseModel):
|
|
1945
1835
|
"""
|
|
1946
|
-
|
|
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
|
|
2225
|
+
"""
|
|
2226
|
+
|
|
2227
|
+
class Config:
|
|
2228
|
+
extra = Extra.forbid
|
|
2229
|
+
|
|
2230
|
+
type: Annotated[
|
|
2231
|
+
Type1,
|
|
2232
|
+
Field(
|
|
2233
|
+
description=(
|
|
2234
|
+
"Specifies the purpose for the patch including the resolution of defects, security issues, or new"
|
|
2235
|
+
" behavior or functionality.\n\n* __unofficial__ = A patch which is not developed by the creators or"
|
|
2236
|
+
" maintainers of the software being patched. Refer to"
|
|
2237
|
+
" [https://en.wikipedia.org/wiki/Unofficial_patch](https://en.wikipedia.org/wiki/Unofficial_patch)\n*"
|
|
2238
|
+
" __monkey__ = A patch which dynamically modifies runtime behavior. Refer to"
|
|
2239
|
+
" [https://en.wikipedia.org/wiki/Monkey_patch](https://en.wikipedia.org/wiki/Monkey_patch)\n*"
|
|
2240
|
+
" __backport__ = A patch which takes code from a newer version of software and applies it to older"
|
|
2241
|
+
" versions of the same software. Refer to"
|
|
2242
|
+
" [https://en.wikipedia.org/wiki/Backporting](https://en.wikipedia.org/wiki/Backporting)\n*"
|
|
2243
|
+
" __cherry-pick__ = A patch created by selectively applying commits from other versions or branches of"
|
|
2244
|
+
" the same software."
|
|
2245
|
+
),
|
|
2246
|
+
title="Type",
|
|
2247
|
+
),
|
|
2248
|
+
]
|
|
2249
|
+
diff: Annotated[
|
|
2250
|
+
Optional[Diff],
|
|
2251
|
+
Field(
|
|
2252
|
+
description=(
|
|
2253
|
+
"The patch file (or diff) that show changes. Refer to"
|
|
2254
|
+
" [https://en.wikipedia.org/wiki/Diff](https://en.wikipedia.org/wiki/Diff)"
|
|
2255
|
+
),
|
|
2256
|
+
title="Diff",
|
|
2257
|
+
),
|
|
2258
|
+
] = None
|
|
2259
|
+
resolves: Annotated[
|
|
2260
|
+
Optional[List[Issue]], Field(description="A collection of issues the patch resolves", title="Resolves")
|
|
2261
|
+
] = None
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
class ExternalReference(CycloneDXBaseModel):
|
|
2265
|
+
"""
|
|
2266
|
+
External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM.
|
|
1947
2267
|
"""
|
|
1948
2268
|
|
|
1949
2269
|
class Config:
|
|
@@ -2091,35 +2411,95 @@ class Rating(CycloneDXBaseModel):
|
|
|
2091
2411
|
vector: Annotated[
|
|
2092
2412
|
Optional[str],
|
|
2093
2413
|
Field(
|
|
2094
|
-
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,
|
|
2095
2462
|
),
|
|
2096
2463
|
] = None
|
|
2097
|
-
|
|
2098
|
-
Optional[
|
|
2099
|
-
|
|
2100
|
-
] = None
|
|
2464
|
+
status: Annotated[
|
|
2465
|
+
Optional[AffectedStatus], Field(description="The vulnerability status for the version or range of versions.")
|
|
2466
|
+
] = AffectedStatus.affected
|
|
2101
2467
|
|
|
2102
2468
|
|
|
2103
|
-
class
|
|
2104
|
-
"""
|
|
2105
|
-
Individuals or organizations credited with the discovery of the vulnerability.
|
|
2106
|
-
"""
|
|
2107
|
-
|
|
2469
|
+
class Versions1(CycloneDXBaseModel):
|
|
2108
2470
|
class Config:
|
|
2109
2471
|
extra = Extra.forbid
|
|
2110
2472
|
|
|
2111
|
-
|
|
2112
|
-
Optional[
|
|
2113
|
-
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)
|
|
2114
2475
|
] = None
|
|
2115
|
-
|
|
2116
|
-
|
|
2476
|
+
range: Annotated[
|
|
2477
|
+
str,
|
|
2117
2478
|
Field(
|
|
2118
2479
|
description=(
|
|
2119
|
-
"
|
|
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"
|
|
2120
2482
|
),
|
|
2121
|
-
|
|
2483
|
+
max_length=1024,
|
|
2484
|
+
min_length=1,
|
|
2122
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"),
|
|
2123
2503
|
] = None
|
|
2124
2504
|
|
|
2125
2505
|
|
|
@@ -2173,14 +2553,22 @@ class Considerations(CycloneDXBaseModel):
|
|
|
2173
2553
|
] = None
|
|
2174
2554
|
|
|
2175
2555
|
|
|
2176
|
-
class
|
|
2556
|
+
class DataGovernanceResponsibleParty1(CycloneDXBaseModel):
|
|
2177
2557
|
class Config:
|
|
2178
2558
|
extra = Extra.forbid
|
|
2179
2559
|
|
|
2180
|
-
organization: Annotated[
|
|
2560
|
+
organization: Annotated[OrganizationalEntity, Field(title="Organization")]
|
|
2181
2561
|
contact: Annotated[Optional[OrganizationalContact], Field(title="Individual")] = None
|
|
2182
2562
|
|
|
2183
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
|
+
|
|
2184
2572
|
class GraphicsCollection(CycloneDXBaseModel):
|
|
2185
2573
|
"""
|
|
2186
2574
|
A collection of graphics that represent various measurements.
|
|
@@ -2210,7 +2598,7 @@ class Step(CycloneDXBaseModel):
|
|
|
2210
2598
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2211
2599
|
|
|
2212
2600
|
|
|
2213
|
-
class
|
|
2601
|
+
class ResourceReferenceChoice1(CycloneDXBaseModel):
|
|
2214
2602
|
"""
|
|
2215
2603
|
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
2216
2604
|
"""
|
|
@@ -2219,20 +2607,38 @@ class ResourceReferenceChoice(CycloneDXBaseModel):
|
|
|
2219
2607
|
extra = Extra.forbid
|
|
2220
2608
|
|
|
2221
2609
|
ref: Annotated[
|
|
2222
|
-
|
|
2610
|
+
Union[RefLinkType, BomLinkElementType],
|
|
2223
2611
|
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
2224
|
-
]
|
|
2612
|
+
]
|
|
2225
2613
|
externalReference: Annotated[
|
|
2226
2614
|
Optional[ExternalReference],
|
|
2227
2615
|
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
2228
2616
|
] = None
|
|
2229
2617
|
|
|
2230
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
|
+
|
|
2231
2637
|
class Signer(CycloneDXBaseModel):
|
|
2232
2638
|
class Config:
|
|
2233
2639
|
extra = Extra.forbid
|
|
2234
2640
|
|
|
2235
|
-
algorithm: Union[
|
|
2641
|
+
algorithm: Union[Algorithm, AnyUrl]
|
|
2236
2642
|
keyId: Annotated[
|
|
2237
2643
|
Optional[str],
|
|
2238
2644
|
Field(description="Optional. Application specific string identifying the signature key.", title="Key ID"),
|
|
@@ -2329,21 +2735,21 @@ class DataGovernance(CycloneDXBaseModel):
|
|
|
2329
2735
|
extra = Extra.forbid
|
|
2330
2736
|
|
|
2331
2737
|
custodians: Annotated[
|
|
2332
|
-
Optional[List[
|
|
2738
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2333
2739
|
Field(
|
|
2334
2740
|
description="Data custodians are responsible for the safe custody, transport, and storage of data.",
|
|
2335
2741
|
title="Data Custodians",
|
|
2336
2742
|
),
|
|
2337
2743
|
] = None
|
|
2338
2744
|
stewards: Annotated[
|
|
2339
|
-
Optional[List[
|
|
2745
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2340
2746
|
Field(
|
|
2341
2747
|
description="Data stewards are responsible for data content, context, and associated business rules.",
|
|
2342
2748
|
title="Data Stewards",
|
|
2343
2749
|
),
|
|
2344
2750
|
] = None
|
|
2345
2751
|
owners: Annotated[
|
|
2346
|
-
Optional[List[
|
|
2752
|
+
Optional[List[Union[DataGovernanceResponsibleParty1, DataGovernanceResponsibleParty2]]],
|
|
2347
2753
|
Field(description="Data owners are concerned with risk and appropriate access to data.", title="Data Owners"),
|
|
2348
2754
|
] = None
|
|
2349
2755
|
|
|
@@ -2390,7 +2796,7 @@ class Workspace(CycloneDXBaseModel):
|
|
|
2390
2796
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
2391
2797
|
] = None
|
|
2392
2798
|
resourceReferences: Annotated[
|
|
2393
|
-
Optional[List[
|
|
2799
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
2394
2800
|
Field(
|
|
2395
2801
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
2396
2802
|
title="Resource references",
|
|
@@ -2430,46 +2836,229 @@ class Workspace(CycloneDXBaseModel):
|
|
|
2430
2836
|
title="Volume request",
|
|
2431
2837
|
),
|
|
2432
2838
|
] = None
|
|
2433
|
-
volume: Annotated[
|
|
2434
|
-
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]],
|
|
2435
3052
|
Field(
|
|
2436
|
-
description="
|
|
2437
|
-
|
|
2438
|
-
title="Volume",
|
|
3053
|
+
description="Inputs that have the form of parameters with names and values.",
|
|
3054
|
+
title="Environment variables",
|
|
2439
3055
|
),
|
|
2440
|
-
]
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
class Event(CycloneDXBaseModel):
|
|
2445
|
-
"""
|
|
2446
|
-
Represents something that happened that may trigger a response.
|
|
2447
|
-
"""
|
|
2448
|
-
|
|
2449
|
-
class Config:
|
|
2450
|
-
extra = Extra.forbid
|
|
2451
|
-
|
|
2452
|
-
uid: Annotated[
|
|
2453
|
-
Optional[str], Field(description="The unique identifier of the event.", title="Unique Identifier (UID)")
|
|
2454
|
-
] = None
|
|
2455
|
-
description: Annotated[Optional[str], Field(description="A description of the event.", title="Description")] = None
|
|
2456
|
-
timeReceived: Annotated[
|
|
2457
|
-
Optional[datetime],
|
|
2458
|
-
Field(description="The date and time (timestamp) when the event was received.", title="Time Received"),
|
|
2459
|
-
] = None
|
|
2460
|
-
data: Annotated[Optional[Attachment], Field(description="Encoding of the raw event data.", title="Data")] = None
|
|
2461
|
-
source: Annotated[
|
|
2462
|
-
Optional[ResourceReferenceChoice],
|
|
2463
|
-
Field(description="References the component or service that was the source of the event", title="Source"),
|
|
2464
|
-
] = None
|
|
2465
|
-
target: Annotated[
|
|
2466
|
-
Optional[ResourceReferenceChoice],
|
|
2467
|
-
Field(description="References the component or service that was the target of the event", title="Target"),
|
|
2468
|
-
] = None
|
|
3056
|
+
]
|
|
3057
|
+
data: Annotated[Optional[Attachment], Field(description="Inputs that have the form of data.", title="Data")] = None
|
|
2469
3058
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2470
3059
|
|
|
2471
3060
|
|
|
2472
|
-
class
|
|
3061
|
+
class InputType4(CycloneDXBaseModel):
|
|
2473
3062
|
"""
|
|
2474
3063
|
Type that represents various input data types and formats.
|
|
2475
3064
|
"""
|
|
@@ -2478,7 +3067,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2478
3067
|
extra = Extra.forbid
|
|
2479
3068
|
|
|
2480
3069
|
source: Annotated[
|
|
2481
|
-
Optional[
|
|
3070
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2482
3071
|
Field(
|
|
2483
3072
|
description=(
|
|
2484
3073
|
"A references to the component or service that provided the input to the task (e.g., reference to a"
|
|
@@ -2489,7 +3078,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2489
3078
|
),
|
|
2490
3079
|
] = None
|
|
2491
3080
|
target: Annotated[
|
|
2492
|
-
Optional[
|
|
3081
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2493
3082
|
Field(
|
|
2494
3083
|
description=(
|
|
2495
3084
|
"A reference to the component or service that received or stored the input if not the task itself"
|
|
@@ -2500,7 +3089,7 @@ class InputType(CycloneDXBaseModel):
|
|
|
2500
3089
|
),
|
|
2501
3090
|
] = None
|
|
2502
3091
|
resource: Annotated[
|
|
2503
|
-
Optional[
|
|
3092
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2504
3093
|
Field(
|
|
2505
3094
|
description=(
|
|
2506
3095
|
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
@@ -2526,24 +3115,66 @@ class InputType(CycloneDXBaseModel):
|
|
|
2526
3115
|
title="Environment variables",
|
|
2527
3116
|
),
|
|
2528
3117
|
] = None
|
|
2529
|
-
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
|
|
2530
3161
|
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2531
3162
|
|
|
2532
3163
|
|
|
2533
|
-
class
|
|
3164
|
+
class OutputType2(CycloneDXBaseModel):
|
|
2534
3165
|
class Config:
|
|
2535
3166
|
extra = Extra.forbid
|
|
2536
3167
|
|
|
2537
3168
|
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
2538
3169
|
source: Annotated[
|
|
2539
|
-
Optional[
|
|
3170
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2540
3171
|
Field(
|
|
2541
3172
|
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
2542
3173
|
title="Source",
|
|
2543
3174
|
),
|
|
2544
3175
|
] = None
|
|
2545
3176
|
target: Annotated[
|
|
2546
|
-
Optional[
|
|
3177
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2547
3178
|
Field(
|
|
2548
3179
|
description=(
|
|
2549
3180
|
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
@@ -2554,7 +3185,7 @@ class OutputType(CycloneDXBaseModel):
|
|
|
2554
3185
|
),
|
|
2555
3186
|
] = None
|
|
2556
3187
|
resource: Annotated[
|
|
2557
|
-
Optional[
|
|
3188
|
+
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
2558
3189
|
Field(
|
|
2559
3190
|
description="A reference to an independent resource generated as output by the task.",
|
|
2560
3191
|
examples=["configuration file", "source code", "scanning service"],
|
|
@@ -2562,6 +3193,48 @@ class OutputType(CycloneDXBaseModel):
|
|
|
2562
3193
|
),
|
|
2563
3194
|
] = None
|
|
2564
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")]
|
|
2565
3238
|
environmentVars: Annotated[
|
|
2566
3239
|
Optional[List[Union[Property, str]]],
|
|
2567
3240
|
Field(
|
|
@@ -2738,7 +3411,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2738
3411
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
2739
3412
|
] = None
|
|
2740
3413
|
resourceReferences: Annotated[
|
|
2741
|
-
Optional[List[
|
|
3414
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
2742
3415
|
Field(
|
|
2743
3416
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
2744
3417
|
title="Resource references",
|
|
@@ -2757,7 +3430,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2757
3430
|
Field(description="The date and time (timestamp) when the trigger was activated.", title="Time activated"),
|
|
2758
3431
|
] = None
|
|
2759
3432
|
inputs: Annotated[
|
|
2760
|
-
Optional[List[
|
|
3433
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
2761
3434
|
Field(
|
|
2762
3435
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
2763
3436
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -2765,7 +3438,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
2765
3438
|
),
|
|
2766
3439
|
] = None
|
|
2767
3440
|
outputs: Annotated[
|
|
2768
|
-
Optional[List[
|
|
3441
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
2769
3442
|
Field(
|
|
2770
3443
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
2771
3444
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -3012,52 +3685,6 @@ class Compositions(CycloneDXBaseModel):
|
|
|
3012
3685
|
] = None
|
|
3013
3686
|
|
|
3014
3687
|
|
|
3015
|
-
class Annotations(CycloneDXBaseModel):
|
|
3016
|
-
"""
|
|
3017
|
-
A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.
|
|
3018
|
-
"""
|
|
3019
|
-
|
|
3020
|
-
class Config:
|
|
3021
|
-
extra = Extra.forbid
|
|
3022
|
-
|
|
3023
|
-
bom_ref: Annotated[
|
|
3024
|
-
Optional[str],
|
|
3025
|
-
Field(
|
|
3026
|
-
alias="bom-ref",
|
|
3027
|
-
description=(
|
|
3028
|
-
"An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every"
|
|
3029
|
-
" bom-ref MUST be unique within the BOM."
|
|
3030
|
-
),
|
|
3031
|
-
min_length=1,
|
|
3032
|
-
title="BOM Reference",
|
|
3033
|
-
),
|
|
3034
|
-
] = None
|
|
3035
|
-
subjects: Annotated[
|
|
3036
|
-
List[Union[RefLinkType, BomLinkElementType]],
|
|
3037
|
-
Field(
|
|
3038
|
-
description=(
|
|
3039
|
-
"The object in the BOM identified by its bom-ref. This is often a component or service, but may be any"
|
|
3040
|
-
" object type supporting bom-refs."
|
|
3041
|
-
),
|
|
3042
|
-
title="BOM References",
|
|
3043
|
-
),
|
|
3044
|
-
]
|
|
3045
|
-
timestamp: Annotated[
|
|
3046
|
-
datetime, Field(description="The date and time (timestamp) when the annotation was created.", title="Timestamp")
|
|
3047
|
-
]
|
|
3048
|
-
text: Annotated[str, Field(description="The textual content of the annotation.", title="Text")]
|
|
3049
|
-
signature: Annotated[
|
|
3050
|
-
Optional[Union[Signature1, Signature2, Signer]],
|
|
3051
|
-
Field(
|
|
3052
|
-
description=(
|
|
3053
|
-
"Enveloped signature in [JSON Signature Format"
|
|
3054
|
-
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
3055
|
-
),
|
|
3056
|
-
title="Signature",
|
|
3057
|
-
),
|
|
3058
|
-
] = None
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
3688
|
class ModelParameters(CycloneDXBaseModel):
|
|
3062
3689
|
"""
|
|
3063
3690
|
Hyper-parameters for construction of the model.
|
|
@@ -3098,7 +3725,7 @@ class ModelParameters(CycloneDXBaseModel):
|
|
|
3098
3725
|
),
|
|
3099
3726
|
] = None
|
|
3100
3727
|
datasets: Annotated[
|
|
3101
|
-
Optional[List[Union[ComponentData,
|
|
3728
|
+
Optional[List[Union[ComponentData, Datasets]]],
|
|
3102
3729
|
Field(description="The datasets used to train and evaluate the model.", title="Datasets"),
|
|
3103
3730
|
] = None
|
|
3104
3731
|
inputs: Annotated[
|
|
@@ -3196,7 +3823,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3196
3823
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
3197
3824
|
] = None
|
|
3198
3825
|
resourceReferences: Annotated[
|
|
3199
|
-
Optional[List[
|
|
3826
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
3200
3827
|
Field(
|
|
3201
3828
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
3202
3829
|
title="Resource references",
|
|
@@ -3219,7 +3846,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3219
3846
|
),
|
|
3220
3847
|
] = None
|
|
3221
3848
|
inputs: Annotated[
|
|
3222
|
-
Optional[List[
|
|
3849
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
3223
3850
|
Field(
|
|
3224
3851
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
3225
3852
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -3227,7 +3854,7 @@ class Task(CycloneDXBaseModel):
|
|
|
3227
3854
|
),
|
|
3228
3855
|
] = None
|
|
3229
3856
|
outputs: Annotated[
|
|
3230
|
-
Optional[List[
|
|
3857
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
3231
3858
|
Field(
|
|
3232
3859
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
3233
3860
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -3290,7 +3917,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3290
3917
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
3291
3918
|
] = None
|
|
3292
3919
|
resourceReferences: Annotated[
|
|
3293
|
-
Optional[List[
|
|
3920
|
+
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
3294
3921
|
Field(
|
|
3295
3922
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
3296
3923
|
title="Resource references",
|
|
@@ -3327,7 +3954,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3327
3954
|
),
|
|
3328
3955
|
] = None
|
|
3329
3956
|
inputs: Annotated[
|
|
3330
|
-
Optional[List[
|
|
3957
|
+
Optional[List[Union[InputType1, InputType2, InputType3, InputType4]]],
|
|
3331
3958
|
Field(
|
|
3332
3959
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
3333
3960
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -3335,7 +3962,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
3335
3962
|
),
|
|
3336
3963
|
] = None
|
|
3337
3964
|
outputs: Annotated[
|
|
3338
|
-
Optional[List[
|
|
3965
|
+
Optional[List[Union[OutputType1, OutputType2, OutputType3]]],
|
|
3339
3966
|
Field(
|
|
3340
3967
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
3341
3968
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -3521,7 +4148,7 @@ class CyclonedxSoftwareBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
3521
4148
|
] = None
|
|
3522
4149
|
|
|
3523
4150
|
|
|
3524
|
-
class
|
|
4151
|
+
class Tools(CycloneDXBaseModel):
|
|
3525
4152
|
"""
|
|
3526
4153
|
The tool(s) used in the creation of the BOM.
|
|
3527
4154
|
"""
|
|
@@ -3557,9 +4184,9 @@ class Metadata(CycloneDXBaseModel):
|
|
|
3557
4184
|
Field(description="The date and time (timestamp) when the BOM was created.", title="Timestamp"),
|
|
3558
4185
|
] = None
|
|
3559
4186
|
lifecycles: Annotated[
|
|
3560
|
-
Optional[List[Union[
|
|
4187
|
+
Optional[List[Union[Lifecycles, Lifecycles1]]], Field(description="", title="Lifecycles")
|
|
3561
4188
|
] = None
|
|
3562
|
-
tools: Optional[Union[
|
|
4189
|
+
tools: Optional[Union[Tools, List[Tool]]] = None
|
|
3563
4190
|
authors: Annotated[
|
|
3564
4191
|
Optional[List[OrganizationalContact]],
|
|
3565
4192
|
Field(
|
|
@@ -3982,7 +4609,7 @@ class Component(CycloneDXBaseModel):
|
|
|
3982
4609
|
] = None
|
|
3983
4610
|
|
|
3984
4611
|
|
|
3985
|
-
class
|
|
4612
|
+
class Tools1(CycloneDXBaseModel):
|
|
3986
4613
|
"""
|
|
3987
4614
|
The tool(s) used to identify, confirm, or score the vulnerability.
|
|
3988
4615
|
"""
|
|
@@ -4056,13 +4683,14 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4056
4683
|
Optional[List[Rating]], Field(description="List of vulnerability ratings", title="Ratings")
|
|
4057
4684
|
] = None
|
|
4058
4685
|
cwes: Annotated[
|
|
4059
|
-
Optional[List[
|
|
4686
|
+
Optional[List[int]],
|
|
4060
4687
|
Field(
|
|
4061
4688
|
description=(
|
|
4062
4689
|
"List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability. For example 399"
|
|
4063
4690
|
" (of https://cwe.mitre.org/data/definitions/399.html)"
|
|
4064
4691
|
),
|
|
4065
4692
|
examples=[399],
|
|
4693
|
+
ge=1,
|
|
4066
4694
|
title="CWEs",
|
|
4067
4695
|
),
|
|
4068
4696
|
] = None
|
|
@@ -4141,7 +4769,7 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4141
4769
|
title="Credits",
|
|
4142
4770
|
),
|
|
4143
4771
|
] = None
|
|
4144
|
-
tools: Optional[Union[
|
|
4772
|
+
tools: Optional[Union[Tools1, List[Tool]]] = None
|
|
4145
4773
|
analysis: Annotated[
|
|
4146
4774
|
Optional[Analysis],
|
|
4147
4775
|
Field(
|
|
@@ -4171,6 +4799,135 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
4171
4799
|
] = None
|
|
4172
4800
|
|
|
4173
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
|
+
|
|
4174
4931
|
class Formula(CycloneDXBaseModel):
|
|
4175
4932
|
"""
|
|
4176
4933
|
Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed.
|
|
@@ -4224,6 +4981,6 @@ class Formula(CycloneDXBaseModel):
|
|
|
4224
4981
|
|
|
4225
4982
|
Service.update_forward_refs()
|
|
4226
4983
|
CyclonedxSoftwareBillOfMaterialsStandard.update_forward_refs()
|
|
4227
|
-
|
|
4984
|
+
Tools.update_forward_refs()
|
|
4228
4985
|
Metadata.update_forward_refs()
|
|
4229
4986
|
Pedigree.update_forward_refs()
|