1# generated by datamodel-codegen: 
    2#   filename:  helm_schema.json 
    3#   version:   0.26.3 
    4 
    5from __future__ import annotations 
    6 
    7from enum import Enum 
    8from typing import Optional, Union 
    9 
    10from pydantic import BaseModel, ConfigDict, Field, RootModel, StrictStr 
    11 
    12 
    13class PublicKey(BaseModel): 
    14    """The public key that can verify the package signature""" 
    15 
    16    model_config = ConfigDict( 
    17        populate_by_name=True, 
    18    ) 
    19    content: str = Field( 
    20        ..., 
    21        description="Specifies the content of the public key inline within the document", 
    22    ) 
    23 
    24 
    25class Algorithm(str, Enum): 
    26    """The hashing function used to compute the hash value""" 
    27 
    28    SHA256 = "sha256" 
    29 
    30 
    31class Hash(BaseModel): 
    32    """Specifies the hash algorithm and value for the chart""" 
    33 
    34    model_config = ConfigDict( 
    35        populate_by_name=True, 
    36    ) 
    37    algorithm: Algorithm = Field( 
    38        ..., 
    39        description="The hashing function used to compute the hash value", 
    40    ) 
    41    value: StrictStr = Field(..., description="The hash value for the chart") 
    42 
    43 
    44class Signature(BaseModel): 
    45    """Information about the included signature in the provenance file""" 
    46 
    47    model_config = ConfigDict( 
    48        populate_by_name=True, 
    49    ) 
    50    content: str = Field( 
    51        ..., 
    52        description="Specifies the signature embedded within the provenance file ", 
    53    ) 
    54 
    55 
    56class Provenance(BaseModel): 
    57    """The provenance entry associated with the signed Helm Chart""" 
    58 
    59    model_config = ConfigDict( 
    60        populate_by_name=True, 
    61    ) 
    62    signature: Signature = Field( 
    63        ..., 
    64        description="Information about the included signature in the provenance file", 
    65    ) 
    66    content: Optional[str] = Field( 
    67        default=None, 
    68        description="Specifies the content of the provenance file inline within the document", 
    69    ) 
    70 
    71 
    72class Provenance1(BaseModel): 
    73    """The provenance entry associated with the signed Helm Chart""" 
    74 
    75    model_config = ConfigDict( 
    76        populate_by_name=True, 
    77    ) 
    78    signature: Optional[Signature] = Field( 
    79        default=None, 
    80        description="Information about the included signature in the provenance file", 
    81    ) 
    82    content: str = Field( 
    83        ..., 
    84        description="Specifies the content of the provenance file inline within the document", 
    85    ) 
    86 
    87 
    88class Chart(BaseModel): 
    89    """Information about the Helm chart associated with the entry""" 
    90 
    91    model_config = ConfigDict( 
    92        populate_by_name=True, 
    93    ) 
    94    hash: Optional[Hash] = Field( 
    95        default=None, 
    96        description="Specifies the hash algorithm and value for the chart", 
    97    ) 
    98    provenance: Union[Provenance, Provenance1] = Field( 
    99        ..., 
    100        description="The provenance entry associated with the signed Helm Chart", 
    101    ) 
    102 
    103 
    104class HelmV001Schema(BaseModel): 
    105    """Schema for Helm object""" 
    106 
    107    model_config = ConfigDict( 
    108        populate_by_name=True, 
    109    ) 
    110    public_key: PublicKey = Field( 
    111        ..., 
    112        alias="publicKey", 
    113        description="The public key that can verify the package signature", 
    114    ) 
    115    chart: Chart = Field( 
    116        ..., 
    117        description="Information about the Helm chart associated with the entry", 
    118    ) 
    119 
    120 
    121class HelmSchema(RootModel[HelmV001Schema]): 
    122    model_config = ConfigDict( 
    123        populate_by_name=True, 
    124    ) 
    125    root: HelmV001Schema = Field(..., description="Schema for Helm objects", title="Helm Schema")