# generated by datamodel-codegen:
#   filename:  protocols/adcp_extension.json
#   timestamp: 2026-01-08T19:25:24+00:00

from __future__ import annotations

from enum import Enum
from typing import Annotated

from adcp.types.base import AdCPBaseModel
from pydantic import ConfigDict, Field


class ProtocolsSupportedEnum(Enum):
    media_buy = 'media_buy'
    creative = 'creative'
    signals = 'signals'


class AdcpAgentCardExtension(AdCPBaseModel):
    model_config = ConfigDict(
        extra='allow',
    )
    adcp_version: Annotated[
        str,
        Field(
            description="Semantic version of the AdCP specification this agent implements (e.g., '2.4.0')",
            pattern='^\\d+\\.\\d+\\.\\d+$',
        ),
    ]
    protocols_supported: Annotated[
        list[ProtocolsSupportedEnum],
        Field(
            description='AdCP protocol domains supported by this agent. At least one must be specified.',
            min_length=1,
        ),
    ]
