flync_4_metadata

Metadata

Expand for Schematic
        classDiagram

    class SOMEIPServiceMetadata {
        type: Literal['someip_service'] = 'someip_service'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
    }

    class SocketsPerVLANMetadata {
        type: Literal['sockets_per_vlan'] = 'sockets_per_vlan'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
    }

    class EmbeddedMetadata {
        type: Literal['embedded'] = 'embedded'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
        hardware: HardwareBaseMetadata | None = None
        app: SoftwareBaseMetadata | None = None
        bootloader: SoftwareBaseMetadata | None = None
        target_system: str
    }

    class SoftwareBaseMetadata {
        version_schema: Literal['semver', 'pep440'] | None = 'semver'
        version: str
    }

    class BaseVersion {
        version_schema: Literal['semver', 'pep440'] | None = 'semver'
        version: str
    }

    class FLYNCBaseModel {
    }

    class ECUMetadata {
        type: Literal['ecu'] = 'ecu'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
        hardware: HardwareBaseMetadata | None = None
        software: SoftwareBaseMetadata | None = None
    }

    class BaseMetadata {
        type: str
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
    }

    class SystemMetadata {
        type: Literal['system'] = 'system'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
        oem: str | None = None
        platform: str | None = None
        variant: str | None = None
        release: BaseVersion
    }

    class HardwareBaseMetadata {
        version_schema: Literal['semver', 'pep440'] | None = 'semver'
        version: str
        supplier: str | None = None
        product_id: str | None = None
    }

    BaseMetadata ..> BaseVersion
    SystemMetadata ..> BaseVersion
    ECUMetadata ..> BaseVersion
    ECUMetadata ..> SoftwareBaseMetadata
    ECUMetadata ..> HardwareBaseMetadata
    EmbeddedMetadata ..> BaseVersion
    EmbeddedMetadata ..> SoftwareBaseMetadata
    EmbeddedMetadata ..> HardwareBaseMetadata
    SocketsPerVLANMetadata ..> BaseVersion
    SOMEIPServiceMetadata ..> BaseVersion


    

Hint

Components in a FLYNC configuration, including the configuration itself, hold additional metadata. This helps keeping track of changes and compatibilities.

class BaseMetadata

Bases: FLYNCBaseModel

Base class for model and system metadata definitions.

This class provides common metadata attributes shared across different configuration artifacts, such as systems, ECUs, and services. It defines identifying and versioning information used for traceability and documentation.

Parameters

typestr

Type identifier of the metadata object.

authorstr

Author or organization responsible for the entity definition.

compatible_flync_versionBaseVersion

FLYNC version with which this model is compatible.

extensionsdict of str to str, optional

Optional map of extension keys and values for custom or tool-specific metadata.

class SystemMetadata

Bases: BaseMetadata

Represents system-level metadata.

This metadata describes the overall system context, including OEM and platform information.

Parameters

type: Literal[“system”].

Literal identifier specifying System metadata.

oemstr, optional

Original Equipment Manufacturer responsible for the system.

platformstr, optional

Target platform or system family identifier.

variantstr, optional

System variant of the platform.

release: BaseVersion

Versioning information about the system.

class ECUMetadata

Bases: BaseMetadata

Represents metadata for an Electronic Control Unit (ECU).

This metadata combines system-level identification with optional hardware and software descriptions.

Parameters

typeLiteral[“ecu”]

Literal identifier specifying ECU metadata.

hardwareHardwareBaseMetadata | None

Optional hardware metadata associated with the ECU.

softwareSoftwareBaseMetadata | None

Optional software metadata associated with the ECU.

class EmbeddedMetadata

Bases: BaseMetadata

Represents metadata for an embedded platform.

Parameters

typeLiteral[“embedded”]

Literal identifier specifying an embedded device.

hardwareHardwareBaseMetadata | None

Optional hardware metadata associated with the embedded device.

appSoftwareBaseMetadata | None

Optional software metadata for the application.

bootloaderSoftwareBaseMetadata | None

Optional software metadata for the bootloader.

target_systemstr

Name of the Embedded target device.

class SocketsPerVLANMetadata

Bases: BaseMetadata

Represents metadata for sockets-per-VLAN configuration.

Parameters

type: Literal[“sockets_per_vlan”]

Literal identifier specifying sockets-per-VLAN metadata.

class SOMEIPServiceMetadata

Bases: BaseMetadata

Represents metadata for a SOME/IP service interface.

Parameters

type: Literal[“someip_service”]

Literal identifier specifying SOME/IP service metadata.


Versioning

Hint

Versioning inside of the metadata can be either done by following Semantic Versioning (https://semver.org/) or pep440 versioning (https://peps.python.org/pep-0440/). Per default semver is used.

class BaseVersion

Bases: FLYNCBaseModel

Represents a version descriptor used within the model.

Parameters

version_schemaLiteral[“semver”, “pep440”]

Versioning scheme that defines how the version string is interpreted.

versionstr

Version value expressed according to the selected version_schema. Must be provided as a raw string.

class HardwareBaseMetadata

Bases: BaseVersion

Represents hardware-related metadata.

This model describes supplier and versioning information for hardware components.

Parameters

supplierstr, optional

Name of the hardware supplier.

product_idstr, optional

Supplier-specific part identification.

class SoftwareBaseMetadata

Bases: BaseVersion

Represents software-related metadata.

This model describes versioning information for software components.