from dataclasses import field
from pydantic.dataclasses import dataclass
from typing import List, Optional
from .type_value import TypeValue

__NAMESPACE__ = "http://www.w3.org/1999/xlink"


@dataclass
class ResourceType:
    class Meta:
        name = "resourceType"

    type: TypeValue = field(
        init=False,
        default=TypeValue.RESOURCE,
        metadata={
            "type": "Attribute",
            "namespace": "http://www.w3.org/1999/xlink",
            "required": True,
        }
    )
    role: Optional[str] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "http://www.w3.org/1999/xlink",
        }
    )
    title: Optional[str] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "http://www.w3.org/1999/xlink",
        }
    )
    label: Optional[str] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "http://www.w3.org/1999/xlink",
        }
    )
    content: List[object] = field(
        default_factory=list,
        metadata={
            "type": "Wildcard",
            "namespace": "##any",
            "mixed": True,
        }
    )
