# generated by datamodel-codegen:
#   filename:  core/requirements/asset_requirements.json
#   timestamp: 2026-02-23T01:56:40+00:00

from __future__ import annotations

from typing import Annotated

from pydantic import Field, RootModel

from . import (
    audio_asset_requirements,
    css_asset_requirements,
    daast_asset_requirements,
    html_asset_requirements,
    image_asset_requirements,
    javascript_asset_requirements,
    markdown_asset_requirements,
    text_asset_requirements,
    url_asset_requirements,
    vast_asset_requirements,
    video_asset_requirements,
    webhook_asset_requirements,
)


class AssetRequirements(
    RootModel[
        image_asset_requirements.ImageAssetRequirements
        | video_asset_requirements.VideoAssetRequirements
        | audio_asset_requirements.AudioAssetRequirements
        | text_asset_requirements.TextAssetRequirements
        | markdown_asset_requirements.MarkdownAssetRequirements
        | html_asset_requirements.HtmlAssetRequirements
        | css_asset_requirements.CssAssetRequirements
        | javascript_asset_requirements.JavascriptAssetRequirements
        | vast_asset_requirements.VastAssetRequirements
        | daast_asset_requirements.DaastAssetRequirements
        | url_asset_requirements.UrlAssetRequirements
        | webhook_asset_requirements.WebhookAssetRequirements
    ]
):
    root: Annotated[
        image_asset_requirements.ImageAssetRequirements
        | video_asset_requirements.VideoAssetRequirements
        | audio_asset_requirements.AudioAssetRequirements
        | text_asset_requirements.TextAssetRequirements
        | markdown_asset_requirements.MarkdownAssetRequirements
        | html_asset_requirements.HtmlAssetRequirements
        | css_asset_requirements.CssAssetRequirements
        | javascript_asset_requirements.JavascriptAssetRequirements
        | vast_asset_requirements.VastAssetRequirements
        | daast_asset_requirements.DaastAssetRequirements
        | url_asset_requirements.UrlAssetRequirements
        | webhook_asset_requirements.WebhookAssetRequirements,
        Field(
            description='Technical requirements for creative assets. The applicable schema is determined by the sibling asset_type field.',
            title='Asset Requirements',
        ),
    ]
