hoppr-cyclonedx-models 0.6.1__py3-none-any.whl → 0.6.2__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 +13 -59
- hoppr_cyclonedx_models/cyclonedx_1_4.py +58 -127
- hoppr_cyclonedx_models/cyclonedx_1_5.py +362 -1119
- hoppr_cyclonedx_models/cyclonedx_1_6.py +942 -2150
- hoppr_cyclonedx_models/spdx.py +3 -28
- {hoppr_cyclonedx_models-0.6.1.dist-info → hoppr_cyclonedx_models-0.6.2.dist-info}/METADATA +1 -1
- hoppr_cyclonedx_models-0.6.2.dist-info/RECORD +12 -0
- hoppr_cyclonedx_models-0.6.1.dist-info/RECORD +0 -12
- {hoppr_cyclonedx_models-0.6.1.dist-info → hoppr_cyclonedx_models-0.6.2.dist-info}/WHEEL +0 -0
- {hoppr_cyclonedx_models-0.6.1.dist-info → hoppr_cyclonedx_models-0.6.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""
|
|
2
2
|
--------------------------------------------------------------------------------
|
|
3
|
-
SPDX-FileCopyrightText: Copyright ©
|
|
3
|
+
SPDX-FileCopyrightText: Copyright © 2024 Lockheed Martin <open.source@lmco.com>
|
|
4
4
|
SPDX-FileName: hoppr_cyclonedx_models/cyclonedx_1_6.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.6.schema.json
|
|
28
|
-
timestamp:
|
|
29
|
-
version: 0.
|
|
28
|
+
timestamp: 2024-07-15T17:53:40+00:00
|
|
29
|
+
version: 0.21.5
|
|
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 List, Optional, Union
|
|
36
|
+
from typing import Any, List, Optional, Union
|
|
37
37
|
|
|
38
38
|
from pydantic import AnyUrl, EmailStr, Extra, Field
|
|
39
39
|
from typing_extensions import Annotated, Literal
|
|
@@ -65,6 +65,18 @@ class Confidence(CycloneDXBaseModel):
|
|
|
65
65
|
] = None
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
RefType = Annotated[
|
|
69
|
+
str,
|
|
70
|
+
Field(
|
|
71
|
+
description=(
|
|
72
|
+
"Identifier for referable and therefore interlinkable elements.\nValue SHOULD not start with the BOM-Link"
|
|
73
|
+
" intro 'urn:cdx:' to avoid conflicts with BOM-Links."
|
|
74
|
+
),
|
|
75
|
+
min_length=1,
|
|
76
|
+
),
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
|
|
68
80
|
RefLinkType = Annotated[
|
|
69
81
|
str,
|
|
70
82
|
Field(
|
|
@@ -118,22 +130,14 @@ class Phase(Enum):
|
|
|
118
130
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
119
131
|
|
|
120
132
|
|
|
121
|
-
class
|
|
122
|
-
"""
|
|
123
|
-
The product lifecycle(s) that this BOM represents.
|
|
124
|
-
"""
|
|
125
|
-
|
|
133
|
+
class Lifecycle(CycloneDXBaseModel):
|
|
126
134
|
class Config:
|
|
127
135
|
extra = Extra.forbid
|
|
128
136
|
|
|
129
137
|
phase: Annotated[Phase, Field(description="A pre-defined phase in the product lifecycle.", title="Phase")]
|
|
130
138
|
|
|
131
139
|
|
|
132
|
-
class
|
|
133
|
-
"""
|
|
134
|
-
The product lifecycle(s) that this BOM represents.
|
|
135
|
-
"""
|
|
136
|
-
|
|
140
|
+
class Lifecycle1(CycloneDXBaseModel):
|
|
137
141
|
class Config:
|
|
138
142
|
extra = Extra.forbid
|
|
139
143
|
|
|
@@ -153,7 +157,7 @@ class OrganizationalContact(CycloneDXBaseModel):
|
|
|
153
157
|
alias="bom-ref",
|
|
154
158
|
description=(
|
|
155
159
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
156
|
-
"
|
|
160
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
157
161
|
" conflicts with BOM-Links."
|
|
158
162
|
),
|
|
159
163
|
min_length=1,
|
|
@@ -231,15 +235,7 @@ class Attachment(CycloneDXBaseModel):
|
|
|
231
235
|
contentType: Annotated[
|
|
232
236
|
Optional[str],
|
|
233
237
|
Field(
|
|
234
|
-
description=
|
|
235
|
-
"Specifies the format and nature of the data being attached, helping systems correctly interpret and"
|
|
236
|
-
" process the content. Common content type examples include `application/json` for JSON data and"
|
|
237
|
-
" `text/plain` for plan text documents.\n [RFC 2045 section"
|
|
238
|
-
" 5.1](https://www.ietf.org/rfc/rfc2045.html#section-5.1) outlines the structure and use of content"
|
|
239
|
-
" types. For a comprehensive list of registered content types, refer to the [IANA media types"
|
|
240
|
-
" registry](https://www.iana.org/assignments/media-types/media-types.xhtml)."
|
|
241
|
-
),
|
|
242
|
-
examples=["text/plain", "application/json", "image/png"],
|
|
238
|
+
description="Specifies the content type of the text. Defaults to text/plain if not specified.",
|
|
243
239
|
title="Content-Type",
|
|
244
240
|
),
|
|
245
241
|
] = "text/plain"
|
|
@@ -311,54 +307,71 @@ class LicenseType(Enum):
|
|
|
311
307
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
312
308
|
|
|
313
309
|
|
|
314
|
-
class
|
|
310
|
+
class Licensing(CycloneDXBaseModel):
|
|
315
311
|
"""
|
|
316
|
-
|
|
312
|
+
Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
|
|
317
313
|
"""
|
|
318
314
|
|
|
319
|
-
DECLARED = declared = "declared"
|
|
320
|
-
CONCLUDED = concluded = "concluded"
|
|
321
|
-
|
|
322
|
-
def __str__(self) -> str:
|
|
323
|
-
return str(self.value)
|
|
324
|
-
|
|
325
|
-
@classmethod
|
|
326
|
-
def _missing_(cls, value: object):
|
|
327
|
-
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
class LicenseChoice21(CycloneDXBaseModel):
|
|
331
315
|
class Config:
|
|
332
316
|
extra = Extra.forbid
|
|
333
317
|
|
|
334
|
-
|
|
335
|
-
str,
|
|
318
|
+
altIds: Annotated[
|
|
319
|
+
Optional[List[str]],
|
|
320
|
+
Field(
|
|
321
|
+
description="License identifiers that may be used to manage licenses and their lifecycle",
|
|
322
|
+
title="Alternate License Identifiers",
|
|
323
|
+
),
|
|
324
|
+
] = None
|
|
325
|
+
purchaseOrder: Annotated[
|
|
326
|
+
Optional[str],
|
|
336
327
|
Field(
|
|
337
328
|
description=(
|
|
338
|
-
"
|
|
329
|
+
"The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase"
|
|
339
330
|
),
|
|
340
|
-
|
|
341
|
-
title="SPDX License Expression",
|
|
331
|
+
title="Purchase Order",
|
|
342
332
|
),
|
|
343
|
-
]
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
333
|
+
] = None
|
|
334
|
+
licenseTypes: Annotated[
|
|
335
|
+
Optional[List[LicenseType]],
|
|
336
|
+
Field(description="The type of license(s) that was granted to the licensee.", title="License Type"),
|
|
337
|
+
] = None
|
|
338
|
+
lastRenewal: Annotated[
|
|
339
|
+
Optional[datetime],
|
|
347
340
|
Field(
|
|
348
|
-
alias="bom-ref",
|
|
349
341
|
description=(
|
|
350
|
-
"
|
|
351
|
-
"
|
|
352
|
-
"
|
|
342
|
+
"The timestamp indicating when the license was last renewed. For new purchases, this is often the"
|
|
343
|
+
" purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of"
|
|
344
|
+
" when the license was last renewed."
|
|
353
345
|
),
|
|
354
|
-
|
|
355
|
-
|
|
346
|
+
title="Last Renewal",
|
|
347
|
+
),
|
|
348
|
+
] = None
|
|
349
|
+
expiration: Annotated[
|
|
350
|
+
Optional[datetime],
|
|
351
|
+
Field(
|
|
352
|
+
description="The timestamp indicating when the current license expires (if applicable).", title="Expiration"
|
|
356
353
|
),
|
|
357
354
|
] = None
|
|
358
355
|
|
|
359
356
|
|
|
357
|
+
class LicenseAcknowledgementEnumeration(Enum):
|
|
358
|
+
"""
|
|
359
|
+
Declared licenses and concluded licenses represent two different stages in the licensing process within software development. Declared licenses refer to the initial intention of the software authors regarding the licensing terms under which their code is released. On the other hand, concluded licenses are the result of a comprehensive analysis of the project's codebase to identify and confirm the actual licenses of the components used, which may differ from the initially declared licenses. While declared licenses provide an upfront indication of the licensing intentions, concluded licenses offer a more thorough understanding of the actual licensing within a project, facilitating proper compliance and risk management. Observed licenses are defined in `@.evidence.licenses`. Observed licenses form the evidence necessary to substantiate a concluded license.
|
|
360
|
+
"""
|
|
361
|
+
|
|
362
|
+
DECLARED = declared = "declared"
|
|
363
|
+
CONCLUDED = concluded = "concluded"
|
|
364
|
+
|
|
365
|
+
def __str__(self) -> str:
|
|
366
|
+
return str(self.value)
|
|
367
|
+
|
|
368
|
+
@classmethod
|
|
369
|
+
def _missing_(cls, value: object):
|
|
370
|
+
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
371
|
+
|
|
372
|
+
|
|
360
373
|
LicenseChoice2 = Annotated[
|
|
361
|
-
List[
|
|
374
|
+
List[Any],
|
|
362
375
|
Field(
|
|
363
376
|
description="A tuple of exactly one SPDX License Expression.",
|
|
364
377
|
max_items=1,
|
|
@@ -547,7 +560,7 @@ class Type3(Enum):
|
|
|
547
560
|
|
|
548
561
|
class Dependency(CycloneDXBaseModel):
|
|
549
562
|
"""
|
|
550
|
-
Defines the direct dependencies of a component, service, or the components provided/implemented by a given component. Components or services that do not have their own dependencies
|
|
563
|
+
Defines the direct dependencies of a component, service, or the components provided/implemented by a given component. Components or services that do not have their own dependencies MUST be declared as empty elements within the graph. Components or services that are not represented in the dependency graph MAY have unknown dependencies. It is RECOMMENDED that implementations assume this to be opaque and not an indicator of an object being dependency-free. It is RECOMMENDED to leverage compositions to indicate unknown dependency graphs.
|
|
551
564
|
"""
|
|
552
565
|
|
|
553
566
|
class Config:
|
|
@@ -560,17 +573,16 @@ class Dependency(CycloneDXBaseModel):
|
|
|
560
573
|
),
|
|
561
574
|
]
|
|
562
575
|
dependsOn: Annotated[
|
|
563
|
-
Optional[List[
|
|
576
|
+
Optional[List[RefLinkType]],
|
|
564
577
|
Field(
|
|
565
578
|
description=(
|
|
566
579
|
"The bom-ref identifiers of the components or services that are dependencies of this dependency object."
|
|
567
580
|
),
|
|
568
|
-
min_length=1,
|
|
569
581
|
title="Depends On",
|
|
570
582
|
),
|
|
571
583
|
] = None
|
|
572
584
|
provides: Annotated[
|
|
573
|
-
Optional[List[
|
|
585
|
+
Optional[List[RefLinkType]],
|
|
574
586
|
Field(
|
|
575
587
|
description=(
|
|
576
588
|
"The bom-ref identifiers of the components or services that define a given specification or standard,"
|
|
@@ -578,7 +590,6 @@ class Dependency(CycloneDXBaseModel):
|
|
|
578
590
|
" which implements a cryptographic algorithm. A component which implements another component does not"
|
|
579
591
|
" imply that the implementation is in use."
|
|
580
592
|
),
|
|
581
|
-
min_length=1,
|
|
582
593
|
title="Provides",
|
|
583
594
|
),
|
|
584
595
|
] = None
|
|
@@ -603,14 +614,10 @@ class DataFlowDirection(Enum):
|
|
|
603
614
|
|
|
604
615
|
|
|
605
616
|
class Copyright(CycloneDXBaseModel):
|
|
606
|
-
"""
|
|
607
|
-
A copyright notice informing users of the underlying claims to copyright ownership in a published work.
|
|
608
|
-
"""
|
|
609
|
-
|
|
610
617
|
class Config:
|
|
611
618
|
extra = Extra.forbid
|
|
612
619
|
|
|
613
|
-
text: Annotated[str, Field(
|
|
620
|
+
text: Annotated[str, Field(title="Copyright Text")]
|
|
614
621
|
|
|
615
622
|
|
|
616
623
|
class Occurrence(CycloneDXBaseModel):
|
|
@@ -623,7 +630,7 @@ class Occurrence(CycloneDXBaseModel):
|
|
|
623
630
|
alias="bom-ref",
|
|
624
631
|
description=(
|
|
625
632
|
"An optional identifier which can be used to reference the occurrence elsewhere in the BOM. Every"
|
|
626
|
-
" bom-ref
|
|
633
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
627
634
|
" avoid conflicts with BOM-Links."
|
|
628
635
|
),
|
|
629
636
|
min_length=1,
|
|
@@ -738,7 +745,7 @@ class AggregateType(Enum):
|
|
|
738
745
|
|
|
739
746
|
class Property(CycloneDXBaseModel):
|
|
740
747
|
"""
|
|
741
|
-
Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
748
|
+
Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.
|
|
742
749
|
"""
|
|
743
750
|
|
|
744
751
|
class Config:
|
|
@@ -792,6 +799,19 @@ class Advisory(CycloneDXBaseModel):
|
|
|
792
799
|
url: Annotated[str, Field(description="Location where the advisory can be obtained.", title="URL")]
|
|
793
800
|
|
|
794
801
|
|
|
802
|
+
Cwe = Annotated[
|
|
803
|
+
int,
|
|
804
|
+
Field(
|
|
805
|
+
description=(
|
|
806
|
+
"Integer representation of a Common Weaknesses Enumerations (CWE). For example 399 (of"
|
|
807
|
+
" https://cwe.mitre.org/data/definitions/399.html)"
|
|
808
|
+
),
|
|
809
|
+
ge=1,
|
|
810
|
+
title="CWE",
|
|
811
|
+
),
|
|
812
|
+
]
|
|
813
|
+
|
|
814
|
+
|
|
795
815
|
class Severity(Enum):
|
|
796
816
|
"""
|
|
797
817
|
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.
|
|
@@ -999,6 +1019,19 @@ class Analysis(CycloneDXBaseModel):
|
|
|
999
1019
|
] = None
|
|
1000
1020
|
|
|
1001
1021
|
|
|
1022
|
+
class Affect(CycloneDXBaseModel):
|
|
1023
|
+
class Config:
|
|
1024
|
+
extra = Extra.forbid
|
|
1025
|
+
|
|
1026
|
+
ref: Annotated[
|
|
1027
|
+
Union[RefLinkType, BomLinkElementType],
|
|
1028
|
+
Field(description="References a component or service by the objects bom-ref", title="Reference"),
|
|
1029
|
+
]
|
|
1030
|
+
versions: Annotated[
|
|
1031
|
+
Optional[List], Field(description="Zero or more individual versions or range of versions.", title="Versions")
|
|
1032
|
+
] = None
|
|
1033
|
+
|
|
1034
|
+
|
|
1002
1035
|
class AffectedStatus(Enum):
|
|
1003
1036
|
"""
|
|
1004
1037
|
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.
|
|
@@ -1069,7 +1102,7 @@ class Approach(CycloneDXBaseModel):
|
|
|
1069
1102
|
] = None
|
|
1070
1103
|
|
|
1071
1104
|
|
|
1072
|
-
class
|
|
1105
|
+
class Dataset(CycloneDXBaseModel):
|
|
1073
1106
|
class Config:
|
|
1074
1107
|
extra = Extra.forbid
|
|
1075
1108
|
|
|
@@ -1144,7 +1177,7 @@ class Graphic(CycloneDXBaseModel):
|
|
|
1144
1177
|
image: Annotated[
|
|
1145
1178
|
Optional[Attachment],
|
|
1146
1179
|
Field(
|
|
1147
|
-
description="The graphic (vector or raster). Base64 encoding
|
|
1180
|
+
description="The graphic (vector or raster). Base64 encoding MUST be specified for binary images.",
|
|
1148
1181
|
title="Graphic Image",
|
|
1149
1182
|
),
|
|
1150
1183
|
] = None
|
|
@@ -1313,7 +1346,7 @@ class PostalAddress(CycloneDXBaseModel):
|
|
|
1313
1346
|
alias="bom-ref",
|
|
1314
1347
|
description=(
|
|
1315
1348
|
"An optional identifier which can be used to reference the address elsewhere in the BOM. Every bom-ref"
|
|
1316
|
-
"
|
|
1349
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
1317
1350
|
" conflicts with BOM-Links."
|
|
1318
1351
|
),
|
|
1319
1352
|
min_length=1,
|
|
@@ -1349,20 +1382,7 @@ class Command(CycloneDXBaseModel):
|
|
|
1349
1382
|
executed: Annotated[
|
|
1350
1383
|
Optional[str], Field(description="A text representation of the executed command.", title="Executed")
|
|
1351
1384
|
] = None
|
|
1352
|
-
properties: Annotated[
|
|
1353
|
-
Optional[List[Property]],
|
|
1354
|
-
Field(
|
|
1355
|
-
description=(
|
|
1356
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
1357
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1358
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1359
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1360
|
-
" registered in the [CycloneDX Property"
|
|
1361
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
1362
|
-
),
|
|
1363
|
-
title="Properties",
|
|
1364
|
-
),
|
|
1365
|
-
] = None
|
|
1385
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
1366
1386
|
|
|
1367
1387
|
|
|
1368
1388
|
class AccessMode(Enum):
|
|
@@ -1444,20 +1464,7 @@ class Volume(CycloneDXBaseModel):
|
|
|
1444
1464
|
Optional[bool],
|
|
1445
1465
|
Field(description="Indicates if the volume is remotely (i.e., network) attached.", title="Remote"),
|
|
1446
1466
|
] = None
|
|
1447
|
-
properties: Annotated[
|
|
1448
|
-
Optional[List[Property]],
|
|
1449
|
-
Field(
|
|
1450
|
-
description=(
|
|
1451
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
1452
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1453
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1454
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1455
|
-
" registered in the [CycloneDX Property"
|
|
1456
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
1457
|
-
),
|
|
1458
|
-
title="Properties",
|
|
1459
|
-
),
|
|
1460
|
-
] = None
|
|
1467
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
1461
1468
|
|
|
1462
1469
|
|
|
1463
1470
|
class Type6(Enum):
|
|
@@ -1517,20 +1524,7 @@ class Condition(CycloneDXBaseModel):
|
|
|
1517
1524
|
title="Expression",
|
|
1518
1525
|
),
|
|
1519
1526
|
] = None
|
|
1520
|
-
properties: Annotated[
|
|
1521
|
-
Optional[List[Property]],
|
|
1522
|
-
Field(
|
|
1523
|
-
description=(
|
|
1524
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
1525
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
1526
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
1527
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
1528
|
-
" registered in the [CycloneDX Property"
|
|
1529
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
1530
|
-
),
|
|
1531
|
-
title="Properties",
|
|
1532
|
-
),
|
|
1533
|
-
] = None
|
|
1527
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
1534
1528
|
|
|
1535
1529
|
|
|
1536
1530
|
class TaskType(Enum):
|
|
@@ -1685,6 +1679,9 @@ class ComponentIdentityEvidence(CycloneDXBaseModel):
|
|
|
1685
1679
|
] = None
|
|
1686
1680
|
|
|
1687
1681
|
|
|
1682
|
+
OpenCre = Annotated[str, Field(examples=["CRE:764-507"], regex="^CRE:[0-9]+-[0-9]+$")]
|
|
1683
|
+
|
|
1684
|
+
|
|
1688
1685
|
class Level(CycloneDXBaseModel):
|
|
1689
1686
|
class Config:
|
|
1690
1687
|
extra = Extra.forbid
|
|
@@ -1695,7 +1692,7 @@ class Level(CycloneDXBaseModel):
|
|
|
1695
1692
|
alias="bom-ref",
|
|
1696
1693
|
description=(
|
|
1697
1694
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
1698
|
-
"
|
|
1695
|
+
" MUST be unique within the BOM."
|
|
1699
1696
|
),
|
|
1700
1697
|
min_length=1,
|
|
1701
1698
|
title="BOM Reference",
|
|
@@ -1710,16 +1707,12 @@ class Level(CycloneDXBaseModel):
|
|
|
1710
1707
|
Optional[str], Field(description="The description of the level.", title="Description")
|
|
1711
1708
|
] = None
|
|
1712
1709
|
requirements: Annotated[
|
|
1713
|
-
Optional[List[
|
|
1714
|
-
Field(
|
|
1715
|
-
description="The list of requirement `bom-ref`s that comprise the level.",
|
|
1716
|
-
min_length=1,
|
|
1717
|
-
title="Requirements",
|
|
1718
|
-
),
|
|
1710
|
+
Optional[List[RefLinkType]],
|
|
1711
|
+
Field(description="The list of requirement `bom-ref`s that comprise the level.", title="Requirements"),
|
|
1719
1712
|
] = None
|
|
1720
1713
|
|
|
1721
1714
|
|
|
1722
|
-
class
|
|
1715
|
+
class AlgorithmEnum(Enum):
|
|
1723
1716
|
"""
|
|
1724
1717
|
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".
|
|
1725
1718
|
"""
|
|
@@ -2039,7 +2032,7 @@ class AlgorithmProperties(CycloneDXBaseModel):
|
|
|
2039
2032
|
"The target platform for which the algorithm is implemented. The implementation can be 'generic',"
|
|
2040
2033
|
" running on any platform or for a specific platform."
|
|
2041
2034
|
),
|
|
2042
|
-
title="
|
|
2035
|
+
title="implementation platform",
|
|
2043
2036
|
),
|
|
2044
2037
|
] = None
|
|
2045
2038
|
certificationLevel: Annotated[
|
|
@@ -2154,7 +2147,7 @@ class CertificateProperties(CycloneDXBaseModel):
|
|
|
2154
2147
|
] = None
|
|
2155
2148
|
|
|
2156
2149
|
|
|
2157
|
-
class
|
|
2150
|
+
class Type8(Enum):
|
|
2158
2151
|
"""
|
|
2159
2152
|
The type for the related cryptographic material
|
|
2160
2153
|
"""
|
|
@@ -2207,7 +2200,7 @@ class State(Enum):
|
|
|
2207
2200
|
return next((member for member in cls if member.name in {str(value), str(value).upper()}), None)
|
|
2208
2201
|
|
|
2209
2202
|
|
|
2210
|
-
class
|
|
2203
|
+
class Type9(Enum):
|
|
2211
2204
|
"""
|
|
2212
2205
|
The concrete protocol type.
|
|
2213
2206
|
"""
|
|
@@ -2246,10 +2239,8 @@ class CipherSuite(CycloneDXBaseModel):
|
|
|
2246
2239
|
),
|
|
2247
2240
|
] = None
|
|
2248
2241
|
algorithms: Annotated[
|
|
2249
|
-
Optional[List[
|
|
2250
|
-
Field(
|
|
2251
|
-
description="A list of algorithms related to the cipher suite.", min_length=1, title="Related Algorithms"
|
|
2252
|
-
),
|
|
2242
|
+
Optional[List[RefType]],
|
|
2243
|
+
Field(description="A list of algorithms related to the cipher suite.", title="Related Algorithms"),
|
|
2253
2244
|
] = None
|
|
2254
2245
|
identifiers: Annotated[
|
|
2255
2246
|
Optional[List[str]],
|
|
@@ -2299,10 +2290,9 @@ class Conformance(CycloneDXBaseModel):
|
|
|
2299
2290
|
Optional[str], Field(description="The rationale for the conformance score.", title="Rationale")
|
|
2300
2291
|
] = None
|
|
2301
2292
|
mitigationStrategies: Annotated[
|
|
2302
|
-
Optional[List[
|
|
2293
|
+
Optional[List[RefLinkType]],
|
|
2303
2294
|
Field(
|
|
2304
2295
|
description="The list of `bom-ref` to the evidence provided describing the mitigation strategies.",
|
|
2305
|
-
min_length=1,
|
|
2306
2296
|
title="Mitigation Strategies",
|
|
2307
2297
|
),
|
|
2308
2298
|
] = None
|
|
@@ -2317,16 +2307,12 @@ class Map(CycloneDXBaseModel):
|
|
|
2317
2307
|
Field(description="The `bom-ref` to the requirement being attested to.", min_length=1, title="Requirement"),
|
|
2318
2308
|
] = None
|
|
2319
2309
|
claims: Annotated[
|
|
2320
|
-
Optional[List[
|
|
2321
|
-
Field(description="The list of `bom-ref` to the claims being attested to.",
|
|
2310
|
+
Optional[List[RefLinkType]],
|
|
2311
|
+
Field(description="The list of `bom-ref` to the claims being attested to.", title="Claims"),
|
|
2322
2312
|
] = None
|
|
2323
2313
|
counterClaims: Annotated[
|
|
2324
|
-
Optional[List[
|
|
2325
|
-
Field(
|
|
2326
|
-
description="The list of `bom-ref` to the counter claims being attested to.",
|
|
2327
|
-
min_length=1,
|
|
2328
|
-
title="Counter Claims",
|
|
2329
|
-
),
|
|
2314
|
+
Optional[List[RefLinkType]],
|
|
2315
|
+
Field(description="The list of `bom-ref` to the counter claims being attested to.", title="Counter Claims"),
|
|
2330
2316
|
] = None
|
|
2331
2317
|
conformance: Annotated[
|
|
2332
2318
|
Optional[Conformance],
|
|
@@ -2365,7 +2351,7 @@ class OrganizationalEntity(CycloneDXBaseModel):
|
|
|
2365
2351
|
alias="bom-ref",
|
|
2366
2352
|
description=(
|
|
2367
2353
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
2368
|
-
"
|
|
2354
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
2369
2355
|
" conflicts with BOM-Links."
|
|
2370
2356
|
),
|
|
2371
2357
|
min_length=1,
|
|
@@ -2438,262 +2424,306 @@ class Hash(CycloneDXBaseModel):
|
|
|
2438
2424
|
]
|
|
2439
2425
|
|
|
2440
2426
|
|
|
2441
|
-
class
|
|
2442
|
-
"""
|
|
2443
|
-
The individual or organization that grants a license to another individual or organization
|
|
2444
|
-
"""
|
|
2445
|
-
|
|
2427
|
+
class License(CycloneDXBaseModel):
|
|
2446
2428
|
class Config:
|
|
2447
2429
|
extra = Extra.forbid
|
|
2448
2430
|
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
Field(description="The organization that granted the license", title="Licensor (Organization)"),
|
|
2452
|
-
]
|
|
2453
|
-
individual: Annotated[
|
|
2454
|
-
Optional[OrganizationalContact],
|
|
2431
|
+
bom_ref: Annotated[
|
|
2432
|
+
Optional[str],
|
|
2455
2433
|
Field(
|
|
2456
|
-
|
|
2457
|
-
|
|
2434
|
+
alias="bom-ref",
|
|
2435
|
+
description=(
|
|
2436
|
+
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
2437
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
2438
|
+
" conflicts with BOM-Links."
|
|
2439
|
+
),
|
|
2440
|
+
min_length=1,
|
|
2441
|
+
title="BOM Reference",
|
|
2458
2442
|
),
|
|
2459
2443
|
] = None
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
"""
|
|
2464
|
-
The individual or organization that grants a license to another individual or organization
|
|
2465
|
-
"""
|
|
2466
|
-
|
|
2467
|
-
class Config:
|
|
2468
|
-
extra = Extra.forbid
|
|
2469
|
-
|
|
2470
|
-
organization: Annotated[
|
|
2471
|
-
Optional[OrganizationalEntity],
|
|
2472
|
-
Field(description="The organization that granted the license", title="Licensor (Organization)"),
|
|
2444
|
+
id: Annotated[
|
|
2445
|
+
Optional[spdx.LicenseID],
|
|
2446
|
+
Field(description="A valid SPDX license ID", examples=["Apache-2.0"], title="License ID (SPDX)"),
|
|
2473
2447
|
] = None
|
|
2474
|
-
|
|
2475
|
-
|
|
2448
|
+
name: Annotated[
|
|
2449
|
+
Optional[str],
|
|
2476
2450
|
Field(
|
|
2477
|
-
description="
|
|
2478
|
-
|
|
2451
|
+
description="If SPDX does not define the license used, this field may be used to provide the license name",
|
|
2452
|
+
examples=["Acme Software License"],
|
|
2453
|
+
title="License Name",
|
|
2479
2454
|
),
|
|
2480
|
-
]
|
|
2481
|
-
|
|
2455
|
+
] = None
|
|
2456
|
+
acknowledgement: Optional[LicenseAcknowledgementEnumeration] = None
|
|
2457
|
+
text: Annotated[
|
|
2458
|
+
Optional[Attachment],
|
|
2459
|
+
Field(description="An optional way to include the textual content of a license.", title="License text"),
|
|
2460
|
+
] = None
|
|
2461
|
+
url: Annotated[
|
|
2462
|
+
Optional[str],
|
|
2463
|
+
Field(
|
|
2464
|
+
description=(
|
|
2465
|
+
"The URL to the license file. If specified, a 'license' externalReference should also be specified for"
|
|
2466
|
+
" completeness"
|
|
2467
|
+
),
|
|
2468
|
+
examples=["https://www.apache.org/licenses/LICENSE-2.0.txt"],
|
|
2469
|
+
title="License URL",
|
|
2470
|
+
),
|
|
2471
|
+
] = None
|
|
2472
|
+
licensing: Annotated[
|
|
2473
|
+
Optional[Licensing],
|
|
2474
|
+
Field(
|
|
2475
|
+
description=(
|
|
2476
|
+
"Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and"
|
|
2477
|
+
" other important metadata"
|
|
2478
|
+
),
|
|
2479
|
+
title="Licensing information",
|
|
2480
|
+
),
|
|
2481
|
+
] = None
|
|
2482
|
+
properties: Annotated[
|
|
2483
|
+
Optional[List[Property]],
|
|
2484
|
+
Field(
|
|
2485
|
+
description=(
|
|
2486
|
+
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
2487
|
+
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
2488
|
+
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
2489
|
+
" having different values. Property names of interest to the general public are encouraged to be"
|
|
2490
|
+
" registered in the [CycloneDX Property"
|
|
2491
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
2492
|
+
),
|
|
2493
|
+
title="Properties",
|
|
2494
|
+
),
|
|
2495
|
+
] = None
|
|
2482
2496
|
|
|
2483
|
-
class Licensee(CycloneDXBaseModel):
|
|
2484
|
-
"""
|
|
2485
|
-
The individual or organization for which a license was granted to
|
|
2486
|
-
"""
|
|
2487
2497
|
|
|
2498
|
+
class LicenseChoice1(CycloneDXBaseModel):
|
|
2488
2499
|
class Config:
|
|
2489
2500
|
extra = Extra.forbid
|
|
2490
2501
|
|
|
2491
|
-
|
|
2492
|
-
OrganizationalEntity,
|
|
2493
|
-
Field(description="The organization that was granted the license", title="Licensee (Organization)"),
|
|
2494
|
-
]
|
|
2495
|
-
individual: Annotated[
|
|
2496
|
-
Optional[OrganizationalContact],
|
|
2497
|
-
Field(
|
|
2498
|
-
description="The individual, not associated with an organization, that was granted the license",
|
|
2499
|
-
title="Licensee (Individual)",
|
|
2500
|
-
),
|
|
2501
|
-
] = None
|
|
2502
|
+
license: License
|
|
2502
2503
|
|
|
2503
2504
|
|
|
2504
|
-
class
|
|
2505
|
+
class Commit(CycloneDXBaseModel):
|
|
2505
2506
|
"""
|
|
2506
|
-
|
|
2507
|
+
Specifies an individual commit
|
|
2507
2508
|
"""
|
|
2508
2509
|
|
|
2509
2510
|
class Config:
|
|
2510
2511
|
extra = Extra.forbid
|
|
2511
2512
|
|
|
2512
|
-
|
|
2513
|
-
Optional[
|
|
2514
|
-
Field(description="The organization that was granted the license", title="Licensee (Organization)"),
|
|
2515
|
-
] = None
|
|
2516
|
-
individual: Annotated[
|
|
2517
|
-
OrganizationalContact,
|
|
2513
|
+
uid: Annotated[
|
|
2514
|
+
Optional[str],
|
|
2518
2515
|
Field(
|
|
2519
|
-
description=
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2516
|
+
description=(
|
|
2517
|
+
"A unique identifier of the commit. This may be version control specific. For example, Subversion uses"
|
|
2518
|
+
" revision numbers whereas git uses commit hashes."
|
|
2519
|
+
),
|
|
2520
|
+
title="UID",
|
|
2521
|
+
),
|
|
2522
|
+
] = None
|
|
2523
|
+
url: Annotated[
|
|
2524
|
+
Optional[str],
|
|
2525
|
+
Field(
|
|
2526
|
+
description="The URL to the commit. This URL will typically point to a commit in a version control system.",
|
|
2527
|
+
title="URL",
|
|
2528
|
+
),
|
|
2529
|
+
] = None
|
|
2530
|
+
author: Annotated[
|
|
2531
|
+
Optional[IdentifiableAction],
|
|
2532
|
+
Field(description="The author who created the changes in the commit", title="Author"),
|
|
2533
|
+
] = None
|
|
2534
|
+
committer: Annotated[
|
|
2535
|
+
Optional[IdentifiableAction],
|
|
2536
|
+
Field(description="The person who committed or pushed the commit", title="Committer"),
|
|
2537
|
+
] = None
|
|
2538
|
+
message: Annotated[
|
|
2539
|
+
Optional[str], Field(description="The text description of the contents of the commit", title="Message")
|
|
2540
|
+
] = None
|
|
2523
2541
|
|
|
2524
2542
|
|
|
2525
|
-
class
|
|
2543
|
+
class Patch(CycloneDXBaseModel):
|
|
2526
2544
|
"""
|
|
2527
|
-
|
|
2545
|
+
Specifies an individual patch
|
|
2528
2546
|
"""
|
|
2529
2547
|
|
|
2530
2548
|
class Config:
|
|
2531
2549
|
extra = Extra.forbid
|
|
2532
2550
|
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
Field(
|
|
2551
|
+
type: Annotated[
|
|
2552
|
+
Type1,
|
|
2553
|
+
Field(
|
|
2554
|
+
description=(
|
|
2555
|
+
"Specifies the purpose for the patch including the resolution of defects, security issues, or new"
|
|
2556
|
+
" behavior or functionality."
|
|
2557
|
+
),
|
|
2558
|
+
title="Patch Type",
|
|
2559
|
+
),
|
|
2536
2560
|
]
|
|
2537
|
-
|
|
2538
|
-
Optional[
|
|
2561
|
+
diff: Annotated[
|
|
2562
|
+
Optional[Diff],
|
|
2539
2563
|
Field(
|
|
2540
|
-
description=
|
|
2541
|
-
|
|
2564
|
+
description=(
|
|
2565
|
+
"The patch file (or diff) that shows changes. Refer to"
|
|
2566
|
+
" [https://en.wikipedia.org/wiki/Diff](https://en.wikipedia.org/wiki/Diff)"
|
|
2567
|
+
),
|
|
2568
|
+
title="Diff",
|
|
2542
2569
|
),
|
|
2543
2570
|
] = None
|
|
2571
|
+
resolves: Annotated[
|
|
2572
|
+
Optional[List[Issue]], Field(description="A collection of issues the patch resolves", title="Resolves")
|
|
2573
|
+
] = None
|
|
2544
2574
|
|
|
2545
2575
|
|
|
2546
|
-
class
|
|
2576
|
+
class ExternalReference(CycloneDXBaseModel):
|
|
2547
2577
|
"""
|
|
2548
|
-
|
|
2578
|
+
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.
|
|
2549
2579
|
"""
|
|
2550
2580
|
|
|
2551
2581
|
class Config:
|
|
2552
2582
|
extra = Extra.forbid
|
|
2553
2583
|
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
Field(description="The organization that purchased the license", title="Purchaser (Organization)"),
|
|
2557
|
-
] = None
|
|
2558
|
-
individual: Annotated[
|
|
2559
|
-
OrganizationalContact,
|
|
2584
|
+
url: Annotated[
|
|
2585
|
+
Union[str, Union[BomLinkDocumentType, BomLinkElementType]],
|
|
2560
2586
|
Field(
|
|
2561
|
-
description=
|
|
2562
|
-
|
|
2587
|
+
description=(
|
|
2588
|
+
"The URI (URL or URN) to the external reference. External references are URIs and therefore can accept"
|
|
2589
|
+
" any URL scheme including https ([RFC-7230](https://www.ietf.org/rfc/rfc7230.txt)), mailto"
|
|
2590
|
+
" ([RFC-2368](https://www.ietf.org/rfc/rfc2368.txt)), tel"
|
|
2591
|
+
" ([RFC-3966](https://www.ietf.org/rfc/rfc3966.txt)), and dns"
|
|
2592
|
+
" ([RFC-4501](https://www.ietf.org/rfc/rfc4501.txt)). External references may also include formally"
|
|
2593
|
+
" registered URNs such as [CycloneDX BOM-Link](https://cyclonedx.org/capabilities/bomlink/) to"
|
|
2594
|
+
" reference CycloneDX BOMs or any object within a BOM. BOM-Link transforms applicable external"
|
|
2595
|
+
" references into relationships that can be expressed in a BOM or across BOMs."
|
|
2596
|
+
),
|
|
2597
|
+
title="URL",
|
|
2563
2598
|
),
|
|
2564
2599
|
]
|
|
2600
|
+
comment: Annotated[
|
|
2601
|
+
Optional[str], Field(description="An optional comment describing the external reference", title="Comment")
|
|
2602
|
+
] = None
|
|
2603
|
+
type: Annotated[Type3, Field(description="Specifies the type of external reference.", title="Type")]
|
|
2604
|
+
hashes: Annotated[
|
|
2605
|
+
Optional[List[Hash]], Field(description="The hashes of the external reference (if applicable).", title="Hashes")
|
|
2606
|
+
] = None
|
|
2565
2607
|
|
|
2566
2608
|
|
|
2567
|
-
class
|
|
2609
|
+
class ComponentEvidence(CycloneDXBaseModel):
|
|
2568
2610
|
"""
|
|
2569
|
-
|
|
2611
|
+
Provides the ability to document evidence collected through various forms of extraction or analysis.
|
|
2570
2612
|
"""
|
|
2571
2613
|
|
|
2572
2614
|
class Config:
|
|
2573
2615
|
extra = Extra.forbid
|
|
2574
2616
|
|
|
2575
|
-
|
|
2576
|
-
Optional[List[
|
|
2617
|
+
identity: Annotated[
|
|
2618
|
+
Optional[Union[List[ComponentIdentityEvidence], ComponentIdentityEvidence]],
|
|
2577
2619
|
Field(
|
|
2578
|
-
description=
|
|
2579
|
-
|
|
2620
|
+
description=(
|
|
2621
|
+
"Evidence that substantiates the identity of a component. The identify may be an object or an array of"
|
|
2622
|
+
" identity objects. Support for specifying identify as a single object was introduced in CycloneDX"
|
|
2623
|
+
" v1.5. Arrays were introduced in v1.6. It is RECOMMENDED that all implementations use arrays, even if"
|
|
2624
|
+
" only one identity object is specified."
|
|
2625
|
+
),
|
|
2626
|
+
title="Identity Evidence",
|
|
2580
2627
|
),
|
|
2581
2628
|
] = None
|
|
2582
|
-
|
|
2583
|
-
Optional[
|
|
2629
|
+
occurrences: Annotated[
|
|
2630
|
+
Optional[List[Occurrence]],
|
|
2584
2631
|
Field(
|
|
2585
|
-
description="
|
|
2586
|
-
title="
|
|
2632
|
+
description="Evidence of individual instances of a component spread across multiple locations.",
|
|
2633
|
+
title="Occurrences",
|
|
2587
2634
|
),
|
|
2588
2635
|
] = None
|
|
2589
|
-
|
|
2590
|
-
Optional[
|
|
2591
|
-
Field(description="
|
|
2592
|
-
] = None
|
|
2593
|
-
purchaser: Annotated[
|
|
2594
|
-
Optional[Union[Purchaser, Purchaser1]],
|
|
2595
|
-
Field(description="The individual or organization that purchased the license", title="Purchaser"),
|
|
2636
|
+
callstack: Annotated[
|
|
2637
|
+
Optional[Callstack],
|
|
2638
|
+
Field(description="Evidence of the components use through the callstack.", title="Call Stack"),
|
|
2596
2639
|
] = None
|
|
2597
|
-
|
|
2598
|
-
Optional[
|
|
2640
|
+
licenses: Annotated[
|
|
2641
|
+
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
2599
2642
|
Field(
|
|
2600
2643
|
description=(
|
|
2601
|
-
"
|
|
2644
|
+
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
2602
2645
|
),
|
|
2603
|
-
title="
|
|
2646
|
+
title="License Evidence",
|
|
2604
2647
|
),
|
|
2605
2648
|
] = None
|
|
2606
|
-
|
|
2607
|
-
Optional[List[
|
|
2608
|
-
Field(description="The type of license(s) that was granted to the licensee.", title="License Type"),
|
|
2609
|
-
] = None
|
|
2610
|
-
lastRenewal: Annotated[
|
|
2611
|
-
Optional[datetime],
|
|
2649
|
+
copyright: Annotated[
|
|
2650
|
+
Optional[List[Copyright]],
|
|
2612
2651
|
Field(
|
|
2613
2652
|
description=(
|
|
2614
|
-
"
|
|
2615
|
-
"
|
|
2616
|
-
" when the license was last renewed."
|
|
2653
|
+
"Copyright evidence captures intellectual property assertions, providing evidence of possible ownership"
|
|
2654
|
+
" and legal protection."
|
|
2617
2655
|
),
|
|
2618
|
-
title="
|
|
2619
|
-
),
|
|
2620
|
-
] = None
|
|
2621
|
-
expiration: Annotated[
|
|
2622
|
-
Optional[datetime],
|
|
2623
|
-
Field(
|
|
2624
|
-
description="The timestamp indicating when the current license expires (if applicable).", title="Expiration"
|
|
2656
|
+
title="Copyright Evidence",
|
|
2625
2657
|
),
|
|
2626
2658
|
] = None
|
|
2627
2659
|
|
|
2628
2660
|
|
|
2629
|
-
class
|
|
2630
|
-
"""
|
|
2631
|
-
Specifies the details and attributes related to a software license. It can either include a valid SPDX license identifier or a named license, along with additional properties such as license acknowledgment, comprehensive commercial licensing information, and the full text of the license.
|
|
2632
|
-
"""
|
|
2633
|
-
|
|
2661
|
+
class ReleaseNotes(CycloneDXBaseModel):
|
|
2634
2662
|
class Config:
|
|
2635
2663
|
extra = Extra.forbid
|
|
2636
2664
|
|
|
2637
|
-
|
|
2665
|
+
type: Annotated[
|
|
2666
|
+
str,
|
|
2667
|
+
Field(
|
|
2668
|
+
description="The software versioning type the release note describes.",
|
|
2669
|
+
examples=["major", "minor", "patch", "pre-release", "internal"],
|
|
2670
|
+
title="Type",
|
|
2671
|
+
),
|
|
2672
|
+
]
|
|
2673
|
+
title: Annotated[Optional[str], Field(description="The title of the release.", title="Title")] = None
|
|
2674
|
+
featuredImage: Annotated[
|
|
2638
2675
|
Optional[str],
|
|
2639
2676
|
Field(
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
"An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref"
|
|
2643
|
-
" must be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
2644
|
-
" conflicts with BOM-Links."
|
|
2645
|
-
),
|
|
2646
|
-
min_length=1,
|
|
2647
|
-
title="BOM Reference",
|
|
2677
|
+
description="The URL to an image that may be prominently displayed with the release note.",
|
|
2678
|
+
title="Featured image",
|
|
2648
2679
|
),
|
|
2649
2680
|
] = None
|
|
2650
|
-
|
|
2651
|
-
|
|
2681
|
+
socialImage: Annotated[
|
|
2682
|
+
Optional[str],
|
|
2652
2683
|
Field(
|
|
2653
|
-
description=
|
|
2654
|
-
|
|
2655
|
-
" license identifiers defined in the spdx.schema.json (or spdx.xml) subschema which is synchronized"
|
|
2656
|
-
" with the official SPDX license list."
|
|
2657
|
-
),
|
|
2658
|
-
examples=["Apache-2.0"],
|
|
2659
|
-
title="License ID (SPDX)",
|
|
2684
|
+
description="The URL to an image that may be used in messaging on social media platforms.",
|
|
2685
|
+
title="Social image",
|
|
2660
2686
|
),
|
|
2661
|
-
]
|
|
2662
|
-
|
|
2663
|
-
Optional[str],
|
|
2687
|
+
] = None
|
|
2688
|
+
description: Annotated[
|
|
2689
|
+
Optional[str], Field(description="A short description of the release.", title="Description")
|
|
2690
|
+
] = None
|
|
2691
|
+
timestamp: Annotated[
|
|
2692
|
+
Optional[datetime],
|
|
2693
|
+
Field(description="The date and time (timestamp) when the release note was created.", title="Timestamp"),
|
|
2694
|
+
] = None
|
|
2695
|
+
aliases: Annotated[
|
|
2696
|
+
Optional[List[str]],
|
|
2664
2697
|
Field(
|
|
2665
2698
|
description=(
|
|
2666
|
-
"
|
|
2667
|
-
"
|
|
2699
|
+
"One or more alternate names the release may be referred to. This may include unofficial terms used by"
|
|
2700
|
+
" development and marketing teams (e.g. code names)."
|
|
2668
2701
|
),
|
|
2669
|
-
|
|
2670
|
-
title="License Name",
|
|
2702
|
+
title="Aliases",
|
|
2671
2703
|
),
|
|
2672
2704
|
] = None
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
Optional[Attachment],
|
|
2676
|
-
Field(description="An optional way to include the textual content of a license.", title="License text"),
|
|
2677
|
-
] = None
|
|
2678
|
-
url: Annotated[
|
|
2679
|
-
Optional[str],
|
|
2705
|
+
tags: Annotated[
|
|
2706
|
+
Optional[List[str]],
|
|
2680
2707
|
Field(
|
|
2681
2708
|
description=(
|
|
2682
|
-
"
|
|
2683
|
-
"
|
|
2709
|
+
"Textual strings that aid in discovery, search, and retrieval of the associated object. Tags often"
|
|
2710
|
+
" serve as a way to group or categorize similar or related objects by various attributes."
|
|
2684
2711
|
),
|
|
2685
|
-
examples=["
|
|
2686
|
-
title="
|
|
2712
|
+
examples=["json-parser", "object-persistence", "text-to-image", "translation", "object-detection"],
|
|
2713
|
+
title="Tags",
|
|
2687
2714
|
),
|
|
2688
2715
|
] = None
|
|
2689
|
-
|
|
2690
|
-
Optional[
|
|
2716
|
+
resolves: Annotated[
|
|
2717
|
+
Optional[List[Issue]], Field(description="A collection of issues that have been resolved.", title="Resolves")
|
|
2718
|
+
] = None
|
|
2719
|
+
notes: Annotated[
|
|
2720
|
+
Optional[List[Note]],
|
|
2691
2721
|
Field(
|
|
2692
2722
|
description=(
|
|
2693
|
-
"
|
|
2694
|
-
"
|
|
2723
|
+
"Zero or more release notes containing the locale and content. Multiple note objects may be specified"
|
|
2724
|
+
" to support release notes in a wide variety of languages."
|
|
2695
2725
|
),
|
|
2696
|
-
title="
|
|
2726
|
+
title="Notes",
|
|
2697
2727
|
),
|
|
2698
2728
|
] = None
|
|
2699
2729
|
properties: Annotated[
|
|
@@ -2705,116 +2735,175 @@ class License1(CycloneDXBaseModel):
|
|
|
2705
2735
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
2706
2736
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
2707
2737
|
" registered in the [CycloneDX Property"
|
|
2708
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
2738
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
2709
2739
|
),
|
|
2710
2740
|
title="Properties",
|
|
2711
2741
|
),
|
|
2712
2742
|
] = None
|
|
2713
2743
|
|
|
2714
2744
|
|
|
2715
|
-
class
|
|
2745
|
+
class Rating(CycloneDXBaseModel):
|
|
2716
2746
|
"""
|
|
2717
|
-
|
|
2747
|
+
Defines the severity or risk ratings of a vulnerability.
|
|
2718
2748
|
"""
|
|
2719
2749
|
|
|
2750
|
+
class Config:
|
|
2751
|
+
extra = Extra.forbid
|
|
2720
2752
|
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2753
|
+
source: Annotated[
|
|
2754
|
+
Optional[VulnerabilitySource],
|
|
2755
|
+
Field(description="The source that calculated the severity or risk rating of the vulnerability."),
|
|
2756
|
+
] = None
|
|
2757
|
+
score: Annotated[Optional[float], Field(description="The numerical score of the rating.", title="Score")] = None
|
|
2758
|
+
severity: Annotated[
|
|
2759
|
+
Optional[Severity],
|
|
2760
|
+
Field(
|
|
2761
|
+
description="Textual representation of the severity that corresponds to the numerical score of the rating."
|
|
2762
|
+
),
|
|
2763
|
+
] = None
|
|
2764
|
+
method: Optional[ScoreMethod] = None
|
|
2765
|
+
vector: Annotated[
|
|
2766
|
+
Optional[str],
|
|
2767
|
+
Field(
|
|
2768
|
+
description="Textual representation of the metric values used to score the vulnerability", title="Vector"
|
|
2769
|
+
),
|
|
2770
|
+
] = None
|
|
2771
|
+
justification: Annotated[
|
|
2772
|
+
Optional[str],
|
|
2773
|
+
Field(description="An optional reason for rating the vulnerability as it was", title="Justification"),
|
|
2774
|
+
] = None
|
|
2725
2775
|
|
|
2726
2776
|
|
|
2727
|
-
class
|
|
2777
|
+
class Credits(CycloneDXBaseModel):
|
|
2728
2778
|
"""
|
|
2729
|
-
|
|
2779
|
+
Individuals or organizations credited with the discovery of the vulnerability.
|
|
2730
2780
|
"""
|
|
2731
2781
|
|
|
2782
|
+
class Config:
|
|
2783
|
+
extra = Extra.forbid
|
|
2732
2784
|
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2785
|
+
organizations: Annotated[
|
|
2786
|
+
Optional[List[OrganizationalEntity]],
|
|
2787
|
+
Field(description="The organizations credited with vulnerability discovery.", title="Organizations"),
|
|
2788
|
+
] = None
|
|
2789
|
+
individuals: Annotated[
|
|
2790
|
+
Optional[List[OrganizationalContact]],
|
|
2791
|
+
Field(
|
|
2792
|
+
description=(
|
|
2793
|
+
"The individuals, not associated with organizations, that are credited with vulnerability discovery."
|
|
2794
|
+
),
|
|
2795
|
+
title="Individuals",
|
|
2796
|
+
),
|
|
2797
|
+
] = None
|
|
2737
2798
|
|
|
2738
2799
|
|
|
2739
|
-
class
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
"""
|
|
2800
|
+
class DataGovernanceResponsibleParty(CycloneDXBaseModel):
|
|
2801
|
+
class Config:
|
|
2802
|
+
extra = Extra.forbid
|
|
2743
2803
|
|
|
2804
|
+
organization: Annotated[Optional[OrganizationalEntity], Field(title="Organization")] = None
|
|
2805
|
+
contact: Annotated[Optional[OrganizationalContact], Field(title="Individual")] = None
|
|
2744
2806
|
|
|
2745
|
-
class Purchaser3(Purchaser1):
|
|
2746
|
-
"""
|
|
2747
|
-
The individual or organization that purchased the license
|
|
2748
|
-
"""
|
|
2749
2807
|
|
|
2750
|
-
|
|
2751
|
-
class Licensing1(CycloneDXBaseModel):
|
|
2808
|
+
class GraphicsCollection(CycloneDXBaseModel):
|
|
2752
2809
|
"""
|
|
2753
|
-
|
|
2810
|
+
A collection of graphics that represent various measurements.
|
|
2754
2811
|
"""
|
|
2755
2812
|
|
|
2756
2813
|
class Config:
|
|
2757
2814
|
extra = Extra.forbid
|
|
2758
2815
|
|
|
2759
|
-
|
|
2760
|
-
Optional[
|
|
2761
|
-
Field(
|
|
2762
|
-
description="License identifiers that may be used to manage licenses and their lifecycle",
|
|
2763
|
-
title="Alternate License Identifiers",
|
|
2764
|
-
),
|
|
2765
|
-
] = None
|
|
2766
|
-
licensor: Annotated[
|
|
2767
|
-
Optional[Union[Licensor2, Licensor3]],
|
|
2768
|
-
Field(
|
|
2769
|
-
description="The individual or organization that grants a license to another individual or organization",
|
|
2770
|
-
title="Licensor",
|
|
2771
|
-
),
|
|
2772
|
-
] = None
|
|
2773
|
-
licensee: Annotated[
|
|
2774
|
-
Optional[Union[Licensee2, Licensee3]],
|
|
2775
|
-
Field(description="The individual or organization for which a license was granted to", title="Licensee"),
|
|
2816
|
+
description: Annotated[
|
|
2817
|
+
Optional[str], Field(description="A description of this collection of graphics.", title="Description")
|
|
2776
2818
|
] = None
|
|
2777
|
-
|
|
2778
|
-
Optional[
|
|
2779
|
-
Field(description="The individual or organization that purchased the license", title="Purchaser"),
|
|
2819
|
+
collection: Annotated[
|
|
2820
|
+
Optional[List[Graphic]], Field(description="A collection of graphics.", title="Collection")
|
|
2780
2821
|
] = None
|
|
2781
|
-
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
class EnergyProvider(CycloneDXBaseModel):
|
|
2825
|
+
"""
|
|
2826
|
+
Describes the physical provider of energy used for model development or operations.
|
|
2827
|
+
"""
|
|
2828
|
+
|
|
2829
|
+
class Config:
|
|
2830
|
+
extra = Extra.forbid
|
|
2831
|
+
|
|
2832
|
+
bom_ref: Annotated[
|
|
2782
2833
|
Optional[str],
|
|
2783
2834
|
Field(
|
|
2835
|
+
alias="bom-ref",
|
|
2784
2836
|
description=(
|
|
2785
|
-
"
|
|
2837
|
+
"An optional identifier which can be used to reference the energy provider elsewhere in the BOM. Every"
|
|
2838
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
2839
|
+
" avoid conflicts with BOM-Links."
|
|
2786
2840
|
),
|
|
2787
|
-
|
|
2841
|
+
min_length=1,
|
|
2842
|
+
title="BOM Reference",
|
|
2788
2843
|
),
|
|
2789
2844
|
] = None
|
|
2790
|
-
|
|
2791
|
-
Optional[
|
|
2792
|
-
Field(description="The type of license(s) that was granted to the licensee.", title="License Type"),
|
|
2845
|
+
description: Annotated[
|
|
2846
|
+
Optional[str], Field(description="A description of the energy provider.", title="Description")
|
|
2793
2847
|
] = None
|
|
2794
|
-
|
|
2795
|
-
|
|
2848
|
+
organization: Annotated[OrganizationalEntity, Field(title="Organization")]
|
|
2849
|
+
energySource: Annotated[
|
|
2850
|
+
EnergySource, Field(description="The energy source for the energy provider.", title="Energy Source")
|
|
2851
|
+
]
|
|
2852
|
+
energyProvided: Annotated[
|
|
2853
|
+
EnergyMeasure,
|
|
2854
|
+
Field(
|
|
2855
|
+
description="The energy provided by the energy source for an associated activity.", title="Energy Provided"
|
|
2856
|
+
),
|
|
2857
|
+
]
|
|
2858
|
+
externalReferences: Annotated[
|
|
2859
|
+
Optional[List[ExternalReference]],
|
|
2796
2860
|
Field(
|
|
2797
2861
|
description=(
|
|
2798
|
-
"
|
|
2799
|
-
"
|
|
2800
|
-
"
|
|
2862
|
+
"External references provide a way to document systems, sites, and information that may be relevant but"
|
|
2863
|
+
" are not included with the BOM. They may also establish specific relationships within or external to"
|
|
2864
|
+
" the BOM."
|
|
2801
2865
|
),
|
|
2802
|
-
title="
|
|
2866
|
+
title="External References",
|
|
2803
2867
|
),
|
|
2804
2868
|
] = None
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2869
|
+
|
|
2870
|
+
|
|
2871
|
+
class Step(CycloneDXBaseModel):
|
|
2872
|
+
"""
|
|
2873
|
+
Executes specific commands or tools in order to accomplish its owning task as part of a sequence.
|
|
2874
|
+
"""
|
|
2875
|
+
|
|
2876
|
+
class Config:
|
|
2877
|
+
extra = Extra.forbid
|
|
2878
|
+
|
|
2879
|
+
name: Annotated[Optional[str], Field(description="A name for the step.", title="Name")] = None
|
|
2880
|
+
description: Annotated[Optional[str], Field(description="A description of the step.", title="Description")] = None
|
|
2881
|
+
commands: Annotated[
|
|
2882
|
+
Optional[List[Command]],
|
|
2883
|
+
Field(description="Ordered list of commands or directives for the step", title="Commands"),
|
|
2810
2884
|
] = None
|
|
2885
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
2811
2886
|
|
|
2812
2887
|
|
|
2813
|
-
class
|
|
2888
|
+
class ResourceReferenceChoice(CycloneDXBaseModel):
|
|
2814
2889
|
"""
|
|
2815
|
-
|
|
2890
|
+
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
2816
2891
|
"""
|
|
2817
2892
|
|
|
2893
|
+
class Config:
|
|
2894
|
+
extra = Extra.forbid
|
|
2895
|
+
|
|
2896
|
+
ref: Annotated[
|
|
2897
|
+
Optional[Union[RefLinkType, BomLinkElementType]],
|
|
2898
|
+
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
2899
|
+
] = None
|
|
2900
|
+
externalReference: Annotated[
|
|
2901
|
+
Optional[ExternalReference],
|
|
2902
|
+
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
2903
|
+
] = None
|
|
2904
|
+
|
|
2905
|
+
|
|
2906
|
+
class Requirement(CycloneDXBaseModel):
|
|
2818
2907
|
class Config:
|
|
2819
2908
|
extra = Extra.forbid
|
|
2820
2909
|
|
|
@@ -2823,61 +2912,56 @@ class License2(CycloneDXBaseModel):
|
|
|
2823
2912
|
Field(
|
|
2824
2913
|
alias="bom-ref",
|
|
2825
2914
|
description=(
|
|
2826
|
-
"An optional identifier which can be used to reference the
|
|
2827
|
-
"
|
|
2828
|
-
" conflicts with BOM-Links."
|
|
2915
|
+
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
2916
|
+
" MUST be unique within the BOM."
|
|
2829
2917
|
),
|
|
2830
2918
|
min_length=1,
|
|
2831
2919
|
title="BOM Reference",
|
|
2832
2920
|
),
|
|
2833
2921
|
] = None
|
|
2834
|
-
|
|
2835
|
-
Optional[
|
|
2922
|
+
identifier: Annotated[
|
|
2923
|
+
Optional[str],
|
|
2836
2924
|
Field(
|
|
2837
2925
|
description=(
|
|
2838
|
-
"
|
|
2839
|
-
"
|
|
2840
|
-
" with the official SPDX license list."
|
|
2926
|
+
"The unique identifier used in the standard to identify a specific requirement. This should match what"
|
|
2927
|
+
" is in the standard and should not be the requirements bom-ref."
|
|
2841
2928
|
),
|
|
2842
|
-
|
|
2843
|
-
title="License ID (SPDX)",
|
|
2929
|
+
title="Identifier",
|
|
2844
2930
|
),
|
|
2845
2931
|
] = None
|
|
2846
|
-
|
|
2847
|
-
|
|
2932
|
+
title: Annotated[Optional[str], Field(description="The title of the requirement.", title="Title")] = None
|
|
2933
|
+
text: Annotated[Optional[str], Field(description="The textual content of the requirement.", title="Text")] = None
|
|
2934
|
+
descriptions: Annotated[
|
|
2935
|
+
Optional[List[str]],
|
|
2848
2936
|
Field(
|
|
2849
2937
|
description=(
|
|
2850
|
-
"The
|
|
2851
|
-
"
|
|
2938
|
+
"The supplemental text that provides additional guidance or context to the requirement, but is not"
|
|
2939
|
+
" directly part of the requirement."
|
|
2852
2940
|
),
|
|
2853
|
-
|
|
2854
|
-
title="License Name",
|
|
2941
|
+
title="Descriptions",
|
|
2855
2942
|
),
|
|
2856
|
-
]
|
|
2857
|
-
acknowledgement: Optional[LicenseAcknowledgementEnumeration] = None
|
|
2858
|
-
text: Annotated[
|
|
2859
|
-
Optional[Attachment],
|
|
2860
|
-
Field(description="An optional way to include the textual content of a license.", title="License text"),
|
|
2861
2943
|
] = None
|
|
2862
|
-
|
|
2863
|
-
Optional[
|
|
2944
|
+
openCre: Annotated[
|
|
2945
|
+
Optional[List[OpenCre]],
|
|
2864
2946
|
Field(
|
|
2865
2947
|
description=(
|
|
2866
|
-
"The
|
|
2867
|
-
"
|
|
2948
|
+
"The Common Requirements Enumeration (CRE) identifier(s). CRE is a structured and standardized"
|
|
2949
|
+
" framework for uniting security standards and guidelines. CRE links each section of a resource to a"
|
|
2950
|
+
" shared topic identifier (a Common Requirement). Through this shared topic link, all resources map to"
|
|
2951
|
+
" each other. Use of CRE promotes clear and unambiguous communication among stakeholders."
|
|
2868
2952
|
),
|
|
2869
|
-
|
|
2870
|
-
title="License URL",
|
|
2953
|
+
title="OWASP OpenCRE Identifier(s)",
|
|
2871
2954
|
),
|
|
2872
2955
|
] = None
|
|
2873
|
-
|
|
2874
|
-
Optional[
|
|
2956
|
+
parent: Annotated[
|
|
2957
|
+
Optional[str],
|
|
2875
2958
|
Field(
|
|
2876
2959
|
description=(
|
|
2877
|
-
"
|
|
2878
|
-
"
|
|
2960
|
+
"The optional `bom-ref` to a parent requirement. This establishes a hierarchy of requirements."
|
|
2961
|
+
" Top-level requirements must not define a parent. Only child requirements should define parents."
|
|
2879
2962
|
),
|
|
2880
|
-
|
|
2963
|
+
min_length=1,
|
|
2964
|
+
title="Parent BOM Reference",
|
|
2881
2965
|
),
|
|
2882
2966
|
] = None
|
|
2883
2967
|
properties: Annotated[
|
|
@@ -2889,1471 +2973,552 @@ class License2(CycloneDXBaseModel):
|
|
|
2889
2973
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
2890
2974
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
2891
2975
|
" registered in the [CycloneDX Property"
|
|
2892
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
2976
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
2893
2977
|
),
|
|
2894
2978
|
title="Properties",
|
|
2895
2979
|
),
|
|
2896
2980
|
] = None
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
class LicenseChoice1(CycloneDXBaseModel):
|
|
2900
|
-
class Config:
|
|
2901
|
-
extra = Extra.forbid
|
|
2902
|
-
|
|
2903
|
-
license: Annotated[
|
|
2904
|
-
Union[License1, License2],
|
|
2981
|
+
externalReferences: Annotated[
|
|
2982
|
+
Optional[List[ExternalReference]],
|
|
2905
2983
|
Field(
|
|
2906
2984
|
description=(
|
|
2907
|
-
"
|
|
2908
|
-
"
|
|
2909
|
-
"
|
|
2985
|
+
"External references provide a way to document systems, sites, and information that may be relevant,"
|
|
2986
|
+
" but are not included with the BOM. They may also establish specific relationships within or external"
|
|
2987
|
+
" to the BOM."
|
|
2910
2988
|
),
|
|
2911
|
-
title="
|
|
2989
|
+
title="External References",
|
|
2912
2990
|
),
|
|
2913
|
-
]
|
|
2914
|
-
|
|
2991
|
+
] = None
|
|
2915
2992
|
|
|
2916
|
-
class Commit(CycloneDXBaseModel):
|
|
2917
|
-
"""
|
|
2918
|
-
Specifies an individual commit
|
|
2919
|
-
"""
|
|
2920
2993
|
|
|
2994
|
+
class Signer(CycloneDXBaseModel):
|
|
2921
2995
|
class Config:
|
|
2922
2996
|
extra = Extra.forbid
|
|
2923
2997
|
|
|
2924
|
-
|
|
2998
|
+
algorithm: Union[AlgorithmEnum, AnyUrl]
|
|
2999
|
+
keyId: Annotated[
|
|
2925
3000
|
Optional[str],
|
|
3001
|
+
Field(description="Optional. Application specific string identifying the signature key.", title="Key ID"),
|
|
3002
|
+
] = None
|
|
3003
|
+
publicKey: Annotated[
|
|
3004
|
+
Optional[PublicKey], Field(description="Optional. Public key object.", title="Public key")
|
|
3005
|
+
] = None
|
|
3006
|
+
certificatePath: Annotated[
|
|
3007
|
+
Optional[List[str]],
|
|
2926
3008
|
Field(
|
|
2927
3009
|
description=(
|
|
2928
|
-
"
|
|
2929
|
-
"
|
|
3010
|
+
"Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the"
|
|
3011
|
+
" signature certificate. The certificate path must be contiguous but is not required to be complete."
|
|
2930
3012
|
),
|
|
2931
|
-
title="
|
|
2932
|
-
),
|
|
2933
|
-
] = None
|
|
2934
|
-
url: Annotated[
|
|
2935
|
-
Optional[str],
|
|
2936
|
-
Field(
|
|
2937
|
-
description="The URL to the commit. This URL will typically point to a commit in a version control system.",
|
|
2938
|
-
title="URL",
|
|
3013
|
+
title="Certificate path",
|
|
2939
3014
|
),
|
|
2940
3015
|
] = None
|
|
2941
|
-
|
|
2942
|
-
Optional[
|
|
2943
|
-
Field(description="The author who created the changes in the commit", title="Author"),
|
|
2944
|
-
] = None
|
|
2945
|
-
committer: Annotated[
|
|
2946
|
-
Optional[IdentifiableAction],
|
|
2947
|
-
Field(description="The person who committed or pushed the commit", title="Committer"),
|
|
2948
|
-
] = None
|
|
2949
|
-
message: Annotated[
|
|
2950
|
-
Optional[str], Field(description="The text description of the contents of the commit", title="Message")
|
|
2951
|
-
] = None
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
class Patch(CycloneDXBaseModel):
|
|
2955
|
-
"""
|
|
2956
|
-
Specifies an individual patch
|
|
2957
|
-
"""
|
|
2958
|
-
|
|
2959
|
-
class Config:
|
|
2960
|
-
extra = Extra.forbid
|
|
2961
|
-
|
|
2962
|
-
type: Annotated[
|
|
2963
|
-
Type1,
|
|
3016
|
+
excludes: Annotated[
|
|
3017
|
+
Optional[List[str]],
|
|
2964
3018
|
Field(
|
|
2965
3019
|
description=(
|
|
2966
|
-
"
|
|
2967
|
-
|
|
3020
|
+
"Optional. Array holding the names of one or more application level properties that must be excluded"
|
|
3021
|
+
' from the signature process. Note that the "excludes" property itself, must also be excluded from the'
|
|
3022
|
+
' signature process. Since both the "excludes" property and the associated data it points to are'
|
|
3023
|
+
" unsigned, a conforming JSF implementation must provide options for specifying which properties to"
|
|
3024
|
+
" accept."
|
|
2968
3025
|
),
|
|
2969
|
-
title="
|
|
3026
|
+
title="Excludes",
|
|
2970
3027
|
),
|
|
2971
|
-
]
|
|
2972
|
-
|
|
2973
|
-
|
|
3028
|
+
] = None
|
|
3029
|
+
value: Annotated[
|
|
3030
|
+
str,
|
|
2974
3031
|
Field(
|
|
2975
3032
|
description=(
|
|
2976
|
-
"The
|
|
2977
|
-
" [https://en.wikipedia.org/wiki/Diff](https://en.wikipedia.org/wiki/Diff)"
|
|
3033
|
+
"The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications."
|
|
2978
3034
|
),
|
|
2979
|
-
title="
|
|
3035
|
+
title="Signature",
|
|
2980
3036
|
),
|
|
2981
|
-
]
|
|
2982
|
-
resolves: Annotated[
|
|
2983
|
-
Optional[List[Issue]], Field(description="A collection of issues the patch resolves", title="Resolves")
|
|
2984
|
-
] = None
|
|
3037
|
+
]
|
|
2985
3038
|
|
|
2986
3039
|
|
|
2987
|
-
class
|
|
3040
|
+
class RelatedCryptoMaterialProperties(CycloneDXBaseModel):
|
|
2988
3041
|
"""
|
|
2989
|
-
|
|
3042
|
+
Properties for cryptographic assets of asset type: `related-crypto-material`
|
|
2990
3043
|
"""
|
|
2991
3044
|
|
|
2992
3045
|
class Config:
|
|
2993
3046
|
extra = Extra.forbid
|
|
2994
3047
|
|
|
2995
|
-
|
|
2996
|
-
|
|
3048
|
+
type: Annotated[
|
|
3049
|
+
Optional[Type8],
|
|
3050
|
+
Field(description="The type for the related cryptographic material", title="relatedCryptoMaterialType"),
|
|
3051
|
+
] = None
|
|
3052
|
+
id: Annotated[
|
|
3053
|
+
Optional[str],
|
|
3054
|
+
Field(description="The optional unique identifier for the related cryptographic material.", title="ID"),
|
|
3055
|
+
] = None
|
|
3056
|
+
state: Annotated[
|
|
3057
|
+
Optional[State], Field(description="The key state as defined by NIST SP 800-57.", title="State")
|
|
3058
|
+
] = None
|
|
3059
|
+
algorithmRef: Annotated[
|
|
3060
|
+
Optional[str],
|
|
2997
3061
|
Field(
|
|
2998
|
-
description=
|
|
2999
|
-
"The URI (URL or URN) to the external reference. External references are URIs and therefore can accept"
|
|
3000
|
-
" any URL scheme including https ([RFC-7230](https://www.ietf.org/rfc/rfc7230.txt)), mailto"
|
|
3001
|
-
" ([RFC-2368](https://www.ietf.org/rfc/rfc2368.txt)), tel"
|
|
3002
|
-
" ([RFC-3966](https://www.ietf.org/rfc/rfc3966.txt)), and dns"
|
|
3003
|
-
" ([RFC-4501](https://www.ietf.org/rfc/rfc4501.txt)). External references may also include formally"
|
|
3004
|
-
" registered URNs such as [CycloneDX BOM-Link](https://cyclonedx.org/capabilities/bomlink/) to"
|
|
3005
|
-
" reference CycloneDX BOMs or any object within a BOM. BOM-Link transforms applicable external"
|
|
3006
|
-
" references into relationships that can be expressed in a BOM or across BOMs."
|
|
3007
|
-
),
|
|
3008
|
-
title="URL",
|
|
3009
|
-
),
|
|
3010
|
-
]
|
|
3011
|
-
comment: Annotated[
|
|
3012
|
-
Optional[str], Field(description="An optional comment describing the external reference", title="Comment")
|
|
3013
|
-
] = None
|
|
3014
|
-
type: Annotated[Type3, Field(description="Specifies the type of external reference.", title="Type")]
|
|
3015
|
-
hashes: Annotated[
|
|
3016
|
-
Optional[List[Hash]], Field(description="The hashes of the external reference (if applicable).", title="Hashes")
|
|
3017
|
-
] = None
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
class ComponentEvidence(CycloneDXBaseModel):
|
|
3021
|
-
"""
|
|
3022
|
-
Provides the ability to document evidence collected through various forms of extraction or analysis.
|
|
3023
|
-
"""
|
|
3024
|
-
|
|
3025
|
-
class Config:
|
|
3026
|
-
extra = Extra.forbid
|
|
3027
|
-
|
|
3028
|
-
identity: Annotated[
|
|
3029
|
-
Optional[Union[List[ComponentIdentityEvidence], ComponentIdentityEvidence]],
|
|
3030
|
-
Field(
|
|
3031
|
-
description=(
|
|
3032
|
-
"Evidence that substantiates the identity of a component. The identity may be an object or an array of"
|
|
3033
|
-
" identity objects. Support for specifying identity as a single object was introduced in CycloneDX"
|
|
3034
|
-
" v1.5. Arrays were introduced in v1.6. It is recommended that all implementations use arrays, even if"
|
|
3035
|
-
" only one identity object is specified."
|
|
3036
|
-
),
|
|
3037
|
-
title="Identity Evidence",
|
|
3038
|
-
),
|
|
3039
|
-
] = None
|
|
3040
|
-
occurrences: Annotated[
|
|
3041
|
-
Optional[List[Occurrence]],
|
|
3042
|
-
Field(
|
|
3043
|
-
description="Evidence of individual instances of a component spread across multiple locations.",
|
|
3044
|
-
title="Occurrences",
|
|
3045
|
-
),
|
|
3046
|
-
] = None
|
|
3047
|
-
callstack: Annotated[
|
|
3048
|
-
Optional[Callstack],
|
|
3049
|
-
Field(description="Evidence of the components use through the callstack.", title="Call Stack"),
|
|
3050
|
-
] = None
|
|
3051
|
-
licenses: Annotated[
|
|
3052
|
-
Optional[Union[List[LicenseChoice1], LicenseChoice2]],
|
|
3053
|
-
Field(
|
|
3054
|
-
description=(
|
|
3055
|
-
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
3056
|
-
),
|
|
3057
|
-
title="License Evidence",
|
|
3058
|
-
),
|
|
3059
|
-
] = None
|
|
3060
|
-
copyright: Annotated[
|
|
3061
|
-
Optional[List[Copyright]],
|
|
3062
|
-
Field(
|
|
3063
|
-
description=(
|
|
3064
|
-
"Copyright evidence captures intellectual property assertions, providing evidence of possible ownership"
|
|
3065
|
-
" and legal protection."
|
|
3066
|
-
),
|
|
3067
|
-
title="Copyright Evidence",
|
|
3068
|
-
),
|
|
3069
|
-
] = None
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
class ReleaseNotes(CycloneDXBaseModel):
|
|
3073
|
-
class Config:
|
|
3074
|
-
extra = Extra.forbid
|
|
3075
|
-
|
|
3076
|
-
type: Annotated[
|
|
3077
|
-
str,
|
|
3078
|
-
Field(
|
|
3079
|
-
description="The software versioning type the release note describes.",
|
|
3080
|
-
examples=["major", "minor", "patch", "pre-release", "internal"],
|
|
3081
|
-
title="Type",
|
|
3082
|
-
),
|
|
3083
|
-
]
|
|
3084
|
-
title: Annotated[Optional[str], Field(description="The title of the release.", title="Title")] = None
|
|
3085
|
-
featuredImage: Annotated[
|
|
3086
|
-
Optional[str],
|
|
3087
|
-
Field(
|
|
3088
|
-
description="The URL to an image that may be prominently displayed with the release note.",
|
|
3089
|
-
title="Featured image",
|
|
3090
|
-
),
|
|
3091
|
-
] = None
|
|
3092
|
-
socialImage: Annotated[
|
|
3093
|
-
Optional[str],
|
|
3094
|
-
Field(
|
|
3095
|
-
description="The URL to an image that may be used in messaging on social media platforms.",
|
|
3096
|
-
title="Social image",
|
|
3097
|
-
),
|
|
3098
|
-
] = None
|
|
3099
|
-
description: Annotated[
|
|
3100
|
-
Optional[str], Field(description="A short description of the release.", title="Description")
|
|
3101
|
-
] = None
|
|
3102
|
-
timestamp: Annotated[
|
|
3103
|
-
Optional[datetime],
|
|
3104
|
-
Field(description="The date and time (timestamp) when the release note was created.", title="Timestamp"),
|
|
3105
|
-
] = None
|
|
3106
|
-
aliases: Annotated[
|
|
3107
|
-
Optional[List[str]],
|
|
3108
|
-
Field(
|
|
3109
|
-
description=(
|
|
3110
|
-
"One or more alternate names the release may be referred to. This may include unofficial terms used by"
|
|
3111
|
-
" development and marketing teams (e.g. code names)."
|
|
3112
|
-
),
|
|
3113
|
-
title="Aliases",
|
|
3114
|
-
),
|
|
3115
|
-
] = None
|
|
3116
|
-
tags: Annotated[
|
|
3117
|
-
Optional[List[str]],
|
|
3118
|
-
Field(
|
|
3119
|
-
description=(
|
|
3120
|
-
"Textual strings that aid in discovery, search, and retrieval of the associated object. Tags often"
|
|
3121
|
-
" serve as a way to group or categorize similar or related objects by various attributes."
|
|
3122
|
-
),
|
|
3123
|
-
examples=["json-parser", "object-persistence", "text-to-image", "translation", "object-detection"],
|
|
3124
|
-
title="Tags",
|
|
3125
|
-
),
|
|
3126
|
-
] = None
|
|
3127
|
-
resolves: Annotated[
|
|
3128
|
-
Optional[List[Issue]], Field(description="A collection of issues that have been resolved.", title="Resolves")
|
|
3129
|
-
] = None
|
|
3130
|
-
notes: Annotated[
|
|
3131
|
-
Optional[List[Note]],
|
|
3132
|
-
Field(
|
|
3133
|
-
description=(
|
|
3134
|
-
"Zero or more release notes containing the locale and content. Multiple note objects may be specified"
|
|
3135
|
-
" to support release notes in a wide variety of languages."
|
|
3136
|
-
),
|
|
3137
|
-
title="Notes",
|
|
3138
|
-
),
|
|
3139
|
-
] = None
|
|
3140
|
-
properties: Annotated[
|
|
3141
|
-
Optional[List[Property]],
|
|
3142
|
-
Field(
|
|
3143
|
-
description=(
|
|
3144
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
3145
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
3146
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
3147
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
3148
|
-
" registered in the [CycloneDX Property"
|
|
3149
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
3150
|
-
),
|
|
3151
|
-
title="Properties",
|
|
3152
|
-
),
|
|
3153
|
-
] = None
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
class Rating(CycloneDXBaseModel):
|
|
3157
|
-
"""
|
|
3158
|
-
Defines the severity or risk ratings of a vulnerability.
|
|
3159
|
-
"""
|
|
3160
|
-
|
|
3161
|
-
class Config:
|
|
3162
|
-
extra = Extra.forbid
|
|
3163
|
-
|
|
3164
|
-
source: Annotated[
|
|
3165
|
-
Optional[VulnerabilitySource],
|
|
3166
|
-
Field(description="The source that calculated the severity or risk rating of the vulnerability."),
|
|
3167
|
-
] = None
|
|
3168
|
-
score: Annotated[Optional[float], Field(description="The numerical score of the rating.", title="Score")] = None
|
|
3169
|
-
severity: Annotated[
|
|
3170
|
-
Optional[Severity],
|
|
3171
|
-
Field(
|
|
3172
|
-
description="Textual representation of the severity that corresponds to the numerical score of the rating."
|
|
3173
|
-
),
|
|
3174
|
-
] = None
|
|
3175
|
-
method: Optional[ScoreMethod] = None
|
|
3176
|
-
vector: Annotated[
|
|
3177
|
-
Optional[str],
|
|
3178
|
-
Field(
|
|
3179
|
-
description="Textual representation of the metric values used to score the vulnerability", title="Vector"
|
|
3180
|
-
),
|
|
3181
|
-
] = None
|
|
3182
|
-
justification: Annotated[
|
|
3183
|
-
Optional[str],
|
|
3184
|
-
Field(description="An optional reason for rating the vulnerability as it was", title="Justification"),
|
|
3185
|
-
] = None
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
class Credits(CycloneDXBaseModel):
|
|
3189
|
-
"""
|
|
3190
|
-
Individuals or organizations credited with the discovery of the vulnerability.
|
|
3191
|
-
"""
|
|
3192
|
-
|
|
3193
|
-
class Config:
|
|
3194
|
-
extra = Extra.forbid
|
|
3195
|
-
|
|
3196
|
-
organizations: Annotated[
|
|
3197
|
-
Optional[List[OrganizationalEntity]],
|
|
3198
|
-
Field(description="The organizations credited with vulnerability discovery.", title="Organizations"),
|
|
3199
|
-
] = None
|
|
3200
|
-
individuals: Annotated[
|
|
3201
|
-
Optional[List[OrganizationalContact]],
|
|
3202
|
-
Field(
|
|
3203
|
-
description=(
|
|
3204
|
-
"The individuals, not associated with organizations, that are credited with vulnerability discovery."
|
|
3205
|
-
),
|
|
3206
|
-
title="Individuals",
|
|
3207
|
-
),
|
|
3208
|
-
] = None
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
class Versions(CycloneDXBaseModel):
|
|
3212
|
-
class Config:
|
|
3213
|
-
extra = Extra.forbid
|
|
3214
|
-
|
|
3215
|
-
version: Annotated[
|
|
3216
|
-
str,
|
|
3217
|
-
Field(
|
|
3218
|
-
description="A single version of a component or service.",
|
|
3219
|
-
examples=["9.0.14", "v1.33.7", "7.0.0-M1", "2.0pre1", "1.0.0-beta1", "0.8.15"],
|
|
3220
|
-
max_length=1024,
|
|
3221
|
-
title="Version",
|
|
3222
|
-
),
|
|
3223
|
-
]
|
|
3224
|
-
range: Annotated[
|
|
3225
|
-
Optional[str],
|
|
3226
|
-
Field(
|
|
3227
|
-
description=(
|
|
3228
|
-
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
3229
|
-
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
3230
|
-
),
|
|
3231
|
-
examples=[
|
|
3232
|
-
"vers:cargo/9.0.14",
|
|
3233
|
-
"vers:npm/1.2.3|>=2.0.0|<5.0.0",
|
|
3234
|
-
"vers:pypi/0.0.0|0.0.1|0.0.2|0.0.3|1.0|2.0pre1",
|
|
3235
|
-
"vers:tomee/>=1.0.0-beta1|<=1.7.5|>=7.0.0-M1|<=7.0.7|>=7.1.0|<=7.1.2|>=8.0.0-M1|<=8.0.1",
|
|
3236
|
-
"vers:gem/>=2.2.0|!= 2.2.1|<2.3.0",
|
|
3237
|
-
],
|
|
3238
|
-
max_length=4096,
|
|
3239
|
-
min_length=1,
|
|
3240
|
-
title="Version Range",
|
|
3241
|
-
),
|
|
3242
|
-
] = None
|
|
3243
|
-
status: Annotated[
|
|
3244
|
-
Optional[AffectedStatus],
|
|
3245
|
-
Field(description="The vulnerability status for the version or range of versions.", title="Status"),
|
|
3246
|
-
] = AffectedStatus.affected
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
class Versions1(CycloneDXBaseModel):
|
|
3250
|
-
class Config:
|
|
3251
|
-
extra = Extra.forbid
|
|
3252
|
-
|
|
3253
|
-
version: Annotated[
|
|
3254
|
-
Optional[str],
|
|
3255
|
-
Field(
|
|
3256
|
-
description="A single version of a component or service.",
|
|
3257
|
-
examples=["9.0.14", "v1.33.7", "7.0.0-M1", "2.0pre1", "1.0.0-beta1", "0.8.15"],
|
|
3258
|
-
max_length=1024,
|
|
3259
|
-
title="Version",
|
|
3260
|
-
),
|
|
3261
|
-
] = None
|
|
3262
|
-
range: Annotated[
|
|
3263
|
-
str,
|
|
3264
|
-
Field(
|
|
3265
|
-
description=(
|
|
3266
|
-
"A version range specified in Package URL Version Range syntax (vers) which is defined at"
|
|
3267
|
-
" https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst"
|
|
3268
|
-
),
|
|
3269
|
-
examples=[
|
|
3270
|
-
"vers:cargo/9.0.14",
|
|
3271
|
-
"vers:npm/1.2.3|>=2.0.0|<5.0.0",
|
|
3272
|
-
"vers:pypi/0.0.0|0.0.1|0.0.2|0.0.3|1.0|2.0pre1",
|
|
3273
|
-
"vers:tomee/>=1.0.0-beta1|<=1.7.5|>=7.0.0-M1|<=7.0.7|>=7.1.0|<=7.1.2|>=8.0.0-M1|<=8.0.1",
|
|
3274
|
-
"vers:gem/>=2.2.0|!= 2.2.1|<2.3.0",
|
|
3275
|
-
],
|
|
3276
|
-
max_length=4096,
|
|
3277
|
-
min_length=1,
|
|
3278
|
-
title="Version Range",
|
|
3279
|
-
),
|
|
3280
|
-
]
|
|
3281
|
-
status: Annotated[
|
|
3282
|
-
Optional[AffectedStatus],
|
|
3283
|
-
Field(description="The vulnerability status for the version or range of versions.", title="Status"),
|
|
3284
|
-
] = AffectedStatus.affected
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
class Affect(CycloneDXBaseModel):
|
|
3288
|
-
class Config:
|
|
3289
|
-
extra = Extra.forbid
|
|
3290
|
-
|
|
3291
|
-
ref: Annotated[
|
|
3292
|
-
Union[RefLinkType, BomLinkElementType],
|
|
3293
|
-
Field(description="References a component or service by the objects bom-ref", title="Reference"),
|
|
3294
|
-
]
|
|
3295
|
-
versions: Annotated[
|
|
3296
|
-
Optional[List[Union[Versions, Versions1]]],
|
|
3297
|
-
Field(description="Zero or more individual versions or range of versions.", title="Versions"),
|
|
3298
|
-
] = None
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
class DataGovernanceResponsibleParty1(CycloneDXBaseModel):
|
|
3302
|
-
class Config:
|
|
3303
|
-
extra = Extra.forbid
|
|
3304
|
-
|
|
3305
|
-
organization: Annotated[
|
|
3306
|
-
OrganizationalEntity,
|
|
3307
|
-
Field(
|
|
3308
|
-
description="The organization that is responsible for specific data governance role(s).",
|
|
3309
|
-
title="Organization",
|
|
3310
|
-
),
|
|
3311
|
-
]
|
|
3312
|
-
contact: Annotated[
|
|
3313
|
-
Optional[OrganizationalContact],
|
|
3314
|
-
Field(
|
|
3315
|
-
description="The individual that is responsible for specific data governance role(s).", title="Individual"
|
|
3316
|
-
),
|
|
3317
|
-
] = None
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
class DataGovernanceResponsibleParty2(CycloneDXBaseModel):
|
|
3321
|
-
class Config:
|
|
3322
|
-
extra = Extra.forbid
|
|
3323
|
-
|
|
3324
|
-
organization: Annotated[
|
|
3325
|
-
Optional[OrganizationalEntity],
|
|
3326
|
-
Field(
|
|
3327
|
-
description="The organization that is responsible for specific data governance role(s).",
|
|
3328
|
-
title="Organization",
|
|
3329
|
-
),
|
|
3330
|
-
] = None
|
|
3331
|
-
contact: Annotated[
|
|
3332
|
-
OrganizationalContact,
|
|
3333
|
-
Field(
|
|
3334
|
-
description="The individual that is responsible for specific data governance role(s).", title="Individual"
|
|
3335
|
-
),
|
|
3336
|
-
]
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
class GraphicsCollection(CycloneDXBaseModel):
|
|
3340
|
-
"""
|
|
3341
|
-
A collection of graphics that represent various measurements.
|
|
3342
|
-
"""
|
|
3343
|
-
|
|
3344
|
-
class Config:
|
|
3345
|
-
extra = Extra.forbid
|
|
3346
|
-
|
|
3347
|
-
description: Annotated[
|
|
3348
|
-
Optional[str], Field(description="A description of this collection of graphics.", title="Description")
|
|
3349
|
-
] = None
|
|
3350
|
-
collection: Annotated[
|
|
3351
|
-
Optional[List[Graphic]], Field(description="A collection of graphics.", title="Collection")
|
|
3352
|
-
] = None
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
class EnergyProvider(CycloneDXBaseModel):
|
|
3356
|
-
"""
|
|
3357
|
-
Describes the physical provider of energy used for model development or operations.
|
|
3358
|
-
"""
|
|
3359
|
-
|
|
3360
|
-
class Config:
|
|
3361
|
-
extra = Extra.forbid
|
|
3362
|
-
|
|
3363
|
-
bom_ref: Annotated[
|
|
3364
|
-
Optional[str],
|
|
3365
|
-
Field(
|
|
3366
|
-
alias="bom-ref",
|
|
3367
|
-
description=(
|
|
3368
|
-
"An optional identifier which can be used to reference the energy provider elsewhere in the BOM. Every"
|
|
3369
|
-
" bom-ref must be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
3370
|
-
" avoid conflicts with BOM-Links."
|
|
3371
|
-
),
|
|
3372
|
-
min_length=1,
|
|
3373
|
-
title="BOM Reference",
|
|
3374
|
-
),
|
|
3375
|
-
] = None
|
|
3376
|
-
description: Annotated[
|
|
3377
|
-
Optional[str], Field(description="A description of the energy provider.", title="Description")
|
|
3378
|
-
] = None
|
|
3379
|
-
organization: Annotated[
|
|
3380
|
-
OrganizationalEntity, Field(description="The organization that provides energy.", title="Organization")
|
|
3381
|
-
]
|
|
3382
|
-
energySource: Annotated[
|
|
3383
|
-
EnergySource, Field(description="The energy source for the energy provider.", title="Energy Source")
|
|
3384
|
-
]
|
|
3385
|
-
energyProvided: Annotated[
|
|
3386
|
-
EnergyMeasure,
|
|
3387
|
-
Field(
|
|
3388
|
-
description="The energy provided by the energy source for an associated activity.", title="Energy Provided"
|
|
3389
|
-
),
|
|
3390
|
-
]
|
|
3391
|
-
externalReferences: Annotated[
|
|
3392
|
-
Optional[List[ExternalReference]],
|
|
3393
|
-
Field(
|
|
3394
|
-
description=(
|
|
3395
|
-
"External references provide a way to document systems, sites, and information that may be relevant but"
|
|
3396
|
-
" are not included with the BOM. They may also establish specific relationships within or external to"
|
|
3397
|
-
" the BOM."
|
|
3398
|
-
),
|
|
3399
|
-
title="External References",
|
|
3400
|
-
),
|
|
3401
|
-
] = None
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
class Step(CycloneDXBaseModel):
|
|
3405
|
-
"""
|
|
3406
|
-
Executes specific commands or tools in order to accomplish its owning task as part of a sequence.
|
|
3407
|
-
"""
|
|
3408
|
-
|
|
3409
|
-
class Config:
|
|
3410
|
-
extra = Extra.forbid
|
|
3411
|
-
|
|
3412
|
-
name: Annotated[Optional[str], Field(description="A name for the step.", title="Name")] = None
|
|
3413
|
-
description: Annotated[Optional[str], Field(description="A description of the step.", title="Description")] = None
|
|
3414
|
-
commands: Annotated[
|
|
3415
|
-
Optional[List[Command]],
|
|
3416
|
-
Field(description="Ordered list of commands or directives for the step", title="Commands"),
|
|
3417
|
-
] = None
|
|
3418
|
-
properties: Annotated[
|
|
3419
|
-
Optional[List[Property]],
|
|
3420
|
-
Field(
|
|
3421
|
-
description=(
|
|
3422
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
3423
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
3424
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
3425
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
3426
|
-
" registered in the [CycloneDX Property"
|
|
3427
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
3428
|
-
),
|
|
3429
|
-
title="Properties",
|
|
3430
|
-
),
|
|
3431
|
-
] = None
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
class ResourceReferenceChoice1(CycloneDXBaseModel):
|
|
3435
|
-
"""
|
|
3436
|
-
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
3437
|
-
"""
|
|
3438
|
-
|
|
3439
|
-
class Config:
|
|
3440
|
-
extra = Extra.forbid
|
|
3441
|
-
|
|
3442
|
-
ref: Annotated[
|
|
3443
|
-
Union[RefLinkType, BomLinkElementType],
|
|
3444
|
-
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
3445
|
-
]
|
|
3446
|
-
externalReference: Annotated[
|
|
3447
|
-
Optional[ExternalReference],
|
|
3448
|
-
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
3449
|
-
] = None
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
class ResourceReferenceChoice2(CycloneDXBaseModel):
|
|
3453
|
-
"""
|
|
3454
|
-
A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.
|
|
3455
|
-
"""
|
|
3456
|
-
|
|
3457
|
-
class Config:
|
|
3458
|
-
extra = Extra.forbid
|
|
3459
|
-
|
|
3460
|
-
ref: Annotated[
|
|
3461
|
-
Optional[Union[RefLinkType, BomLinkElementType]],
|
|
3462
|
-
Field(description="References an object by its bom-ref attribute", title="BOM Reference"),
|
|
3463
|
-
] = None
|
|
3464
|
-
externalReference: Annotated[
|
|
3465
|
-
ExternalReference,
|
|
3466
|
-
Field(description="Reference to an externally accessible resource.", title="External reference"),
|
|
3467
|
-
]
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
class Requirement(CycloneDXBaseModel):
|
|
3471
|
-
class Config:
|
|
3472
|
-
extra = Extra.forbid
|
|
3473
|
-
|
|
3474
|
-
bom_ref: Annotated[
|
|
3475
|
-
Optional[str],
|
|
3476
|
-
Field(
|
|
3477
|
-
alias="bom-ref",
|
|
3478
|
-
description=(
|
|
3479
|
-
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
3480
|
-
" must be unique within the BOM."
|
|
3481
|
-
),
|
|
3482
|
-
min_length=1,
|
|
3483
|
-
title="BOM Reference",
|
|
3484
|
-
),
|
|
3485
|
-
] = None
|
|
3486
|
-
identifier: Annotated[
|
|
3487
|
-
Optional[str],
|
|
3488
|
-
Field(
|
|
3489
|
-
description=(
|
|
3490
|
-
"The unique identifier used in the standard to identify a specific requirement. This should match what"
|
|
3491
|
-
" is in the standard and should not be the requirements bom-ref."
|
|
3492
|
-
),
|
|
3493
|
-
title="Identifier",
|
|
3494
|
-
),
|
|
3495
|
-
] = None
|
|
3496
|
-
title: Annotated[Optional[str], Field(description="The title of the requirement.", title="Title")] = None
|
|
3497
|
-
text: Annotated[Optional[str], Field(description="The textual content of the requirement.", title="Text")] = None
|
|
3498
|
-
descriptions: Annotated[
|
|
3499
|
-
Optional[List[str]],
|
|
3500
|
-
Field(
|
|
3501
|
-
description=(
|
|
3502
|
-
"The supplemental text that provides additional guidance or context to the requirement, but is not"
|
|
3503
|
-
" directly part of the requirement."
|
|
3504
|
-
),
|
|
3505
|
-
title="Descriptions",
|
|
3506
|
-
),
|
|
3507
|
-
] = None
|
|
3508
|
-
openCre: Annotated[
|
|
3509
|
-
Optional[List[str]],
|
|
3510
|
-
Field(
|
|
3511
|
-
description=(
|
|
3512
|
-
"The Common Requirements Enumeration (CRE) identifier(s). CRE is a structured and standardized"
|
|
3513
|
-
" framework for uniting security standards and guidelines. CRE links each section of a resource to a"
|
|
3514
|
-
" shared topic identifier (a Common Requirement). Through this shared topic link, all resources map to"
|
|
3515
|
-
" each other. Use of CRE promotes clear and unambiguous communication among stakeholders."
|
|
3516
|
-
),
|
|
3517
|
-
regex="^CRE:[0-9]+-[0-9]+$",
|
|
3518
|
-
title="OWASP OpenCRE Identifier(s)",
|
|
3519
|
-
),
|
|
3520
|
-
] = None
|
|
3521
|
-
parent: Annotated[
|
|
3522
|
-
Optional[str],
|
|
3523
|
-
Field(
|
|
3524
|
-
description=(
|
|
3525
|
-
"The optional `bom-ref` to a parent requirement. This establishes a hierarchy of requirements."
|
|
3526
|
-
" Top-level requirements must not define a parent. Only child requirements should define parents."
|
|
3527
|
-
),
|
|
3528
|
-
min_length=1,
|
|
3529
|
-
title="Parent BOM Reference",
|
|
3530
|
-
),
|
|
3531
|
-
] = None
|
|
3532
|
-
properties: Annotated[
|
|
3533
|
-
Optional[List[Property]],
|
|
3534
|
-
Field(
|
|
3535
|
-
description=(
|
|
3536
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
3537
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
3538
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
3539
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
3540
|
-
" registered in the [CycloneDX Property"
|
|
3541
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
3542
|
-
),
|
|
3543
|
-
title="Properties",
|
|
3544
|
-
),
|
|
3545
|
-
] = None
|
|
3546
|
-
externalReferences: Annotated[
|
|
3547
|
-
Optional[List[ExternalReference]],
|
|
3548
|
-
Field(
|
|
3549
|
-
description=(
|
|
3550
|
-
"External references provide a way to document systems, sites, and information that may be relevant,"
|
|
3551
|
-
" but are not included with the BOM. They may also establish specific relationships within or external"
|
|
3552
|
-
" to the BOM."
|
|
3553
|
-
),
|
|
3554
|
-
title="External References",
|
|
3555
|
-
),
|
|
3556
|
-
] = None
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
class Signer(CycloneDXBaseModel):
|
|
3560
|
-
class Config:
|
|
3561
|
-
extra = Extra.forbid
|
|
3562
|
-
|
|
3563
|
-
algorithm: Union[Algorithm, AnyUrl]
|
|
3564
|
-
keyId: Annotated[
|
|
3565
|
-
Optional[str],
|
|
3566
|
-
Field(description="Optional. Application specific string identifying the signature key.", title="Key ID"),
|
|
3567
|
-
] = None
|
|
3568
|
-
publicKey: Annotated[
|
|
3569
|
-
Optional[PublicKey], Field(description="Optional. Public key object.", title="Public key")
|
|
3570
|
-
] = None
|
|
3571
|
-
certificatePath: Annotated[
|
|
3572
|
-
Optional[List[str]],
|
|
3573
|
-
Field(
|
|
3574
|
-
description=(
|
|
3575
|
-
"Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the"
|
|
3576
|
-
" signature certificate. The certificate path must be contiguous but is not required to be complete."
|
|
3577
|
-
),
|
|
3578
|
-
title="Certificate path",
|
|
3579
|
-
),
|
|
3580
|
-
] = None
|
|
3581
|
-
excludes: Annotated[
|
|
3582
|
-
Optional[List[str]],
|
|
3583
|
-
Field(
|
|
3584
|
-
description=(
|
|
3585
|
-
"Optional. Array holding the names of one or more application level properties that must be excluded"
|
|
3586
|
-
' from the signature process. Note that the "excludes" property itself, must also be excluded from the'
|
|
3587
|
-
' signature process. Since both the "excludes" property and the associated data it points to are'
|
|
3588
|
-
" unsigned, a conforming JSF implementation must provide options for specifying which properties to"
|
|
3589
|
-
" accept."
|
|
3590
|
-
),
|
|
3591
|
-
title="Excludes",
|
|
3592
|
-
),
|
|
3593
|
-
] = None
|
|
3594
|
-
value: Annotated[
|
|
3595
|
-
str,
|
|
3596
|
-
Field(
|
|
3597
|
-
description=(
|
|
3598
|
-
"The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications."
|
|
3599
|
-
),
|
|
3600
|
-
title="Signature",
|
|
3601
|
-
),
|
|
3602
|
-
]
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
class RelatedCryptoMaterialProperties(CycloneDXBaseModel):
|
|
3606
|
-
"""
|
|
3607
|
-
Properties for cryptographic assets of asset type: `related-crypto-material`
|
|
3608
|
-
"""
|
|
3609
|
-
|
|
3610
|
-
class Config:
|
|
3611
|
-
extra = Extra.forbid
|
|
3612
|
-
|
|
3613
|
-
type: Annotated[
|
|
3614
|
-
Optional[Type10],
|
|
3615
|
-
Field(description="The type for the related cryptographic material", title="relatedCryptoMaterialType"),
|
|
3616
|
-
] = None
|
|
3617
|
-
id: Annotated[
|
|
3618
|
-
Optional[str],
|
|
3619
|
-
Field(description="The optional unique identifier for the related cryptographic material.", title="ID"),
|
|
3620
|
-
] = None
|
|
3621
|
-
state: Annotated[
|
|
3622
|
-
Optional[State], Field(description="The key state as defined by NIST SP 800-57.", title="State")
|
|
3623
|
-
] = None
|
|
3624
|
-
algorithmRef: Annotated[
|
|
3625
|
-
Optional[str],
|
|
3626
|
-
Field(
|
|
3627
|
-
description="The bom-ref to the algorithm used to generate the related cryptographic material.",
|
|
3628
|
-
min_length=1,
|
|
3629
|
-
title="Algorithm Reference",
|
|
3630
|
-
),
|
|
3631
|
-
] = None
|
|
3632
|
-
creationDate: Annotated[
|
|
3633
|
-
Optional[datetime],
|
|
3634
|
-
Field(
|
|
3635
|
-
description="The date and time (timestamp) when the related cryptographic material was created.",
|
|
3636
|
-
title="Creation Date",
|
|
3637
|
-
),
|
|
3638
|
-
] = None
|
|
3639
|
-
activationDate: Annotated[
|
|
3640
|
-
Optional[datetime],
|
|
3641
|
-
Field(
|
|
3642
|
-
description="The date and time (timestamp) when the related cryptographic material was activated.",
|
|
3643
|
-
title="Activation Date",
|
|
3644
|
-
),
|
|
3645
|
-
] = None
|
|
3646
|
-
updateDate: Annotated[
|
|
3647
|
-
Optional[datetime],
|
|
3648
|
-
Field(
|
|
3649
|
-
description="The date and time (timestamp) when the related cryptographic material was updated.",
|
|
3650
|
-
title="Update Date",
|
|
3651
|
-
),
|
|
3652
|
-
] = None
|
|
3653
|
-
expirationDate: Annotated[
|
|
3654
|
-
Optional[datetime],
|
|
3655
|
-
Field(
|
|
3656
|
-
description="The date and time (timestamp) when the related cryptographic material expires.",
|
|
3657
|
-
title="Expiration Date",
|
|
3658
|
-
),
|
|
3659
|
-
] = None
|
|
3660
|
-
value: Annotated[
|
|
3661
|
-
Optional[str], Field(description="The associated value of the cryptographic material.", title="Value")
|
|
3662
|
-
] = None
|
|
3663
|
-
size: Annotated[
|
|
3664
|
-
Optional[int], Field(description="The size of the cryptographic asset (in bits).", title="Size")
|
|
3665
|
-
] = None
|
|
3666
|
-
format: Annotated[
|
|
3667
|
-
Optional[str],
|
|
3668
|
-
Field(description="The format of the related cryptographic material (e.g. P8, PEM, DER).", title="Format"),
|
|
3669
|
-
] = None
|
|
3670
|
-
securedBy: Annotated[
|
|
3671
|
-
Optional[SecuredBy],
|
|
3672
|
-
Field(description="The mechanism by which the cryptographic asset is secured by.", title="Secured By"),
|
|
3673
|
-
] = None
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
class Ikev2TransformTypes(CycloneDXBaseModel):
|
|
3677
|
-
"""
|
|
3678
|
-
The IKEv2 transform types supported (types 1-4), defined in [RFC 7296 section 3.3.2](https://www.ietf.org/rfc/rfc7296.html#section-3.3.2), and additional properties.
|
|
3679
|
-
"""
|
|
3680
|
-
|
|
3681
|
-
class Config:
|
|
3682
|
-
extra = Extra.forbid
|
|
3683
|
-
|
|
3684
|
-
encr: Annotated[
|
|
3685
|
-
Optional[List[str]],
|
|
3686
|
-
Field(description="Transform Type 1: encryption algorithms", min_length=1, title="Encryption Algorithm (ENCR)"),
|
|
3687
|
-
] = None
|
|
3688
|
-
prf: Annotated[
|
|
3689
|
-
Optional[List[str]],
|
|
3690
|
-
Field(
|
|
3691
|
-
description="Transform Type 2: pseudorandom functions", min_length=1, title="Pseudorandom Function (PRF)"
|
|
3692
|
-
),
|
|
3693
|
-
] = None
|
|
3694
|
-
integ: Annotated[
|
|
3695
|
-
Optional[List[str]],
|
|
3696
|
-
Field(description="Transform Type 3: integrity algorithms", min_length=1, title="Integrity Algorithm (INTEG)"),
|
|
3697
|
-
] = None
|
|
3698
|
-
ke: Annotated[
|
|
3699
|
-
Optional[List[str]],
|
|
3700
|
-
Field(
|
|
3701
|
-
description=(
|
|
3702
|
-
"Transform Type 4: Key Exchange Method (KE) per [RFC 9370](https://www.ietf.org/rfc/rfc9370.html),"
|
|
3703
|
-
" formerly called Diffie-Hellman Group (D-H)."
|
|
3704
|
-
),
|
|
3705
|
-
min_length=1,
|
|
3706
|
-
title="Key Exchange Method (KE)",
|
|
3707
|
-
),
|
|
3708
|
-
] = None
|
|
3709
|
-
esn: Annotated[
|
|
3710
|
-
Optional[bool],
|
|
3711
|
-
Field(
|
|
3712
|
-
description="Specifies if an Extended Sequence Number (ESN) is used.",
|
|
3713
|
-
title="Extended Sequence Numbers (ESN)",
|
|
3714
|
-
),
|
|
3715
|
-
] = None
|
|
3716
|
-
auth: Annotated[
|
|
3717
|
-
Optional[List[str]],
|
|
3718
|
-
Field(description="IKEv2 Authentication method", min_length=1, title="IKEv2 Authentication method"),
|
|
3719
|
-
] = None
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
class ProtocolProperties(CycloneDXBaseModel):
|
|
3723
|
-
"""
|
|
3724
|
-
Properties specific to cryptographic assets of type: `protocol`.
|
|
3725
|
-
"""
|
|
3726
|
-
|
|
3727
|
-
class Config:
|
|
3728
|
-
extra = Extra.forbid
|
|
3729
|
-
|
|
3730
|
-
type: Annotated[Optional[Type11], Field(description="The concrete protocol type.", title="Type")] = None
|
|
3731
|
-
version: Annotated[
|
|
3732
|
-
Optional[str],
|
|
3733
|
-
Field(description="The version of the protocol.", examples=["1.0", "1.2", "1.99"], title="Protocol Version"),
|
|
3734
|
-
] = None
|
|
3735
|
-
cipherSuites: Annotated[
|
|
3736
|
-
Optional[List[CipherSuite]],
|
|
3737
|
-
Field(description="A list of cipher suites related to the protocol.", title="Cipher Suites"),
|
|
3738
|
-
] = None
|
|
3739
|
-
ikev2TransformTypes: Annotated[
|
|
3740
|
-
Optional[Ikev2TransformTypes],
|
|
3741
|
-
Field(
|
|
3742
|
-
description=(
|
|
3743
|
-
"The IKEv2 transform types supported (types 1-4), defined in [RFC 7296 section"
|
|
3744
|
-
" 3.3.2](https://www.ietf.org/rfc/rfc7296.html#section-3.3.2), and additional properties."
|
|
3745
|
-
),
|
|
3746
|
-
title="IKEv2 Transform Types",
|
|
3747
|
-
),
|
|
3748
|
-
] = None
|
|
3749
|
-
cryptoRefArray: Annotated[
|
|
3750
|
-
Optional[List[str]],
|
|
3751
|
-
Field(
|
|
3752
|
-
description="A list of protocol-related cryptographic assets",
|
|
3753
|
-
min_length=1,
|
|
3754
|
-
title="Cryptographic References",
|
|
3755
|
-
),
|
|
3756
|
-
] = None
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
class CryptoProperties(CycloneDXBaseModel):
|
|
3760
|
-
"""
|
|
3761
|
-
Cryptographic assets have properties that uniquely define them and that make them actionable for further reasoning. As an example, it makes a difference if one knows the algorithm family (e.g. AES) or the specific variant or instantiation (e.g. AES-128-GCM). This is because the security level and the algorithm primitive (authenticated encryption) are only defined by the definition of the algorithm variant. The presence of a weak cryptographic algorithm like SHA1 vs. HMAC-SHA1 also makes a difference.
|
|
3762
|
-
"""
|
|
3763
|
-
|
|
3764
|
-
class Config:
|
|
3765
|
-
extra = Extra.forbid
|
|
3766
|
-
|
|
3767
|
-
assetType: Annotated[
|
|
3768
|
-
AssetType,
|
|
3769
|
-
Field(
|
|
3770
|
-
description=(
|
|
3771
|
-
"Cryptographic assets occur in several forms. Algorithms and protocols are most commonly implemented in"
|
|
3772
|
-
" specialized cryptographic libraries. They may, however, also be 'hardcoded' in software components."
|
|
3773
|
-
" Certificates and related cryptographic material like keys, tokens, secrets or passwords are other"
|
|
3774
|
-
" cryptographic assets to be modelled."
|
|
3775
|
-
),
|
|
3776
|
-
title="Asset Type",
|
|
3777
|
-
),
|
|
3778
|
-
]
|
|
3779
|
-
algorithmProperties: Annotated[
|
|
3780
|
-
Optional[AlgorithmProperties],
|
|
3781
|
-
Field(description="Additional properties specific to a cryptographic algorithm.", title="Algorithm Properties"),
|
|
3782
|
-
] = None
|
|
3783
|
-
certificateProperties: Annotated[
|
|
3784
|
-
Optional[CertificateProperties],
|
|
3785
|
-
Field(
|
|
3786
|
-
description="Properties for cryptographic assets of asset type 'certificate'",
|
|
3787
|
-
title="Certificate Properties",
|
|
3788
|
-
),
|
|
3789
|
-
] = None
|
|
3790
|
-
relatedCryptoMaterialProperties: Annotated[
|
|
3791
|
-
Optional[RelatedCryptoMaterialProperties],
|
|
3792
|
-
Field(
|
|
3793
|
-
description="Properties for cryptographic assets of asset type: `related-crypto-material`",
|
|
3794
|
-
title="Related Cryptographic Material Properties",
|
|
3795
|
-
),
|
|
3796
|
-
] = None
|
|
3797
|
-
protocolProperties: Annotated[
|
|
3798
|
-
Optional[ProtocolProperties],
|
|
3799
|
-
Field(
|
|
3800
|
-
description="Properties specific to cryptographic assets of type: `protocol`.", title="Protocol Properties"
|
|
3801
|
-
),
|
|
3802
|
-
] = None
|
|
3803
|
-
oid: Annotated[
|
|
3804
|
-
Optional[str], Field(description="The object identifier (OID) of the cryptographic asset.", title="OID")
|
|
3805
|
-
] = None
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
class Assessor(CycloneDXBaseModel):
|
|
3809
|
-
"""
|
|
3810
|
-
The assessor who evaluates claims and determines conformance to requirements and confidence in that assessment.
|
|
3811
|
-
"""
|
|
3812
|
-
|
|
3813
|
-
class Config:
|
|
3814
|
-
extra = Extra.forbid
|
|
3815
|
-
|
|
3816
|
-
bom_ref: Annotated[
|
|
3817
|
-
Optional[str],
|
|
3818
|
-
Field(
|
|
3819
|
-
alias="bom-ref",
|
|
3820
|
-
description=(
|
|
3821
|
-
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
3822
|
-
" must be unique within the BOM."
|
|
3823
|
-
),
|
|
3062
|
+
description="The bom-ref to the algorithm used to generate the related cryptographic material.",
|
|
3824
3063
|
min_length=1,
|
|
3825
|
-
title="
|
|
3064
|
+
title="Algorithm Reference",
|
|
3826
3065
|
),
|
|
3827
3066
|
] = None
|
|
3828
|
-
|
|
3829
|
-
Optional[
|
|
3067
|
+
creationDate: Annotated[
|
|
3068
|
+
Optional[datetime],
|
|
3830
3069
|
Field(
|
|
3831
|
-
description=(
|
|
3832
|
-
|
|
3833
|
-
" indicates a self assessor."
|
|
3834
|
-
),
|
|
3835
|
-
title="Third Party",
|
|
3070
|
+
description="The date and time (timestamp) when the related cryptographic material was created.",
|
|
3071
|
+
title="Creation Date",
|
|
3836
3072
|
),
|
|
3837
3073
|
] = None
|
|
3838
|
-
|
|
3839
|
-
Optional[
|
|
3840
|
-
] = None
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
class Tool(CycloneDXBaseModel):
|
|
3844
|
-
"""
|
|
3845
|
-
[Deprecated] This will be removed in a future version. Use component or service instead. Information about the automated or manual tool used
|
|
3846
|
-
"""
|
|
3847
|
-
|
|
3848
|
-
class Config:
|
|
3849
|
-
extra = Extra.forbid
|
|
3850
|
-
|
|
3851
|
-
vendor: Annotated[
|
|
3852
|
-
Optional[str], Field(description="The name of the vendor who created the tool", title="Tool Vendor")
|
|
3853
|
-
] = None
|
|
3854
|
-
name: Annotated[Optional[str], Field(description="The name of the tool", title="Tool Name")] = None
|
|
3855
|
-
version: Annotated[
|
|
3856
|
-
Optional[str],
|
|
3074
|
+
activationDate: Annotated[
|
|
3075
|
+
Optional[datetime],
|
|
3857
3076
|
Field(
|
|
3858
|
-
description="The
|
|
3859
|
-
|
|
3860
|
-
max_length=1024,
|
|
3861
|
-
title="Tool Version",
|
|
3077
|
+
description="The date and time (timestamp) when the related cryptographic material was activated.",
|
|
3078
|
+
title="Activation Date",
|
|
3862
3079
|
),
|
|
3863
3080
|
] = None
|
|
3864
|
-
|
|
3865
|
-
Optional[
|
|
3866
|
-
] = None
|
|
3867
|
-
externalReferences: Annotated[
|
|
3868
|
-
Optional[List[ExternalReference]],
|
|
3081
|
+
updateDate: Annotated[
|
|
3082
|
+
Optional[datetime],
|
|
3869
3083
|
Field(
|
|
3870
|
-
description=(
|
|
3871
|
-
|
|
3872
|
-
" but are not included with the BOM. They may also establish specific relationships within or external"
|
|
3873
|
-
" to the BOM."
|
|
3874
|
-
),
|
|
3875
|
-
title="External References",
|
|
3084
|
+
description="The date and time (timestamp) when the related cryptographic material was updated.",
|
|
3085
|
+
title="Update Date",
|
|
3876
3086
|
),
|
|
3877
3087
|
] = None
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
class QuantitativeAnalysis(CycloneDXBaseModel):
|
|
3881
|
-
"""
|
|
3882
|
-
A quantitative analysis of the model
|
|
3883
|
-
"""
|
|
3884
|
-
|
|
3885
|
-
class Config:
|
|
3886
|
-
extra = Extra.forbid
|
|
3887
|
-
|
|
3888
|
-
performanceMetrics: Annotated[
|
|
3889
|
-
Optional[List[PerformanceMetric]],
|
|
3088
|
+
expirationDate: Annotated[
|
|
3089
|
+
Optional[datetime],
|
|
3890
3090
|
Field(
|
|
3891
|
-
description=(
|
|
3892
|
-
|
|
3893
|
-
" top-3 error rates, MSC, etc."
|
|
3894
|
-
),
|
|
3895
|
-
title="Performance Metrics",
|
|
3091
|
+
description="The date and time (timestamp) when the related cryptographic material expires.",
|
|
3092
|
+
title="Expiration Date",
|
|
3896
3093
|
),
|
|
3897
3094
|
] = None
|
|
3898
|
-
|
|
3095
|
+
value: Annotated[
|
|
3096
|
+
Optional[str], Field(description="The associated value of the cryptographic material.", title="Value")
|
|
3097
|
+
] = None
|
|
3098
|
+
size: Annotated[
|
|
3099
|
+
Optional[int], Field(description="The size of the cryptographic asset (in bits).", title="Size")
|
|
3100
|
+
] = None
|
|
3101
|
+
format: Annotated[
|
|
3102
|
+
Optional[str],
|
|
3103
|
+
Field(description="The format of the related cryptographic material (e.g. P8, PEM, DER).", title="Format"),
|
|
3104
|
+
] = None
|
|
3105
|
+
securedBy: Annotated[
|
|
3106
|
+
Optional[SecuredBy],
|
|
3107
|
+
Field(description="The mechanism by which the cryptographic asset is secured by.", title="Secured By"),
|
|
3108
|
+
] = None
|
|
3899
3109
|
|
|
3900
3110
|
|
|
3901
|
-
class
|
|
3111
|
+
class Ikev2TransformTypes(CycloneDXBaseModel):
|
|
3902
3112
|
"""
|
|
3903
|
-
|
|
3113
|
+
The IKEv2 transform types supported (types 1-4), defined in RFC7296 section 3.3.2, and additional properties.
|
|
3904
3114
|
"""
|
|
3905
3115
|
|
|
3906
3116
|
class Config:
|
|
3907
3117
|
extra = Extra.forbid
|
|
3908
3118
|
|
|
3909
|
-
|
|
3910
|
-
Optional[List[
|
|
3119
|
+
encr: Annotated[
|
|
3120
|
+
Optional[List[RefType]],
|
|
3121
|
+
Field(description="Transform Type 1: encryption algorithms", title="Encryption Algorithm (ENCR)"),
|
|
3122
|
+
] = None
|
|
3123
|
+
prf: Annotated[
|
|
3124
|
+
Optional[List[RefType]],
|
|
3125
|
+
Field(description="Transform Type 2: pseudorandom functions", title="Pseudorandom Function (PRF)"),
|
|
3126
|
+
] = None
|
|
3127
|
+
integ: Annotated[
|
|
3128
|
+
Optional[List[RefType]],
|
|
3129
|
+
Field(description="Transform Type 3: integrity algorithms", title="Integrity Algorithm (INTEG)"),
|
|
3130
|
+
] = None
|
|
3131
|
+
ke: Annotated[
|
|
3132
|
+
Optional[List[RefType]],
|
|
3911
3133
|
Field(
|
|
3912
|
-
description=
|
|
3913
|
-
|
|
3134
|
+
description=(
|
|
3135
|
+
"Transform Type 4: Key Exchange Method (KE) per RFC9370, formerly called Diffie-Hellman Group (D-H)"
|
|
3136
|
+
),
|
|
3137
|
+
title="Key Exchange Method (KE)",
|
|
3914
3138
|
),
|
|
3915
3139
|
] = None
|
|
3916
|
-
|
|
3917
|
-
Optional[
|
|
3140
|
+
esn: Annotated[
|
|
3141
|
+
Optional[bool],
|
|
3918
3142
|
Field(
|
|
3919
|
-
description="
|
|
3920
|
-
title="
|
|
3143
|
+
description="Specifies if an Extended Sequence Number (ESN) is used.",
|
|
3144
|
+
title="Extended Sequence Numbers (ESN)",
|
|
3921
3145
|
),
|
|
3922
3146
|
] = None
|
|
3923
|
-
|
|
3924
|
-
Optional[List[
|
|
3925
|
-
Field(description="Data owners are concerned with risk and appropriate access to data.", title="Data Owners"),
|
|
3147
|
+
auth: Annotated[
|
|
3148
|
+
Optional[List[RefType]], Field(description="IKEv2 Authentication method", title="IKEv2 Authentication method")
|
|
3926
3149
|
] = None
|
|
3927
3150
|
|
|
3928
3151
|
|
|
3929
|
-
class
|
|
3152
|
+
class ProtocolProperties(CycloneDXBaseModel):
|
|
3930
3153
|
"""
|
|
3931
|
-
|
|
3154
|
+
Properties specific to cryptographic assets of type: `protocol`.
|
|
3932
3155
|
"""
|
|
3933
3156
|
|
|
3934
3157
|
class Config:
|
|
3935
3158
|
extra = Extra.forbid
|
|
3936
3159
|
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
"The type of activity that is part of a machine learning model development or operational lifecycle."
|
|
3942
|
-
),
|
|
3943
|
-
title="Activity",
|
|
3944
|
-
),
|
|
3945
|
-
]
|
|
3946
|
-
energyProviders: Annotated[
|
|
3947
|
-
List[EnergyProvider],
|
|
3948
|
-
Field(
|
|
3949
|
-
description=(
|
|
3950
|
-
"The provider(s) of the energy consumed by the associated model development lifecycle activity."
|
|
3951
|
-
),
|
|
3952
|
-
title="Energy Providers",
|
|
3953
|
-
),
|
|
3954
|
-
]
|
|
3955
|
-
activityEnergyCost: Annotated[
|
|
3956
|
-
EnergyMeasure,
|
|
3957
|
-
Field(
|
|
3958
|
-
description="The total energy cost associated with the model lifecycle activity.",
|
|
3959
|
-
title="Activity Energy Cost",
|
|
3960
|
-
),
|
|
3961
|
-
]
|
|
3962
|
-
co2CostEquivalent: Annotated[
|
|
3963
|
-
Optional[Co2Measure],
|
|
3964
|
-
Field(description="The CO2 cost (debit) equivalent to the total energy cost.", title="CO2 Equivalent Cost"),
|
|
3160
|
+
type: Annotated[Optional[Type9], Field(description="The concrete protocol type.", title="Type")] = None
|
|
3161
|
+
version: Annotated[
|
|
3162
|
+
Optional[str],
|
|
3163
|
+
Field(description="The version of the protocol.", examples=["1.0", "1.2", "1.99"], title="Protocol Version"),
|
|
3965
3164
|
] = None
|
|
3966
|
-
|
|
3967
|
-
Optional[
|
|
3968
|
-
Field(description="
|
|
3165
|
+
cipherSuites: Annotated[
|
|
3166
|
+
Optional[List[CipherSuite]],
|
|
3167
|
+
Field(description="A list of cipher suites related to the protocol.", title="Cipher Suites"),
|
|
3969
3168
|
] = None
|
|
3970
|
-
|
|
3971
|
-
Optional[
|
|
3169
|
+
ikev2TransformTypes: Annotated[
|
|
3170
|
+
Optional[Ikev2TransformTypes],
|
|
3972
3171
|
Field(
|
|
3973
3172
|
description=(
|
|
3974
|
-
"
|
|
3975
|
-
"
|
|
3976
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
3977
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
3978
|
-
" registered in the [CycloneDX Property"
|
|
3979
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
3173
|
+
"The IKEv2 transform types supported (types 1-4), defined in RFC7296 section 3.3.2, and additional"
|
|
3174
|
+
" properties."
|
|
3980
3175
|
),
|
|
3981
|
-
title="
|
|
3176
|
+
title="IKEv2 Transform Types",
|
|
3982
3177
|
),
|
|
3983
3178
|
] = None
|
|
3179
|
+
cryptoRefArray: Annotated[
|
|
3180
|
+
Optional[List[RefType]],
|
|
3181
|
+
Field(description="A list of protocol-related cryptographic assets", title="Cryptographic References"),
|
|
3182
|
+
] = None
|
|
3984
3183
|
|
|
3985
3184
|
|
|
3986
|
-
class
|
|
3185
|
+
class CryptoProperties(CycloneDXBaseModel):
|
|
3987
3186
|
"""
|
|
3988
|
-
|
|
3187
|
+
Cryptographic assets have properties that uniquely define them and that make them actionable for further reasoning. As an example, it makes a difference if one knows the algorithm family (e.g. AES) or the specific variant or instantiation (e.g. AES-128-GCM). This is because the security level and the algorithm primitive (authenticated encryption) are only defined by the definition of the algorithm variant. The presence of a weak cryptographic algorithm like SHA1 vs. HMAC-SHA1 also makes a difference.
|
|
3989
3188
|
"""
|
|
3990
3189
|
|
|
3991
3190
|
class Config:
|
|
3992
3191
|
extra = Extra.forbid
|
|
3993
3192
|
|
|
3994
|
-
|
|
3995
|
-
|
|
3193
|
+
assetType: Annotated[
|
|
3194
|
+
AssetType,
|
|
3996
3195
|
Field(
|
|
3997
|
-
alias="bom-ref",
|
|
3998
3196
|
description=(
|
|
3999
|
-
"
|
|
4000
|
-
"
|
|
4001
|
-
"
|
|
3197
|
+
"Cryptographic assets occur in several forms. Algorithms and protocols are most commonly implemented in"
|
|
3198
|
+
" specialized cryptographic libraries. They may, however, also be 'hardcoded' in software components."
|
|
3199
|
+
" Certificates and related cryptographic material like keys, tokens, secrets or passwords are other"
|
|
3200
|
+
" cryptographic assets to be modelled."
|
|
4002
3201
|
),
|
|
4003
|
-
|
|
4004
|
-
title="BOM Reference",
|
|
4005
|
-
),
|
|
4006
|
-
]
|
|
4007
|
-
uid: Annotated[
|
|
4008
|
-
str,
|
|
4009
|
-
Field(
|
|
4010
|
-
description="The unique identifier for the resource instance within its deployment context.",
|
|
4011
|
-
title="Unique Identifier (UID)",
|
|
3202
|
+
title="Asset Type",
|
|
4012
3203
|
),
|
|
4013
3204
|
]
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
Field(
|
|
4018
|
-
description=(
|
|
4019
|
-
"The names for the workspace as referenced by other workflow tasks. Effectively, a name mapping so"
|
|
4020
|
-
" other tasks can use their own local name in their steps."
|
|
4021
|
-
),
|
|
4022
|
-
title="Aliases",
|
|
4023
|
-
),
|
|
4024
|
-
] = None
|
|
4025
|
-
description: Annotated[
|
|
4026
|
-
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
4027
|
-
] = None
|
|
4028
|
-
resourceReferences: Annotated[
|
|
4029
|
-
Optional[List[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]]],
|
|
4030
|
-
Field(
|
|
4031
|
-
description="References to component or service resources that are used to realize the resource instance.",
|
|
4032
|
-
title="Resource references",
|
|
4033
|
-
),
|
|
4034
|
-
] = None
|
|
4035
|
-
accessMode: Annotated[
|
|
4036
|
-
Optional[AccessMode],
|
|
4037
|
-
Field(
|
|
4038
|
-
description=(
|
|
4039
|
-
"Describes the read-write access control for the workspace relative to the owning resource instance."
|
|
4040
|
-
),
|
|
4041
|
-
title="Access mode",
|
|
4042
|
-
),
|
|
4043
|
-
] = None
|
|
4044
|
-
mountPath: Annotated[
|
|
4045
|
-
Optional[str],
|
|
4046
|
-
Field(
|
|
4047
|
-
description=(
|
|
4048
|
-
"A path to a location on disk where the workspace will be available to the associated task's steps."
|
|
4049
|
-
),
|
|
4050
|
-
title="Mount path",
|
|
4051
|
-
),
|
|
4052
|
-
] = None
|
|
4053
|
-
managedDataType: Annotated[
|
|
4054
|
-
Optional[str],
|
|
4055
|
-
Field(
|
|
4056
|
-
description="The name of a domain-specific data type the workspace represents.",
|
|
4057
|
-
examples=["ConfigMap", "Secret"],
|
|
4058
|
-
title="Managed data type",
|
|
4059
|
-
),
|
|
3205
|
+
algorithmProperties: Annotated[
|
|
3206
|
+
Optional[AlgorithmProperties],
|
|
3207
|
+
Field(description="Additional properties specific to a cryptographic algorithm.", title="Algorithm Properties"),
|
|
4060
3208
|
] = None
|
|
4061
|
-
|
|
4062
|
-
Optional[
|
|
3209
|
+
certificateProperties: Annotated[
|
|
3210
|
+
Optional[CertificateProperties],
|
|
4063
3211
|
Field(
|
|
4064
|
-
description="
|
|
4065
|
-
|
|
4066
|
-
title="Volume request",
|
|
3212
|
+
description="Properties for cryptographic assets of asset type 'certificate'",
|
|
3213
|
+
title="Certificate Properties",
|
|
4067
3214
|
),
|
|
4068
3215
|
] = None
|
|
4069
|
-
|
|
4070
|
-
Optional[
|
|
3216
|
+
relatedCryptoMaterialProperties: Annotated[
|
|
3217
|
+
Optional[RelatedCryptoMaterialProperties],
|
|
4071
3218
|
Field(
|
|
4072
|
-
description="
|
|
4073
|
-
|
|
4074
|
-
title="Volume",
|
|
3219
|
+
description="Properties for cryptographic assets of asset type: `related-crypto-material`",
|
|
3220
|
+
title="Related Cryptographic Material Properties",
|
|
4075
3221
|
),
|
|
4076
3222
|
] = None
|
|
4077
|
-
|
|
4078
|
-
Optional[
|
|
3223
|
+
protocolProperties: Annotated[
|
|
3224
|
+
Optional[ProtocolProperties],
|
|
4079
3225
|
Field(
|
|
4080
|
-
description=
|
|
4081
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4082
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4083
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4084
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4085
|
-
" registered in the [CycloneDX Property"
|
|
4086
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4087
|
-
),
|
|
4088
|
-
title="Properties",
|
|
3226
|
+
description="Properties specific to cryptographic assets of type: `protocol`.", title="Protocol Properties"
|
|
4089
3227
|
),
|
|
4090
3228
|
] = None
|
|
3229
|
+
oid: Annotated[
|
|
3230
|
+
Optional[str], Field(description="The object identifier (OID) of the cryptographic asset.", title="OID")
|
|
3231
|
+
] = None
|
|
4091
3232
|
|
|
4092
3233
|
|
|
4093
|
-
class
|
|
3234
|
+
class Assessor(CycloneDXBaseModel):
|
|
4094
3235
|
"""
|
|
4095
|
-
|
|
3236
|
+
The assessor who evaluates claims and determines conformance to requirements and confidence in that assessment.
|
|
4096
3237
|
"""
|
|
4097
3238
|
|
|
4098
3239
|
class Config:
|
|
4099
3240
|
extra = Extra.forbid
|
|
4100
3241
|
|
|
4101
|
-
|
|
4102
|
-
Optional[str],
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
Field(description="References the component or service that was the source of the event", title="Source"),
|
|
4113
|
-
] = None
|
|
4114
|
-
target: Annotated[
|
|
4115
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4116
|
-
Field(description="References the component or service that was the target of the event", title="Target"),
|
|
3242
|
+
bom_ref: Annotated[
|
|
3243
|
+
Optional[str],
|
|
3244
|
+
Field(
|
|
3245
|
+
alias="bom-ref",
|
|
3246
|
+
description=(
|
|
3247
|
+
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
3248
|
+
" MUST be unique within the BOM."
|
|
3249
|
+
),
|
|
3250
|
+
min_length=1,
|
|
3251
|
+
title="BOM Reference",
|
|
3252
|
+
),
|
|
4117
3253
|
] = None
|
|
4118
|
-
|
|
4119
|
-
Optional[
|
|
3254
|
+
thirdParty: Annotated[
|
|
3255
|
+
Optional[bool],
|
|
4120
3256
|
Field(
|
|
4121
3257
|
description=(
|
|
4122
|
-
"
|
|
4123
|
-
"
|
|
4124
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4125
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4126
|
-
" registered in the [CycloneDX Property"
|
|
4127
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
3258
|
+
"The boolean indicating if the assessor is outside the organization generating claims. A value of false"
|
|
3259
|
+
" indicates a self assessor."
|
|
4128
3260
|
),
|
|
4129
|
-
title="
|
|
3261
|
+
title="Third Party",
|
|
4130
3262
|
),
|
|
4131
3263
|
] = None
|
|
3264
|
+
organization: Annotated[
|
|
3265
|
+
Optional[OrganizationalEntity], Field(description="The entity issuing the assessment.", title="Organization")
|
|
3266
|
+
] = None
|
|
4132
3267
|
|
|
4133
3268
|
|
|
4134
|
-
class
|
|
3269
|
+
class Tool(CycloneDXBaseModel):
|
|
4135
3270
|
"""
|
|
4136
|
-
|
|
3271
|
+
[Deprecated] This will be removed in a future version. Use component or service instead. Information about the automated or manual tool used
|
|
4137
3272
|
"""
|
|
4138
3273
|
|
|
4139
3274
|
class Config:
|
|
4140
3275
|
extra = Extra.forbid
|
|
4141
3276
|
|
|
4142
|
-
|
|
4143
|
-
Optional[
|
|
3277
|
+
vendor: Annotated[
|
|
3278
|
+
Optional[str], Field(description="The name of the vendor who created the tool", title="Tool Vendor")
|
|
3279
|
+
] = None
|
|
3280
|
+
name: Annotated[Optional[str], Field(description="The name of the tool", title="Tool Name")] = None
|
|
3281
|
+
version: Annotated[
|
|
3282
|
+
Optional[str],
|
|
4144
3283
|
Field(
|
|
4145
|
-
description=
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
examples=["source code repository", "database"],
|
|
4150
|
-
title="Source",
|
|
3284
|
+
description="The version of the tool",
|
|
3285
|
+
examples=["9.0.14", "v1.33.7", "7.0.0-M1", "2.0pre1", "1.0.0-beta1", "0.8.15"],
|
|
3286
|
+
max_length=1024,
|
|
3287
|
+
title="Tool Version",
|
|
4151
3288
|
),
|
|
4152
3289
|
] = None
|
|
4153
|
-
|
|
4154
|
-
Optional[
|
|
3290
|
+
hashes: Annotated[
|
|
3291
|
+
Optional[List[Hash]], Field(description="The hashes of the tool (if applicable).", title="Hashes")
|
|
3292
|
+
] = None
|
|
3293
|
+
externalReferences: Annotated[
|
|
3294
|
+
Optional[List[ExternalReference]],
|
|
4155
3295
|
Field(
|
|
4156
3296
|
description=(
|
|
4157
|
-
"
|
|
4158
|
-
"
|
|
3297
|
+
"External references provide a way to document systems, sites, and information that may be relevant,"
|
|
3298
|
+
" but are not included with the BOM. They may also establish specific relationships within or external"
|
|
3299
|
+
" to the BOM."
|
|
4159
3300
|
),
|
|
4160
|
-
|
|
4161
|
-
title="Target",
|
|
3301
|
+
title="External References",
|
|
4162
3302
|
),
|
|
4163
3303
|
] = None
|
|
4164
|
-
|
|
4165
|
-
|
|
3304
|
+
|
|
3305
|
+
|
|
3306
|
+
class QuantitativeAnalysis(CycloneDXBaseModel):
|
|
3307
|
+
"""
|
|
3308
|
+
A quantitative analysis of the model
|
|
3309
|
+
"""
|
|
3310
|
+
|
|
3311
|
+
class Config:
|
|
3312
|
+
extra = Extra.forbid
|
|
3313
|
+
|
|
3314
|
+
performanceMetrics: Annotated[
|
|
3315
|
+
Optional[List[PerformanceMetric]],
|
|
4166
3316
|
Field(
|
|
4167
3317
|
description=(
|
|
4168
|
-
"
|
|
3318
|
+
"The model performance metrics being reported. Examples may include accuracy, F1 score, precision,"
|
|
3319
|
+
" top-3 error rates, MSC, etc."
|
|
4169
3320
|
),
|
|
4170
|
-
|
|
4171
|
-
"a reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
4172
|
-
"a reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
4173
|
-
],
|
|
4174
|
-
title="Resource",
|
|
4175
|
-
),
|
|
4176
|
-
]
|
|
4177
|
-
parameters: Annotated[
|
|
4178
|
-
Optional[List[Parameter]],
|
|
4179
|
-
Field(
|
|
4180
|
-
description="Inputs that have the form of parameters with names and values.",
|
|
4181
|
-
title="Parameters",
|
|
3321
|
+
title="Performance Metrics",
|
|
4182
3322
|
),
|
|
4183
3323
|
] = None
|
|
4184
|
-
|
|
4185
|
-
|
|
3324
|
+
graphics: Optional[GraphicsCollection] = None
|
|
3325
|
+
|
|
3326
|
+
|
|
3327
|
+
class DataGovernance(CycloneDXBaseModel):
|
|
3328
|
+
"""
|
|
3329
|
+
Data governance captures information regarding data ownership, stewardship, and custodianship, providing insights into the individuals or entities responsible for managing, overseeing, and safeguarding the data throughout its lifecycle.
|
|
3330
|
+
"""
|
|
3331
|
+
|
|
3332
|
+
class Config:
|
|
3333
|
+
extra = Extra.forbid
|
|
3334
|
+
|
|
3335
|
+
custodians: Annotated[
|
|
3336
|
+
Optional[List[DataGovernanceResponsibleParty]],
|
|
4186
3337
|
Field(
|
|
4187
|
-
description="
|
|
4188
|
-
title="
|
|
3338
|
+
description="Data custodians are responsible for the safe custody, transport, and storage of data.",
|
|
3339
|
+
title="Data Custodians",
|
|
4189
3340
|
),
|
|
4190
3341
|
] = None
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
Optional[List[Property]],
|
|
3342
|
+
stewards: Annotated[
|
|
3343
|
+
Optional[List[DataGovernanceResponsibleParty]],
|
|
4194
3344
|
Field(
|
|
4195
|
-
description=
|
|
4196
|
-
|
|
4197
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4198
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4199
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4200
|
-
" registered in the [CycloneDX Property"
|
|
4201
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4202
|
-
),
|
|
4203
|
-
title="Properties",
|
|
3345
|
+
description="Data stewards are responsible for data content, context, and associated business rules.",
|
|
3346
|
+
title="Data Stewards",
|
|
4204
3347
|
),
|
|
4205
3348
|
] = None
|
|
3349
|
+
owners: Annotated[
|
|
3350
|
+
Optional[List[DataGovernanceResponsibleParty]],
|
|
3351
|
+
Field(description="Data owners are concerned with risk and appropriate access to data.", title="Data Owners"),
|
|
3352
|
+
] = None
|
|
4206
3353
|
|
|
4207
3354
|
|
|
4208
|
-
class
|
|
3355
|
+
class EnergyConsumption(CycloneDXBaseModel):
|
|
4209
3356
|
"""
|
|
4210
|
-
|
|
3357
|
+
Describes energy consumption information incurred for the specified lifecycle activity.
|
|
4211
3358
|
"""
|
|
4212
3359
|
|
|
4213
3360
|
class Config:
|
|
4214
3361
|
extra = Extra.forbid
|
|
4215
3362
|
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
Field(
|
|
4219
|
-
description=(
|
|
4220
|
-
"A reference to the component or service that provided the input to the task (e.g., reference to a"
|
|
4221
|
-
" service with data flow value of `inbound`)"
|
|
4222
|
-
),
|
|
4223
|
-
examples=["source code repository", "database"],
|
|
4224
|
-
title="Source",
|
|
4225
|
-
),
|
|
4226
|
-
] = None
|
|
4227
|
-
target: Annotated[
|
|
4228
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
3363
|
+
activity: Annotated[
|
|
3364
|
+
Activity,
|
|
4229
3365
|
Field(
|
|
4230
3366
|
description=(
|
|
4231
|
-
"
|
|
4232
|
-
" (e.g., a local, named storage workspace)"
|
|
3367
|
+
"The type of activity that is part of a machine learning model development or operational lifecycle."
|
|
4233
3368
|
),
|
|
4234
|
-
|
|
4235
|
-
title="Target",
|
|
3369
|
+
title="Activity",
|
|
4236
3370
|
),
|
|
4237
|
-
]
|
|
4238
|
-
|
|
4239
|
-
|
|
3371
|
+
]
|
|
3372
|
+
energyProviders: Annotated[
|
|
3373
|
+
List[EnergyProvider],
|
|
4240
3374
|
Field(
|
|
4241
3375
|
description=(
|
|
4242
|
-
"
|
|
3376
|
+
"The provider(s) of the energy consumed by the associated model development lifecycle activity."
|
|
4243
3377
|
),
|
|
4244
|
-
|
|
4245
|
-
"a reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
4246
|
-
"a reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
4247
|
-
],
|
|
4248
|
-
title="Resource",
|
|
4249
|
-
),
|
|
4250
|
-
] = None
|
|
4251
|
-
parameters: Annotated[
|
|
4252
|
-
List[Parameter],
|
|
4253
|
-
Field(
|
|
4254
|
-
description="Inputs that have the form of parameters with names and values.",
|
|
4255
|
-
title="Parameters",
|
|
3378
|
+
title="Energy Providers",
|
|
4256
3379
|
),
|
|
4257
3380
|
]
|
|
4258
|
-
|
|
4259
|
-
|
|
3381
|
+
activityEnergyCost: Annotated[
|
|
3382
|
+
EnergyMeasure,
|
|
4260
3383
|
Field(
|
|
4261
|
-
description="
|
|
4262
|
-
title="
|
|
3384
|
+
description="The total energy cost associated with the model lifecycle activity.",
|
|
3385
|
+
title="Activity Energy Cost",
|
|
4263
3386
|
),
|
|
3387
|
+
]
|
|
3388
|
+
co2CostEquivalent: Annotated[
|
|
3389
|
+
Optional[Co2Measure],
|
|
3390
|
+
Field(description="The CO2 cost (debit) equivalent to the total energy cost.", title="CO2 Equivalent Cost"),
|
|
4264
3391
|
] = None
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
Field(
|
|
4269
|
-
description=(
|
|
4270
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4271
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4272
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4273
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4274
|
-
" registered in the [CycloneDX Property"
|
|
4275
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4276
|
-
),
|
|
4277
|
-
title="Properties",
|
|
4278
|
-
),
|
|
3392
|
+
co2CostOffset: Annotated[
|
|
3393
|
+
Optional[Co2Measure],
|
|
3394
|
+
Field(description="The CO2 offset (credit) for the CO2 equivalent cost.", title="CO2 Cost Offset"),
|
|
4279
3395
|
] = None
|
|
3396
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4280
3397
|
|
|
4281
3398
|
|
|
4282
|
-
class
|
|
3399
|
+
class Workspace(CycloneDXBaseModel):
|
|
4283
3400
|
"""
|
|
4284
|
-
|
|
3401
|
+
A named filesystem or data resource shareable by workflow tasks.
|
|
4285
3402
|
"""
|
|
4286
3403
|
|
|
4287
3404
|
class Config:
|
|
4288
3405
|
extra = Extra.forbid
|
|
4289
3406
|
|
|
4290
|
-
|
|
4291
|
-
|
|
3407
|
+
bom_ref: Annotated[
|
|
3408
|
+
str,
|
|
3409
|
+
Field(
|
|
3410
|
+
alias="bom-ref",
|
|
3411
|
+
description=(
|
|
3412
|
+
"An optional identifier which can be used to reference the workspace elsewhere in the BOM. Every"
|
|
3413
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
3414
|
+
" avoid conflicts with BOM-Links."
|
|
3415
|
+
),
|
|
3416
|
+
min_length=1,
|
|
3417
|
+
title="BOM Reference",
|
|
3418
|
+
),
|
|
3419
|
+
]
|
|
3420
|
+
uid: Annotated[
|
|
3421
|
+
str,
|
|
3422
|
+
Field(
|
|
3423
|
+
description="The unique identifier for the resource instance within its deployment context.",
|
|
3424
|
+
title="Unique Identifier (UID)",
|
|
3425
|
+
),
|
|
3426
|
+
]
|
|
3427
|
+
name: Annotated[Optional[str], Field(description="The name of the resource instance.", title="Name")] = None
|
|
3428
|
+
aliases: Annotated[
|
|
3429
|
+
Optional[List[str]],
|
|
4292
3430
|
Field(
|
|
4293
3431
|
description=(
|
|
4294
|
-
"
|
|
4295
|
-
"
|
|
3432
|
+
"The names for the workspace as referenced by other workflow tasks. Effectively, a name mapping so"
|
|
3433
|
+
" other tasks can use their own local name in their steps."
|
|
4296
3434
|
),
|
|
4297
|
-
|
|
4298
|
-
title="Source",
|
|
3435
|
+
title="Aliases",
|
|
4299
3436
|
),
|
|
4300
3437
|
] = None
|
|
4301
|
-
|
|
4302
|
-
Optional[
|
|
3438
|
+
description: Annotated[
|
|
3439
|
+
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
3440
|
+
] = None
|
|
3441
|
+
resourceReferences: Annotated[
|
|
3442
|
+
Optional[List[ResourceReferenceChoice]],
|
|
3443
|
+
Field(
|
|
3444
|
+
description="References to component or service resources that are used to realize the resource instance.",
|
|
3445
|
+
title="Resource references",
|
|
3446
|
+
),
|
|
3447
|
+
] = None
|
|
3448
|
+
accessMode: Annotated[
|
|
3449
|
+
Optional[AccessMode],
|
|
4303
3450
|
Field(
|
|
4304
3451
|
description=(
|
|
4305
|
-
"
|
|
4306
|
-
" (e.g., a local, named storage workspace)"
|
|
3452
|
+
"Describes the read-write access control for the workspace relative to the owning resource instance."
|
|
4307
3453
|
),
|
|
4308
|
-
|
|
4309
|
-
title="Target",
|
|
3454
|
+
title="Access mode",
|
|
4310
3455
|
),
|
|
4311
3456
|
] = None
|
|
4312
|
-
|
|
4313
|
-
Optional[
|
|
3457
|
+
mountPath: Annotated[
|
|
3458
|
+
Optional[str],
|
|
4314
3459
|
Field(
|
|
4315
3460
|
description=(
|
|
4316
|
-
"A
|
|
3461
|
+
"A path to a location on disk where the workspace will be available to the associated task's steps."
|
|
4317
3462
|
),
|
|
4318
|
-
|
|
4319
|
-
"a reference to a configuration file in a repository (i.e., a bom-ref)",
|
|
4320
|
-
"a reference to a scanning service used in a task (i.e., a bom-ref)",
|
|
4321
|
-
],
|
|
4322
|
-
title="Resource",
|
|
3463
|
+
title="Mount path",
|
|
4323
3464
|
),
|
|
4324
3465
|
] = None
|
|
4325
|
-
|
|
4326
|
-
Optional[
|
|
3466
|
+
managedDataType: Annotated[
|
|
3467
|
+
Optional[str],
|
|
4327
3468
|
Field(
|
|
4328
|
-
description="
|
|
4329
|
-
|
|
3469
|
+
description="The name of a domain-specific data type the workspace represents.",
|
|
3470
|
+
examples=["ConfigMap", "Secret"],
|
|
3471
|
+
title="Managed data type",
|
|
4330
3472
|
),
|
|
4331
3473
|
] = None
|
|
4332
|
-
|
|
4333
|
-
|
|
3474
|
+
volumeRequest: Annotated[
|
|
3475
|
+
Optional[str],
|
|
4334
3476
|
Field(
|
|
4335
|
-
description="
|
|
4336
|
-
|
|
3477
|
+
description="Identifies the reference to the request for a specific volume type and parameters.",
|
|
3478
|
+
examples=["a kubernetes Persistent Volume Claim (PVC) name"],
|
|
3479
|
+
title="Volume request",
|
|
4337
3480
|
),
|
|
4338
|
-
]
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
Optional[List[Property]],
|
|
3481
|
+
] = None
|
|
3482
|
+
volume: Annotated[
|
|
3483
|
+
Optional[Volume],
|
|
4342
3484
|
Field(
|
|
4343
|
-
description=
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4347
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4348
|
-
" registered in the [CycloneDX Property"
|
|
4349
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4350
|
-
),
|
|
4351
|
-
title="Properties",
|
|
3485
|
+
description="Information about the actual volume instance allocated to the workspace.",
|
|
3486
|
+
examples=["see https://kubernetes.io/docs/concepts/storage/persistent-volumes/"],
|
|
3487
|
+
title="Volume",
|
|
4352
3488
|
),
|
|
4353
3489
|
] = None
|
|
3490
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
class Event(CycloneDXBaseModel):
|
|
3494
|
+
"""
|
|
3495
|
+
Represents something that happened that may trigger a response.
|
|
3496
|
+
"""
|
|
3497
|
+
|
|
3498
|
+
class Config:
|
|
3499
|
+
extra = Extra.forbid
|
|
3500
|
+
|
|
3501
|
+
uid: Annotated[
|
|
3502
|
+
Optional[str], Field(description="The unique identifier of the event.", title="Unique Identifier (UID)")
|
|
3503
|
+
] = None
|
|
3504
|
+
description: Annotated[Optional[str], Field(description="A description of the event.", title="Description")] = None
|
|
3505
|
+
timeReceived: Annotated[
|
|
3506
|
+
Optional[datetime],
|
|
3507
|
+
Field(description="The date and time (timestamp) when the event was received.", title="Time Received"),
|
|
3508
|
+
] = None
|
|
3509
|
+
data: Annotated[Optional[Attachment], Field(description="Encoding of the raw event data.", title="Data")] = None
|
|
3510
|
+
source: Annotated[
|
|
3511
|
+
Optional[ResourceReferenceChoice],
|
|
3512
|
+
Field(description="References the component or service that was the source of the event", title="Source"),
|
|
3513
|
+
] = None
|
|
3514
|
+
target: Annotated[
|
|
3515
|
+
Optional[ResourceReferenceChoice],
|
|
3516
|
+
Field(description="References the component or service that was the target of the event", title="Target"),
|
|
3517
|
+
] = None
|
|
3518
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4354
3519
|
|
|
4355
3520
|
|
|
4356
|
-
class
|
|
3521
|
+
class InputType(CycloneDXBaseModel):
|
|
4357
3522
|
"""
|
|
4358
3523
|
Type that represents various input data types and formats.
|
|
4359
3524
|
"""
|
|
@@ -4362,7 +3527,7 @@ class InputType4(CycloneDXBaseModel):
|
|
|
4362
3527
|
extra = Extra.forbid
|
|
4363
3528
|
|
|
4364
3529
|
source: Annotated[
|
|
4365
|
-
Optional[
|
|
3530
|
+
Optional[ResourceReferenceChoice],
|
|
4366
3531
|
Field(
|
|
4367
3532
|
description=(
|
|
4368
3533
|
"A reference to the component or service that provided the input to the task (e.g., reference to a"
|
|
@@ -4373,7 +3538,7 @@ class InputType4(CycloneDXBaseModel):
|
|
|
4373
3538
|
),
|
|
4374
3539
|
] = None
|
|
4375
3540
|
target: Annotated[
|
|
4376
|
-
Optional[
|
|
3541
|
+
Optional[ResourceReferenceChoice],
|
|
4377
3542
|
Field(
|
|
4378
3543
|
description=(
|
|
4379
3544
|
"A reference to the component or service that received or stored the input if not the task itself"
|
|
@@ -4384,7 +3549,7 @@ class InputType4(CycloneDXBaseModel):
|
|
|
4384
3549
|
),
|
|
4385
3550
|
] = None
|
|
4386
3551
|
resource: Annotated[
|
|
4387
|
-
Optional[
|
|
3552
|
+
Optional[ResourceReferenceChoice],
|
|
4388
3553
|
Field(
|
|
4389
3554
|
description=(
|
|
4390
3555
|
"A reference to an independent resource provided as an input to a task by the workflow runtime."
|
|
@@ -4410,92 +3575,24 @@ class InputType4(CycloneDXBaseModel):
|
|
|
4410
3575
|
title="Environment variables",
|
|
4411
3576
|
),
|
|
4412
3577
|
] = None
|
|
4413
|
-
data: Annotated[Attachment, Field(description="Inputs that have the form of data.", title="Data")]
|
|
4414
|
-
properties: Annotated[
|
|
4415
|
-
Optional[List[Property]],
|
|
4416
|
-
Field(
|
|
4417
|
-
description=(
|
|
4418
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4419
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4420
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4421
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4422
|
-
" registered in the [CycloneDX Property"
|
|
4423
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4424
|
-
),
|
|
4425
|
-
title="Properties",
|
|
4426
|
-
),
|
|
4427
|
-
] = None
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
class OutputType1(CycloneDXBaseModel):
|
|
4431
|
-
class Config:
|
|
4432
|
-
extra = Extra.forbid
|
|
4433
|
-
|
|
4434
|
-
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
4435
|
-
source: Annotated[
|
|
4436
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4437
|
-
Field(
|
|
4438
|
-
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
4439
|
-
title="Source",
|
|
4440
|
-
),
|
|
4441
|
-
] = None
|
|
4442
|
-
target: Annotated[
|
|
4443
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4444
|
-
Field(
|
|
4445
|
-
description=(
|
|
4446
|
-
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
4447
|
-
" with data flow value of `outbound`)"
|
|
4448
|
-
),
|
|
4449
|
-
examples=["a log file described as an `externalReference` within its target domain."],
|
|
4450
|
-
title="Target",
|
|
4451
|
-
),
|
|
4452
|
-
] = None
|
|
4453
|
-
resource: Annotated[
|
|
4454
|
-
Union[ResourceReferenceChoice1, ResourceReferenceChoice2],
|
|
4455
|
-
Field(
|
|
4456
|
-
description="A reference to an independent resource generated as output by the task.",
|
|
4457
|
-
examples=["configuration file", "source code", "scanning service"],
|
|
4458
|
-
title="Resource",
|
|
4459
|
-
),
|
|
4460
|
-
]
|
|
4461
|
-
data: Annotated[Optional[Attachment], Field(description="Outputs that have the form of data.", title="Data")] = None
|
|
4462
|
-
environmentVars: Annotated[
|
|
4463
|
-
Optional[List[Union[Property, str]]],
|
|
4464
|
-
Field(
|
|
4465
|
-
description="Outputs that have the form of environment variables.",
|
|
4466
|
-
title="Environment variables",
|
|
4467
|
-
),
|
|
4468
|
-
] = None
|
|
4469
|
-
properties: Annotated[
|
|
4470
|
-
Optional[List[Property]],
|
|
4471
|
-
Field(
|
|
4472
|
-
description=(
|
|
4473
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4474
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4475
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4476
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4477
|
-
" registered in the [CycloneDX Property"
|
|
4478
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4479
|
-
),
|
|
4480
|
-
title="Properties",
|
|
4481
|
-
),
|
|
4482
|
-
] = None
|
|
3578
|
+
data: Annotated[Optional[Attachment], Field(description="Inputs that have the form of data.", title="Data")] = None
|
|
3579
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4483
3580
|
|
|
4484
3581
|
|
|
4485
|
-
class
|
|
3582
|
+
class OutputType(CycloneDXBaseModel):
|
|
4486
3583
|
class Config:
|
|
4487
3584
|
extra = Extra.forbid
|
|
4488
3585
|
|
|
4489
3586
|
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
4490
3587
|
source: Annotated[
|
|
4491
|
-
Optional[
|
|
3588
|
+
Optional[ResourceReferenceChoice],
|
|
4492
3589
|
Field(
|
|
4493
3590
|
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
4494
3591
|
title="Source",
|
|
4495
3592
|
),
|
|
4496
3593
|
] = None
|
|
4497
3594
|
target: Annotated[
|
|
4498
|
-
Optional[
|
|
3595
|
+
Optional[ResourceReferenceChoice],
|
|
4499
3596
|
Field(
|
|
4500
3597
|
description=(
|
|
4501
3598
|
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
@@ -4506,7 +3603,7 @@ class OutputType2(CycloneDXBaseModel):
|
|
|
4506
3603
|
),
|
|
4507
3604
|
] = None
|
|
4508
3605
|
resource: Annotated[
|
|
4509
|
-
Optional[
|
|
3606
|
+
Optional[ResourceReferenceChoice],
|
|
4510
3607
|
Field(
|
|
4511
3608
|
description="A reference to an independent resource generated as output by the task.",
|
|
4512
3609
|
examples=["configuration file", "source code", "scanning service"],
|
|
@@ -4514,61 +3611,6 @@ class OutputType2(CycloneDXBaseModel):
|
|
|
4514
3611
|
),
|
|
4515
3612
|
] = None
|
|
4516
3613
|
data: Annotated[Optional[Attachment], Field(description="Outputs that have the form of data.", title="Data")] = None
|
|
4517
|
-
environmentVars: Annotated[
|
|
4518
|
-
List[Union[Property, str]],
|
|
4519
|
-
Field(
|
|
4520
|
-
description="Outputs that have the form of environment variables.",
|
|
4521
|
-
title="Environment variables",
|
|
4522
|
-
),
|
|
4523
|
-
]
|
|
4524
|
-
properties: Annotated[
|
|
4525
|
-
Optional[List[Property]],
|
|
4526
|
-
Field(
|
|
4527
|
-
description=(
|
|
4528
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4529
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4530
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4531
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4532
|
-
" registered in the [CycloneDX Property"
|
|
4533
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4534
|
-
),
|
|
4535
|
-
title="Properties",
|
|
4536
|
-
),
|
|
4537
|
-
] = None
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
class OutputType3(CycloneDXBaseModel):
|
|
4541
|
-
class Config:
|
|
4542
|
-
extra = Extra.forbid
|
|
4543
|
-
|
|
4544
|
-
type: Annotated[Optional[Type7], Field(description="Describes the type of data output.", title="Type")] = None
|
|
4545
|
-
source: Annotated[
|
|
4546
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4547
|
-
Field(
|
|
4548
|
-
description="Component or service that generated or provided the output from the task (e.g., a build tool)",
|
|
4549
|
-
title="Source",
|
|
4550
|
-
),
|
|
4551
|
-
] = None
|
|
4552
|
-
target: Annotated[
|
|
4553
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4554
|
-
Field(
|
|
4555
|
-
description=(
|
|
4556
|
-
"Component or service that received the output from the task (e.g., reference to an artifactory service"
|
|
4557
|
-
" with data flow value of `outbound`)"
|
|
4558
|
-
),
|
|
4559
|
-
examples=["a log file described as an `externalReference` within its target domain."],
|
|
4560
|
-
title="Target",
|
|
4561
|
-
),
|
|
4562
|
-
] = None
|
|
4563
|
-
resource: Annotated[
|
|
4564
|
-
Optional[Union[ResourceReferenceChoice1, ResourceReferenceChoice2]],
|
|
4565
|
-
Field(
|
|
4566
|
-
description="A reference to an independent resource generated as output by the task.",
|
|
4567
|
-
examples=["configuration file", "source code", "scanning service"],
|
|
4568
|
-
title="Resource",
|
|
4569
|
-
),
|
|
4570
|
-
] = None
|
|
4571
|
-
data: Annotated[Attachment, Field(description="Outputs that have the form of data.", title="Data")]
|
|
4572
3614
|
environmentVars: Annotated[
|
|
4573
3615
|
Optional[List[Union[Property, str]]],
|
|
4574
3616
|
Field(
|
|
@@ -4576,20 +3618,7 @@ class OutputType3(CycloneDXBaseModel):
|
|
|
4576
3618
|
title="Environment variables",
|
|
4577
3619
|
),
|
|
4578
3620
|
] = None
|
|
4579
|
-
properties: Annotated[
|
|
4580
|
-
Optional[List[Property]],
|
|
4581
|
-
Field(
|
|
4582
|
-
description=(
|
|
4583
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4584
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4585
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4586
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4587
|
-
" registered in the [CycloneDX Property"
|
|
4588
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4589
|
-
),
|
|
4590
|
-
title="Properties",
|
|
4591
|
-
),
|
|
4592
|
-
] = None
|
|
3621
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4593
3622
|
|
|
4594
3623
|
|
|
4595
3624
|
class Signature1(CycloneDXBaseModel):
|
|
@@ -4701,7 +3730,7 @@ class ComponentData(CycloneDXBaseModel):
|
|
|
4701
3730
|
alias="bom-ref",
|
|
4702
3731
|
description=(
|
|
4703
3732
|
"An optional identifier which can be used to reference the dataset elsewhere in the BOM. Every bom-ref"
|
|
4704
|
-
"
|
|
3733
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
4705
3734
|
" conflicts with BOM-Links."
|
|
4706
3735
|
),
|
|
4707
3736
|
min_length=1,
|
|
@@ -4764,20 +3793,7 @@ class EnvironmentalConsiderations(CycloneDXBaseModel):
|
|
|
4764
3793
|
title="Energy Consumptions",
|
|
4765
3794
|
),
|
|
4766
3795
|
] = None
|
|
4767
|
-
properties: Annotated[
|
|
4768
|
-
Optional[List[Property]],
|
|
4769
|
-
Field(
|
|
4770
|
-
description=(
|
|
4771
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4772
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4773
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4774
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4775
|
-
" registered in the [CycloneDX Property"
|
|
4776
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4777
|
-
),
|
|
4778
|
-
title="Properties",
|
|
4779
|
-
),
|
|
4780
|
-
] = None
|
|
3796
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4781
3797
|
|
|
4782
3798
|
|
|
4783
3799
|
class Trigger(CycloneDXBaseModel):
|
|
@@ -4794,7 +3810,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
4794
3810
|
alias="bom-ref",
|
|
4795
3811
|
description=(
|
|
4796
3812
|
"An optional identifier which can be used to reference the trigger elsewhere in the BOM. Every bom-ref"
|
|
4797
|
-
"
|
|
3813
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
4798
3814
|
" conflicts with BOM-Links."
|
|
4799
3815
|
),
|
|
4800
3816
|
min_length=1,
|
|
@@ -4813,7 +3829,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
4813
3829
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
4814
3830
|
] = None
|
|
4815
3831
|
resourceReferences: Annotated[
|
|
4816
|
-
Optional[List[
|
|
3832
|
+
Optional[List[ResourceReferenceChoice]],
|
|
4817
3833
|
Field(
|
|
4818
3834
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
4819
3835
|
title="Resource references",
|
|
@@ -4829,7 +3845,6 @@ class Trigger(CycloneDXBaseModel):
|
|
|
4829
3845
|
conditions: Annotated[
|
|
4830
3846
|
Optional[List[Condition]],
|
|
4831
3847
|
Field(
|
|
4832
|
-
description="A list of conditions used to determine if a trigger should be activated.",
|
|
4833
3848
|
title="Conditions",
|
|
4834
3849
|
),
|
|
4835
3850
|
] = None
|
|
@@ -4838,7 +3853,7 @@ class Trigger(CycloneDXBaseModel):
|
|
|
4838
3853
|
Field(description="The date and time (timestamp) when the trigger was activated.", title="Time activated"),
|
|
4839
3854
|
] = None
|
|
4840
3855
|
inputs: Annotated[
|
|
4841
|
-
Optional[List[
|
|
3856
|
+
Optional[List[InputType]],
|
|
4842
3857
|
Field(
|
|
4843
3858
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
4844
3859
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -4846,27 +3861,14 @@ class Trigger(CycloneDXBaseModel):
|
|
|
4846
3861
|
),
|
|
4847
3862
|
] = None
|
|
4848
3863
|
outputs: Annotated[
|
|
4849
|
-
Optional[List[
|
|
3864
|
+
Optional[List[OutputType]],
|
|
4850
3865
|
Field(
|
|
4851
3866
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
4852
|
-
examples=["a log file or metrics data produced by the task"],
|
|
4853
|
-
title="Outputs",
|
|
4854
|
-
),
|
|
4855
|
-
] = None
|
|
4856
|
-
properties: Annotated[
|
|
4857
|
-
Optional[List[Property]],
|
|
4858
|
-
Field(
|
|
4859
|
-
description=(
|
|
4860
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
4861
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
4862
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
4863
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
4864
|
-
" registered in the [CycloneDX Property"
|
|
4865
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
4866
|
-
),
|
|
4867
|
-
title="Properties",
|
|
3867
|
+
examples=["a log file or metrics data produced by the task"],
|
|
3868
|
+
title="Outputs",
|
|
4868
3869
|
),
|
|
4869
3870
|
] = None
|
|
3871
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
4870
3872
|
|
|
4871
3873
|
|
|
4872
3874
|
class Attestation(CycloneDXBaseModel):
|
|
@@ -4912,7 +3914,7 @@ class Claim(CycloneDXBaseModel):
|
|
|
4912
3914
|
alias="bom-ref",
|
|
4913
3915
|
description=(
|
|
4914
3916
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
4915
|
-
"
|
|
3917
|
+
" MUST be unique within the BOM."
|
|
4916
3918
|
),
|
|
4917
3919
|
min_length=1,
|
|
4918
3920
|
title="BOM Reference",
|
|
@@ -4933,13 +3935,12 @@ class Claim(CycloneDXBaseModel):
|
|
|
4933
3935
|
Optional[str], Field(description="The specific statement or assertion about the target.", title="Predicate")
|
|
4934
3936
|
] = None
|
|
4935
3937
|
mitigationStrategies: Annotated[
|
|
4936
|
-
Optional[List[
|
|
3938
|
+
Optional[List[RefLinkType]],
|
|
4937
3939
|
Field(
|
|
4938
3940
|
description=(
|
|
4939
3941
|
"The list of `bom-ref` to the evidence provided describing the mitigation strategies. Each mitigation"
|
|
4940
3942
|
" strategy should include an explanation of how any weaknesses in the evidence will be mitigated."
|
|
4941
3943
|
),
|
|
4942
|
-
min_length=1,
|
|
4943
3944
|
title="Mitigation Strategies",
|
|
4944
3945
|
),
|
|
4945
3946
|
] = None
|
|
@@ -4951,17 +3952,13 @@ class Claim(CycloneDXBaseModel):
|
|
|
4951
3952
|
),
|
|
4952
3953
|
] = None
|
|
4953
3954
|
evidence: Annotated[
|
|
4954
|
-
Optional[List[
|
|
4955
|
-
Field(
|
|
4956
|
-
description="The list of `bom-ref` to evidence that supports this claim.", min_length=1, title="Evidence"
|
|
4957
|
-
),
|
|
3955
|
+
Optional[List[RefLinkType]],
|
|
3956
|
+
Field(description="The list of `bom-ref` to evidence that supports this claim.", title="Evidence"),
|
|
4958
3957
|
] = None
|
|
4959
3958
|
counterEvidence: Annotated[
|
|
4960
|
-
Optional[List[
|
|
3959
|
+
Optional[List[RefLinkType]],
|
|
4961
3960
|
Field(
|
|
4962
|
-
description="The list of `bom-ref` to counterEvidence that supports this claim.",
|
|
4963
|
-
min_length=1,
|
|
4964
|
-
title="Counter Evidence",
|
|
3961
|
+
description="The list of `bom-ref` to counterEvidence that supports this claim.", title="Counter Evidence"
|
|
4965
3962
|
),
|
|
4966
3963
|
] = None
|
|
4967
3964
|
externalReferences: Annotated[
|
|
@@ -4997,7 +3994,7 @@ class Evidence(CycloneDXBaseModel):
|
|
|
4997
3994
|
alias="bom-ref",
|
|
4998
3995
|
description=(
|
|
4999
3996
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
5000
|
-
"
|
|
3997
|
+
" MUST be unique within the BOM."
|
|
5001
3998
|
),
|
|
5002
3999
|
min_length=1,
|
|
5003
4000
|
title="BOM Reference",
|
|
@@ -5050,79 +4047,7 @@ class Evidence(CycloneDXBaseModel):
|
|
|
5050
4047
|
] = None
|
|
5051
4048
|
|
|
5052
4049
|
|
|
5053
|
-
class Signatories(CycloneDXBaseModel):
|
|
5054
|
-
class Config:
|
|
5055
|
-
extra = Extra.forbid
|
|
5056
|
-
|
|
5057
|
-
name: Annotated[Optional[str], Field(description="The signatory's name.", title="Name")] = None
|
|
5058
|
-
role: Annotated[
|
|
5059
|
-
Optional[str], Field(description="The signatory's role within an organization.", title="Role")
|
|
5060
|
-
] = None
|
|
5061
|
-
signature: Annotated[
|
|
5062
|
-
Union[Signature1, Signature2, Signer],
|
|
5063
|
-
Field(
|
|
5064
|
-
description=(
|
|
5065
|
-
"Enveloped signature in [JSON Signature Format"
|
|
5066
|
-
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
5067
|
-
),
|
|
5068
|
-
title="Signature",
|
|
5069
|
-
),
|
|
5070
|
-
]
|
|
5071
|
-
organization: Annotated[
|
|
5072
|
-
Optional[OrganizationalEntity], Field(description="The signatory's organization.", title="Organization")
|
|
5073
|
-
] = None
|
|
5074
|
-
externalReference: Annotated[
|
|
5075
|
-
Optional[ExternalReference],
|
|
5076
|
-
Field(
|
|
5077
|
-
description=(
|
|
5078
|
-
"External references provide a way to document systems, sites, and information that may be relevant but"
|
|
5079
|
-
" are not included with the BOM. They may also establish specific relationships within or external to"
|
|
5080
|
-
" the BOM."
|
|
5081
|
-
),
|
|
5082
|
-
title="External Reference",
|
|
5083
|
-
),
|
|
5084
|
-
] = None
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
class Signatories1(CycloneDXBaseModel):
|
|
5088
|
-
class Config:
|
|
5089
|
-
extra = Extra.forbid
|
|
5090
|
-
|
|
5091
|
-
name: Annotated[Optional[str], Field(description="The signatory's name.", title="Name")] = None
|
|
5092
|
-
role: Annotated[
|
|
5093
|
-
Optional[str], Field(description="The signatory's role within an organization.", title="Role")
|
|
5094
|
-
] = None
|
|
5095
|
-
signature: Annotated[
|
|
5096
|
-
Optional[Union[Signature1, Signature2, Signer]],
|
|
5097
|
-
Field(
|
|
5098
|
-
description=(
|
|
5099
|
-
"Enveloped signature in [JSON Signature Format"
|
|
5100
|
-
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
5101
|
-
),
|
|
5102
|
-
title="Signature",
|
|
5103
|
-
),
|
|
5104
|
-
] = None
|
|
5105
|
-
organization: Annotated[
|
|
5106
|
-
OrganizationalEntity, Field(description="The signatory's organization.", title="Organization")
|
|
5107
|
-
]
|
|
5108
|
-
externalReference: Annotated[
|
|
5109
|
-
ExternalReference,
|
|
5110
|
-
Field(
|
|
5111
|
-
description=(
|
|
5112
|
-
"External references provide a way to document systems, sites, and information that may be relevant but"
|
|
5113
|
-
" are not included with the BOM. They may also establish specific relationships within or external to"
|
|
5114
|
-
" the BOM."
|
|
5115
|
-
),
|
|
5116
|
-
title="External Reference",
|
|
5117
|
-
),
|
|
5118
|
-
]
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
4050
|
class Affirmation(CycloneDXBaseModel):
|
|
5122
|
-
"""
|
|
5123
|
-
A concise statement affirmed by an individual regarding all declarations, often used for third-party auditor acceptance or recipient acknowledgment. It includes a list of authorized signatories who assert the validity of the document on behalf of the organization.
|
|
5124
|
-
"""
|
|
5125
|
-
|
|
5126
4051
|
class Config:
|
|
5127
4052
|
extra = Extra.forbid
|
|
5128
4053
|
|
|
@@ -5138,7 +4063,7 @@ class Affirmation(CycloneDXBaseModel):
|
|
|
5138
4063
|
),
|
|
5139
4064
|
] = None
|
|
5140
4065
|
signatories: Annotated[
|
|
5141
|
-
Optional[List
|
|
4066
|
+
Optional[List],
|
|
5142
4067
|
Field(
|
|
5143
4068
|
description=(
|
|
5144
4069
|
"The list of signatories authorized on behalf of an organization to assert validity of this document."
|
|
@@ -5168,7 +4093,7 @@ class Service(CycloneDXBaseModel):
|
|
|
5168
4093
|
alias="bom-ref",
|
|
5169
4094
|
description=(
|
|
5170
4095
|
"An optional identifier which can be used to reference the service elsewhere in the BOM. Every bom-ref"
|
|
5171
|
-
"
|
|
4096
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
5172
4097
|
" conflicts with BOM-Links."
|
|
5173
4098
|
),
|
|
5174
4099
|
min_length=1,
|
|
@@ -5261,7 +4186,7 @@ class Service(CycloneDXBaseModel):
|
|
|
5261
4186
|
description=(
|
|
5262
4187
|
"EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)"
|
|
5263
4188
|
),
|
|
5264
|
-
title="
|
|
4189
|
+
title="Component License(s)",
|
|
5265
4190
|
),
|
|
5266
4191
|
] = None
|
|
5267
4192
|
externalReferences: Annotated[
|
|
@@ -5297,7 +4222,7 @@ class Service(CycloneDXBaseModel):
|
|
|
5297
4222
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
5298
4223
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
5299
4224
|
" registered in the [CycloneDX Property"
|
|
5300
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
4225
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
5301
4226
|
),
|
|
5302
4227
|
title="Properties",
|
|
5303
4228
|
),
|
|
@@ -5335,7 +4260,7 @@ class Compositions(CycloneDXBaseModel):
|
|
|
5335
4260
|
alias="bom-ref",
|
|
5336
4261
|
description=(
|
|
5337
4262
|
"An optional identifier which can be used to reference the composition elsewhere in the BOM. Every"
|
|
5338
|
-
" bom-ref
|
|
4263
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
5339
4264
|
" avoid conflicts with BOM-Links."
|
|
5340
4265
|
),
|
|
5341
4266
|
min_length=1,
|
|
@@ -5390,6 +4315,53 @@ class Compositions(CycloneDXBaseModel):
|
|
|
5390
4315
|
] = None
|
|
5391
4316
|
|
|
5392
4317
|
|
|
4318
|
+
class Annotations(CycloneDXBaseModel):
|
|
4319
|
+
"""
|
|
4320
|
+
A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.
|
|
4321
|
+
"""
|
|
4322
|
+
|
|
4323
|
+
class Config:
|
|
4324
|
+
extra = Extra.forbid
|
|
4325
|
+
|
|
4326
|
+
bom_ref: Annotated[
|
|
4327
|
+
Optional[str],
|
|
4328
|
+
Field(
|
|
4329
|
+
alias="bom-ref",
|
|
4330
|
+
description=(
|
|
4331
|
+
"An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every"
|
|
4332
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
4333
|
+
" avoid conflicts with BOM-Links."
|
|
4334
|
+
),
|
|
4335
|
+
min_length=1,
|
|
4336
|
+
title="BOM Reference",
|
|
4337
|
+
),
|
|
4338
|
+
] = None
|
|
4339
|
+
subjects: Annotated[
|
|
4340
|
+
List[Union[RefLinkType, BomLinkElementType]],
|
|
4341
|
+
Field(
|
|
4342
|
+
description=(
|
|
4343
|
+
"The object in the BOM identified by its bom-ref. This is often a component or service, but may be any"
|
|
4344
|
+
" object type supporting bom-refs."
|
|
4345
|
+
),
|
|
4346
|
+
title="Subjects",
|
|
4347
|
+
),
|
|
4348
|
+
]
|
|
4349
|
+
timestamp: Annotated[
|
|
4350
|
+
datetime, Field(description="The date and time (timestamp) when the annotation was created.", title="Timestamp")
|
|
4351
|
+
]
|
|
4352
|
+
text: Annotated[str, Field(description="The textual content of the annotation.", title="Text")]
|
|
4353
|
+
signature: Annotated[
|
|
4354
|
+
Optional[Union[Signature1, Signature2, Signer]],
|
|
4355
|
+
Field(
|
|
4356
|
+
description=(
|
|
4357
|
+
"Enveloped signature in [JSON Signature Format"
|
|
4358
|
+
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
4359
|
+
),
|
|
4360
|
+
title="Signature",
|
|
4361
|
+
),
|
|
4362
|
+
] = None
|
|
4363
|
+
|
|
4364
|
+
|
|
5393
4365
|
class ModelParameters(CycloneDXBaseModel):
|
|
5394
4366
|
"""
|
|
5395
4367
|
Hyper-parameters for construction of the model.
|
|
@@ -5430,7 +4402,7 @@ class ModelParameters(CycloneDXBaseModel):
|
|
|
5430
4402
|
),
|
|
5431
4403
|
] = None
|
|
5432
4404
|
datasets: Annotated[
|
|
5433
|
-
Optional[List[Union[ComponentData,
|
|
4405
|
+
Optional[List[Union[ComponentData, Dataset]]],
|
|
5434
4406
|
Field(description="The datasets used to train and evaluate the model.", title="Datasets"),
|
|
5435
4407
|
] = None
|
|
5436
4408
|
inputs: Annotated[
|
|
@@ -5504,7 +4476,7 @@ class Considerations(CycloneDXBaseModel):
|
|
|
5504
4476
|
|
|
5505
4477
|
class ModelCard(CycloneDXBaseModel):
|
|
5506
4478
|
"""
|
|
5507
|
-
A model card describes the intended uses of a machine learning model and potential limitations, including biases and ethical considerations. Model cards typically contain the training parameters, which datasets were used to train the model, performance metrics, and other relevant data useful for ML transparency. This object SHOULD be specified for any component of type `machine-learning-model` and
|
|
4479
|
+
A model card describes the intended uses of a machine learning model and potential limitations, including biases and ethical considerations. Model cards typically contain the training parameters, which datasets were used to train the model, performance metrics, and other relevant data useful for ML transparency. This object SHOULD be specified for any component of type `machine-learning-model` and MUST NOT be specified for other component types.
|
|
5508
4480
|
"""
|
|
5509
4481
|
|
|
5510
4482
|
class Config:
|
|
@@ -5516,7 +4488,7 @@ class ModelCard(CycloneDXBaseModel):
|
|
|
5516
4488
|
alias="bom-ref",
|
|
5517
4489
|
description=(
|
|
5518
4490
|
"An optional identifier which can be used to reference the model card elsewhere in the BOM. Every"
|
|
5519
|
-
" bom-ref
|
|
4491
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
5520
4492
|
" avoid conflicts with BOM-Links."
|
|
5521
4493
|
),
|
|
5522
4494
|
min_length=1,
|
|
@@ -5550,7 +4522,7 @@ class ModelCard(CycloneDXBaseModel):
|
|
|
5550
4522
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
5551
4523
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
5552
4524
|
" registered in the [CycloneDX Property"
|
|
5553
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
4525
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
5554
4526
|
),
|
|
5555
4527
|
title="Properties",
|
|
5556
4528
|
),
|
|
@@ -5571,7 +4543,7 @@ class Task(CycloneDXBaseModel):
|
|
|
5571
4543
|
alias="bom-ref",
|
|
5572
4544
|
description=(
|
|
5573
4545
|
"An optional identifier which can be used to reference the task elsewhere in the BOM. Every bom-ref"
|
|
5574
|
-
"
|
|
4546
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
5575
4547
|
" conflicts with BOM-Links."
|
|
5576
4548
|
),
|
|
5577
4549
|
min_length=1,
|
|
@@ -5590,7 +4562,7 @@ class Task(CycloneDXBaseModel):
|
|
|
5590
4562
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
5591
4563
|
] = None
|
|
5592
4564
|
resourceReferences: Annotated[
|
|
5593
|
-
Optional[List[
|
|
4565
|
+
Optional[List[ResourceReferenceChoice]],
|
|
5594
4566
|
Field(
|
|
5595
4567
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
5596
4568
|
title="Resource references",
|
|
@@ -5613,7 +4585,7 @@ class Task(CycloneDXBaseModel):
|
|
|
5613
4585
|
),
|
|
5614
4586
|
] = None
|
|
5615
4587
|
inputs: Annotated[
|
|
5616
|
-
Optional[List[
|
|
4588
|
+
Optional[List[InputType]],
|
|
5617
4589
|
Field(
|
|
5618
4590
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
5619
4591
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -5621,7 +4593,7 @@ class Task(CycloneDXBaseModel):
|
|
|
5621
4593
|
),
|
|
5622
4594
|
] = None
|
|
5623
4595
|
outputs: Annotated[
|
|
5624
|
-
Optional[List[
|
|
4596
|
+
Optional[List[OutputType]],
|
|
5625
4597
|
Field(
|
|
5626
4598
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
5627
4599
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -5649,20 +4621,7 @@ class Task(CycloneDXBaseModel):
|
|
|
5649
4621
|
title="Runtime topology",
|
|
5650
4622
|
),
|
|
5651
4623
|
] = None
|
|
5652
|
-
properties: Annotated[
|
|
5653
|
-
Optional[List[Property]],
|
|
5654
|
-
Field(
|
|
5655
|
-
description=(
|
|
5656
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
5657
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
5658
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
5659
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
5660
|
-
" registered in the [CycloneDX Property"
|
|
5661
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
5662
|
-
),
|
|
5663
|
-
title="Properties",
|
|
5664
|
-
),
|
|
5665
|
-
] = None
|
|
4624
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
5666
4625
|
|
|
5667
4626
|
|
|
5668
4627
|
class Standard(CycloneDXBaseModel):
|
|
@@ -5679,7 +4638,7 @@ class Standard(CycloneDXBaseModel):
|
|
|
5679
4638
|
alias="bom-ref",
|
|
5680
4639
|
description=(
|
|
5681
4640
|
"An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref"
|
|
5682
|
-
"
|
|
4641
|
+
" MUST be unique within the BOM."
|
|
5683
4642
|
),
|
|
5684
4643
|
min_length=1,
|
|
5685
4644
|
title="BOM Reference",
|
|
@@ -5771,7 +4730,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
5771
4730
|
alias="bom-ref",
|
|
5772
4731
|
description=(
|
|
5773
4732
|
"An optional identifier which can be used to reference the workflow elsewhere in the BOM. Every bom-ref"
|
|
5774
|
-
"
|
|
4733
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
5775
4734
|
" conflicts with BOM-Links."
|
|
5776
4735
|
),
|
|
5777
4736
|
min_length=1,
|
|
@@ -5790,7 +4749,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
5790
4749
|
Optional[str], Field(description="A description of the resource instance.", title="Description")
|
|
5791
4750
|
] = None
|
|
5792
4751
|
resourceReferences: Annotated[
|
|
5793
|
-
Optional[List[
|
|
4752
|
+
Optional[List[ResourceReferenceChoice]],
|
|
5794
4753
|
Field(
|
|
5795
4754
|
description="References to component or service resources that are used to realize the resource instance.",
|
|
5796
4755
|
title="Resource references",
|
|
@@ -5827,7 +4786,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
5827
4786
|
),
|
|
5828
4787
|
] = None
|
|
5829
4788
|
inputs: Annotated[
|
|
5830
|
-
Optional[List[
|
|
4789
|
+
Optional[List[InputType]],
|
|
5831
4790
|
Field(
|
|
5832
4791
|
description="Represents resources and data brought into a task at runtime by executor or task commands",
|
|
5833
4792
|
examples=["a `configuration` file which was declared as a local `component` or `externalReference`"],
|
|
@@ -5835,7 +4794,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
5835
4794
|
),
|
|
5836
4795
|
] = None
|
|
5837
4796
|
outputs: Annotated[
|
|
5838
|
-
Optional[List[
|
|
4797
|
+
Optional[List[OutputType]],
|
|
5839
4798
|
Field(
|
|
5840
4799
|
description="Represents resources and data output from a task at runtime by executor or task commands",
|
|
5841
4800
|
examples=["a log file or metrics data produced by the task"],
|
|
@@ -5863,20 +4822,7 @@ class Workflow(CycloneDXBaseModel):
|
|
|
5863
4822
|
title="Runtime topology",
|
|
5864
4823
|
),
|
|
5865
4824
|
] = None
|
|
5866
|
-
properties: Annotated[
|
|
5867
|
-
Optional[List[Property]],
|
|
5868
|
-
Field(
|
|
5869
|
-
description=(
|
|
5870
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
5871
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
5872
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
5873
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
5874
|
-
" registered in the [CycloneDX Property"
|
|
5875
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
5876
|
-
),
|
|
5877
|
-
title="Properties",
|
|
5878
|
-
),
|
|
5879
|
-
] = None
|
|
4825
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
5880
4826
|
|
|
5881
4827
|
|
|
5882
4828
|
class Targets(CycloneDXBaseModel):
|
|
@@ -5931,17 +4877,7 @@ class Declarations(CycloneDXBaseModel):
|
|
|
5931
4877
|
targets: Annotated[
|
|
5932
4878
|
Optional[Targets], Field(description="The list of targets which claims are made against.", title="Targets")
|
|
5933
4879
|
] = None
|
|
5934
|
-
affirmation: Annotated[
|
|
5935
|
-
Optional[Affirmation],
|
|
5936
|
-
Field(
|
|
5937
|
-
description=(
|
|
5938
|
-
"A concise statement affirmed by an individual regarding all declarations, often used for third-party"
|
|
5939
|
-
" auditor acceptance or recipient acknowledgment. It includes a list of authorized signatories who"
|
|
5940
|
-
" assert the validity of the document on behalf of the organization."
|
|
5941
|
-
),
|
|
5942
|
-
title="Affirmation",
|
|
5943
|
-
),
|
|
5944
|
-
] = None
|
|
4880
|
+
affirmation: Annotated[Optional[Affirmation], Field(title="Affirmation")] = None
|
|
5945
4881
|
signature: Annotated[
|
|
5946
4882
|
Optional[Union[Signature1, Signature2, Signer]],
|
|
5947
4883
|
Field(
|
|
@@ -5964,7 +4900,7 @@ class CyclonedxBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
5964
4900
|
Field(
|
|
5965
4901
|
description=(
|
|
5966
4902
|
"Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOMs do not have a"
|
|
5967
|
-
' filename convention, nor does JSON schema support namespaces. This value
|
|
4903
|
+
' filename convention, nor does JSON schema support namespaces. This value MUST be "CycloneDX".'
|
|
5968
4904
|
),
|
|
5969
4905
|
title="BOM Format",
|
|
5970
4906
|
),
|
|
@@ -5973,7 +4909,7 @@ class CyclonedxBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
5973
4909
|
str,
|
|
5974
4910
|
Field(
|
|
5975
4911
|
description="The version of the CycloneDX specification the BOM conforms to.",
|
|
5976
|
-
examples=["1.6
|
|
4912
|
+
examples=["1.6"],
|
|
5977
4913
|
title="CycloneDX Specification Version",
|
|
5978
4914
|
),
|
|
5979
4915
|
]
|
|
@@ -5982,8 +4918,8 @@ class CyclonedxBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
5982
4918
|
Field(
|
|
5983
4919
|
description=(
|
|
5984
4920
|
"Every BOM generated SHOULD have a unique serial number, even if the contents of the BOM have not"
|
|
5985
|
-
" changed over time. If specified, the serial number
|
|
5986
|
-
"
|
|
4921
|
+
" changed over time. If specified, the serial number MUST conform to RFC-4122. Use of serial numbers is"
|
|
4922
|
+
" RECOMMENDED."
|
|
5987
4923
|
),
|
|
5988
4924
|
examples=["urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79"],
|
|
5989
4925
|
regex="^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
|
|
@@ -6109,7 +5045,7 @@ class CyclonedxBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
6109
5045
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
6110
5046
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
6111
5047
|
" registered in the [CycloneDX Property"
|
|
6112
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
5048
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
6113
5049
|
),
|
|
6114
5050
|
title="Properties",
|
|
6115
5051
|
),
|
|
@@ -6126,7 +5062,7 @@ class CyclonedxBillOfMaterialsStandard(CycloneDXBaseModel):
|
|
|
6126
5062
|
] = None
|
|
6127
5063
|
|
|
6128
5064
|
|
|
6129
|
-
class
|
|
5065
|
+
class ToolModel(CycloneDXBaseModel):
|
|
6130
5066
|
"""
|
|
6131
5067
|
The tool(s) used in the creation, enrichment, and validation of the BOM.
|
|
6132
5068
|
"""
|
|
@@ -6162,7 +5098,7 @@ class Metadata(CycloneDXBaseModel):
|
|
|
6162
5098
|
Field(description="The date and time (timestamp) when the BOM was created.", title="Timestamp"),
|
|
6163
5099
|
] = None
|
|
6164
5100
|
lifecycles: Annotated[
|
|
6165
|
-
Optional[List[Union[
|
|
5101
|
+
Optional[List[Union[Lifecycle, Lifecycle1]]],
|
|
6166
5102
|
Field(
|
|
6167
5103
|
description=(
|
|
6168
5104
|
"Lifecycles communicate the stage(s) in which data in the BOM was captured. Different types of data may"
|
|
@@ -6174,7 +5110,7 @@ class Metadata(CycloneDXBaseModel):
|
|
|
6174
5110
|
),
|
|
6175
5111
|
] = None
|
|
6176
5112
|
tools: Annotated[
|
|
6177
|
-
Optional[Union[
|
|
5113
|
+
Optional[Union[ToolModel, List[Tool]]],
|
|
6178
5114
|
Field(description="The tool(s) used in the creation, enrichment, and validation of the BOM.", title="Tools"),
|
|
6179
5115
|
] = None
|
|
6180
5116
|
manufacturer: Annotated[
|
|
@@ -6239,7 +5175,7 @@ class Metadata(CycloneDXBaseModel):
|
|
|
6239
5175
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
6240
5176
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
6241
5177
|
" registered in the [CycloneDX Property"
|
|
6242
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
5178
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
6243
5179
|
),
|
|
6244
5180
|
title="Properties",
|
|
6245
5181
|
),
|
|
@@ -6353,7 +5289,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6353
5289
|
alias="bom-ref",
|
|
6354
5290
|
description=(
|
|
6355
5291
|
"An optional identifier which can be used to reference the component elsewhere in the BOM. Every"
|
|
6356
|
-
" bom-ref
|
|
5292
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
6357
5293
|
" avoid conflicts with BOM-Links."
|
|
6358
5294
|
),
|
|
6359
5295
|
min_length=1,
|
|
@@ -6496,7 +5432,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6496
5432
|
Optional[str],
|
|
6497
5433
|
Field(
|
|
6498
5434
|
description=(
|
|
6499
|
-
"Asserts the identity of the component using package-url (purl). The purl, if specified,
|
|
5435
|
+
"Asserts the identity of the component using package-url (purl). The purl, if specified, MUST be valid"
|
|
6500
5436
|
" and conform to the specification defined at:"
|
|
6501
5437
|
" [https://github.com/package-url/purl-spec](https://github.com/package-url/purl-spec). Refer to"
|
|
6502
5438
|
" `@.evidence.identity` to optionally provide evidence that substantiates the assertion of the"
|
|
@@ -6510,7 +5446,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6510
5446
|
Optional[List[str]],
|
|
6511
5447
|
Field(
|
|
6512
5448
|
description=(
|
|
6513
|
-
"Asserts the identity of the component using the OmniBOR Artifact ID. The OmniBOR, if specified,
|
|
5449
|
+
"Asserts the identity of the component using the OmniBOR Artifact ID. The OmniBOR, if specified, MUST"
|
|
6514
5450
|
" be valid and conform to the specification defined at:"
|
|
6515
5451
|
" [https://www.iana.org/assignments/uri-schemes/prov/gitoid](https://www.iana.org/assignments/uri-schemes/prov/gitoid)."
|
|
6516
5452
|
" Refer to `@.evidence.identity` to optionally provide evidence that substantiates the assertion of the"
|
|
@@ -6528,13 +5464,13 @@ class Component(CycloneDXBaseModel):
|
|
|
6528
5464
|
Field(
|
|
6529
5465
|
description=(
|
|
6530
5466
|
"Asserts the identity of the component using the Software Heritage persistent identifier (SWHID). The"
|
|
6531
|
-
" SWHID, if specified,
|
|
5467
|
+
" SWHID, if specified, MUST be valid and conform to the specification defined at:"
|
|
6532
5468
|
" [https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html](https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html)."
|
|
6533
5469
|
" Refer to `@.evidence.identity` to optionally provide evidence that substantiates the assertion of the"
|
|
6534
5470
|
" component's identity."
|
|
6535
5471
|
),
|
|
6536
5472
|
examples=["swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2"],
|
|
6537
|
-
title="
|
|
5473
|
+
title="SoftWare Heritage Identifier",
|
|
6538
5474
|
),
|
|
6539
5475
|
] = None
|
|
6540
5476
|
swid: Annotated[
|
|
@@ -6611,7 +5547,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6611
5547
|
Optional[List[ComponentData]],
|
|
6612
5548
|
Field(
|
|
6613
5549
|
description=(
|
|
6614
|
-
"This object SHOULD be specified for any component of type `data` and
|
|
5550
|
+
"This object SHOULD be specified for any component of type `data` and MUST NOT be specified for other"
|
|
6615
5551
|
" component types."
|
|
6616
5552
|
),
|
|
6617
5553
|
title="Data",
|
|
@@ -6627,7 +5563,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6627
5563
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
6628
5564
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
6629
5565
|
" registered in the [CycloneDX Property"
|
|
6630
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
5566
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
6631
5567
|
),
|
|
6632
5568
|
title="Properties",
|
|
6633
5569
|
),
|
|
@@ -6655,7 +5591,7 @@ class Component(CycloneDXBaseModel):
|
|
|
6655
5591
|
] = None
|
|
6656
5592
|
|
|
6657
5593
|
|
|
6658
|
-
class
|
|
5594
|
+
class Tool1(CycloneDXBaseModel):
|
|
6659
5595
|
"""
|
|
6660
5596
|
The tool(s) used to identify, confirm, or score the vulnerability.
|
|
6661
5597
|
"""
|
|
@@ -6696,7 +5632,7 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
6696
5632
|
alias="bom-ref",
|
|
6697
5633
|
description=(
|
|
6698
5634
|
"An optional identifier which can be used to reference the vulnerability elsewhere in the BOM. Every"
|
|
6699
|
-
" bom-ref
|
|
5635
|
+
" bom-ref MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
6700
5636
|
" avoid conflicts with BOM-Links."
|
|
6701
5637
|
),
|
|
6702
5638
|
min_length=1,
|
|
@@ -6730,11 +5666,10 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
6730
5666
|
Optional[List[Rating]], Field(description="List of vulnerability ratings", title="Ratings")
|
|
6731
5667
|
] = None
|
|
6732
5668
|
cwes: Annotated[
|
|
6733
|
-
Optional[List[
|
|
5669
|
+
Optional[List[Cwe]],
|
|
6734
5670
|
Field(
|
|
6735
5671
|
description="List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability.",
|
|
6736
5672
|
examples=[399],
|
|
6737
|
-
ge=1,
|
|
6738
5673
|
title="CWEs",
|
|
6739
5674
|
),
|
|
6740
5675
|
] = None
|
|
@@ -6814,7 +5749,7 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
6814
5749
|
),
|
|
6815
5750
|
] = None
|
|
6816
5751
|
tools: Annotated[
|
|
6817
|
-
Optional[Union[
|
|
5752
|
+
Optional[Union[Tool1, List[Tool]]],
|
|
6818
5753
|
Field(description="The tool(s) used to identify, confirm, or score the vulnerability.", title="Tools"),
|
|
6819
5754
|
] = None
|
|
6820
5755
|
analysis: Annotated[
|
|
@@ -6839,143 +5774,13 @@ class Vulnerability(CycloneDXBaseModel):
|
|
|
6839
5774
|
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
6840
5775
|
" having different values. Property names of interest to the general public are encouraged to be"
|
|
6841
5776
|
" registered in the [CycloneDX Property"
|
|
6842
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is
|
|
5777
|
+
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL."
|
|
6843
5778
|
),
|
|
6844
5779
|
title="Properties",
|
|
6845
5780
|
),
|
|
6846
5781
|
] = None
|
|
6847
5782
|
|
|
6848
5783
|
|
|
6849
|
-
class Annotator(CycloneDXBaseModel):
|
|
6850
|
-
"""
|
|
6851
|
-
The organization, person, component, or service which created the textual content of the annotation.
|
|
6852
|
-
"""
|
|
6853
|
-
|
|
6854
|
-
class Config:
|
|
6855
|
-
extra = Extra.forbid
|
|
6856
|
-
|
|
6857
|
-
organization: Annotated[OrganizationalEntity, Field(description="The organization that created the annotation")]
|
|
6858
|
-
individual: Annotated[
|
|
6859
|
-
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
6860
|
-
] = None
|
|
6861
|
-
component: Annotated[
|
|
6862
|
-
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
6863
|
-
] = None
|
|
6864
|
-
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
class Annotator1(CycloneDXBaseModel):
|
|
6868
|
-
"""
|
|
6869
|
-
The organization, person, component, or service which created the textual content of the annotation.
|
|
6870
|
-
"""
|
|
6871
|
-
|
|
6872
|
-
class Config:
|
|
6873
|
-
extra = Extra.forbid
|
|
6874
|
-
|
|
6875
|
-
organization: Annotated[
|
|
6876
|
-
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
6877
|
-
] = None
|
|
6878
|
-
individual: Annotated[OrganizationalContact, Field(description="The person that created the annotation")]
|
|
6879
|
-
component: Annotated[
|
|
6880
|
-
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
6881
|
-
] = None
|
|
6882
|
-
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
class Annotator2(CycloneDXBaseModel):
|
|
6886
|
-
"""
|
|
6887
|
-
The organization, person, component, or service which created the textual content of the annotation.
|
|
6888
|
-
"""
|
|
6889
|
-
|
|
6890
|
-
class Config:
|
|
6891
|
-
extra = Extra.forbid
|
|
6892
|
-
|
|
6893
|
-
organization: Annotated[
|
|
6894
|
-
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
6895
|
-
] = None
|
|
6896
|
-
individual: Annotated[
|
|
6897
|
-
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
6898
|
-
] = None
|
|
6899
|
-
component: Annotated[Component, Field(description="The tool or component that created the annotation")]
|
|
6900
|
-
service: Annotated[Optional[Service], Field(description="The service that created the annotation")] = None
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
class Annotator3(CycloneDXBaseModel):
|
|
6904
|
-
"""
|
|
6905
|
-
The organization, person, component, or service which created the textual content of the annotation.
|
|
6906
|
-
"""
|
|
6907
|
-
|
|
6908
|
-
class Config:
|
|
6909
|
-
extra = Extra.forbid
|
|
6910
|
-
|
|
6911
|
-
organization: Annotated[
|
|
6912
|
-
Optional[OrganizationalEntity], Field(description="The organization that created the annotation")
|
|
6913
|
-
] = None
|
|
6914
|
-
individual: Annotated[
|
|
6915
|
-
Optional[OrganizationalContact], Field(description="The person that created the annotation")
|
|
6916
|
-
] = None
|
|
6917
|
-
component: Annotated[
|
|
6918
|
-
Optional[Component], Field(description="The tool or component that created the annotation")
|
|
6919
|
-
] = None
|
|
6920
|
-
service: Annotated[Service, Field(description="The service that created the annotation")]
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
class Annotations(CycloneDXBaseModel):
|
|
6924
|
-
"""
|
|
6925
|
-
A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.
|
|
6926
|
-
"""
|
|
6927
|
-
|
|
6928
|
-
class Config:
|
|
6929
|
-
extra = Extra.forbid
|
|
6930
|
-
|
|
6931
|
-
bom_ref: Annotated[
|
|
6932
|
-
Optional[str],
|
|
6933
|
-
Field(
|
|
6934
|
-
alias="bom-ref",
|
|
6935
|
-
description=(
|
|
6936
|
-
"An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every"
|
|
6937
|
-
" bom-ref must be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to"
|
|
6938
|
-
" avoid conflicts with BOM-Links."
|
|
6939
|
-
),
|
|
6940
|
-
min_length=1,
|
|
6941
|
-
title="BOM Reference",
|
|
6942
|
-
),
|
|
6943
|
-
] = None
|
|
6944
|
-
subjects: Annotated[
|
|
6945
|
-
List[Union[RefLinkType, BomLinkElementType]],
|
|
6946
|
-
Field(
|
|
6947
|
-
description=(
|
|
6948
|
-
"The object in the BOM identified by its bom-ref. This is often a component or service, but may be any"
|
|
6949
|
-
" object type supporting bom-refs."
|
|
6950
|
-
),
|
|
6951
|
-
title="Subjects",
|
|
6952
|
-
),
|
|
6953
|
-
]
|
|
6954
|
-
annotator: Annotated[
|
|
6955
|
-
Union[Annotator, Annotator1, Annotator2, Annotator3],
|
|
6956
|
-
Field(
|
|
6957
|
-
description=(
|
|
6958
|
-
"The organization, person, component, or service which created the textual content of the annotation."
|
|
6959
|
-
),
|
|
6960
|
-
title="Annotator",
|
|
6961
|
-
),
|
|
6962
|
-
]
|
|
6963
|
-
timestamp: Annotated[
|
|
6964
|
-
datetime, Field(description="The date and time (timestamp) when the annotation was created.", title="Timestamp")
|
|
6965
|
-
]
|
|
6966
|
-
text: Annotated[str, Field(description="The textual content of the annotation.", title="Text")]
|
|
6967
|
-
signature: Annotated[
|
|
6968
|
-
Optional[Union[Signature1, Signature2, Signer]],
|
|
6969
|
-
Field(
|
|
6970
|
-
description=(
|
|
6971
|
-
"Enveloped signature in [JSON Signature Format"
|
|
6972
|
-
" (JSF)](https://cyberphone.github.io/doc/security/jsf.html)."
|
|
6973
|
-
),
|
|
6974
|
-
title="Signature",
|
|
6975
|
-
),
|
|
6976
|
-
] = None
|
|
6977
|
-
|
|
6978
|
-
|
|
6979
5784
|
class Formula(CycloneDXBaseModel):
|
|
6980
5785
|
"""
|
|
6981
5786
|
Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed.
|
|
@@ -6990,7 +5795,7 @@ class Formula(CycloneDXBaseModel):
|
|
|
6990
5795
|
alias="bom-ref",
|
|
6991
5796
|
description=(
|
|
6992
5797
|
"An optional identifier which can be used to reference the formula elsewhere in the BOM. Every bom-ref"
|
|
6993
|
-
"
|
|
5798
|
+
" MUST be unique within the BOM.\nValue SHOULD not start with the BOM-Link intro 'urn:cdx:' to avoid"
|
|
6994
5799
|
" conflicts with BOM-Links."
|
|
6995
5800
|
),
|
|
6996
5801
|
min_length=1,
|
|
@@ -7025,25 +5830,12 @@ class Formula(CycloneDXBaseModel):
|
|
|
7025
5830
|
title="Workflows",
|
|
7026
5831
|
),
|
|
7027
5832
|
] = None
|
|
7028
|
-
properties: Annotated[
|
|
7029
|
-
Optional[List[Property]],
|
|
7030
|
-
Field(
|
|
7031
|
-
description=(
|
|
7032
|
-
"Provides the ability to document properties in a name-value store. This provides flexibility to"
|
|
7033
|
-
" include data not officially supported in the standard without having to use additional namespaces or"
|
|
7034
|
-
" create extensions. Unlike key-value stores, properties support duplicate names, each potentially"
|
|
7035
|
-
" having different values. Property names of interest to the general public are encouraged to be"
|
|
7036
|
-
" registered in the [CycloneDX Property"
|
|
7037
|
-
" Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is optional."
|
|
7038
|
-
),
|
|
7039
|
-
title="Properties",
|
|
7040
|
-
),
|
|
7041
|
-
] = None
|
|
5833
|
+
properties: Annotated[Optional[List[Property]], Field(title="Properties")] = None
|
|
7042
5834
|
|
|
7043
5835
|
|
|
7044
5836
|
Service.update_forward_refs()
|
|
7045
5837
|
Targets.update_forward_refs()
|
|
7046
5838
|
CyclonedxBillOfMaterialsStandard.update_forward_refs()
|
|
7047
|
-
|
|
5839
|
+
ToolModel.update_forward_refs()
|
|
7048
5840
|
Metadata.update_forward_refs()
|
|
7049
5841
|
Pedigree.update_forward_refs()
|