Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/rekor_types/__init__.py: 98%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""The `sigstore_rekor_types` APIs."""
3from __future__ import annotations
5import sys
6from typing import Literal, Union
8from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
10from ._internal import (
11 alpine,
12 cose,
13 dsse,
14 hashedrekord,
15 helm,
16 intoto,
17 jar,
18 rekord,
19 rfc3161,
20 rpm,
21 tuf,
22)
24if sys.version_info < (3, 9):
25 from typing_extensions import Annotated
26else:
27 from typing import Annotated
29__version__ = "0.0.18"
32class Error(BaseModel):
33 """A Rekor server error."""
35 code: StrictInt
36 message: StrictStr
39class _ProposedEntryMixin(BaseModel):
40 model_config = ConfigDict(
41 populate_by_name=True,
42 )
43 api_version: StrictStr = Field(
44 pattern=r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$",
45 default="0.0.1",
46 alias="apiVersion",
47 )
50class Alpine(_ProposedEntryMixin):
51 """Proposed entry model for an `alpine` record."""
53 kind: Literal["alpine"] = "alpine"
54 spec: alpine.AlpinePackageSchema
57class Cose(_ProposedEntryMixin):
58 """Proposed entry model for a `cose` record."""
60 kind: Literal["cose"] = "cose"
61 spec: cose.CoseSchema
64class Dsse(_ProposedEntryMixin):
65 """Proposed entry model for a `dsse` record."""
67 kind: Literal["dsse"] = "dsse"
68 spec: dsse.DsseSchema
71class Hashedrekord(_ProposedEntryMixin):
72 """Proposed entry model for a `dsse` record."""
74 kind: Literal["hashedrekord"] = "hashedrekord"
75 spec: hashedrekord.HashedrekordSchema
78class Helm(_ProposedEntryMixin):
79 """Proposed entry model for a `dsse` record."""
81 kind: Literal["helm"] = "helm"
82 spec: helm.HelmSchema
85class Intoto(_ProposedEntryMixin):
86 """Proposed entry model for a `dsse` record."""
88 kind: Literal["intoto"] = "intoto"
89 spec: intoto.IntotoSchema
92class Jar(_ProposedEntryMixin):
93 """Proposed entry model for a `jar` record."""
95 kind: Literal["jar"] = "jar"
96 spec: jar.JarSchema
99class Rekord(_ProposedEntryMixin):
100 """Proposed entry model for a `rekord` record."""
102 kind: Literal["rekord"] = "rekord"
103 spec: rekord.RekorSchema
106class Rfc3161(_ProposedEntryMixin):
107 """Proposed entry model for a `rfc3161` record."""
109 kind: Literal["rfc3161"] = "rfc3161"
110 spec: rfc3161.TimestampSchema
113class Rpm(_ProposedEntryMixin):
114 """Proposed entry model for an `rpm` record."""
116 kind: Literal["rpm"] = "rpm"
117 spec: rpm.RpmSchema
120class Tuf(_ProposedEntryMixin):
121 """Proposed entry model for a `tuf` record."""
123 kind: Literal["tuf"] = "tuf"
124 spec: tuf.TufSchema
127ProposedEntry = Annotated[
128 Union[Alpine, Cose, Dsse, Hashedrekord, Helm, Intoto, Jar, Rekord, Rfc3161, Rpm, Tuf],
129 Field(discriminator="kind"),
130]