#  Copyright 2023-2024 Amazon.com, Inc. or its affiliates.

"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45

Generator: DataclassGenerator
See: https://xsdata.readthedocs.io/
"""
from dataclasses import dataclass, field
from typing import List, Optional, Union

from xsdata.models.datatype import XmlDate

from ..ismcat.cvegenerated.cvenum_ismcatfgiopen import CVEnumISMCATFGIOpenValuesvalue
from ..ismcat.cvegenerated.cvenum_ismcatfgiprotected import CVEnumISMCATFGIProtectedValuesvalue
from ..ismcat.cvegenerated.cvenum_ismcatowner_producer import CVEnumISMCATOwnerProducerValuesvalue
from ..ismcat.cvegenerated.cvenum_ismcatrel_to import CVEnumISMCATRelToValuesvalue
from .cvegenerated.cvenum_ism25_x import CVEnumISM25X
from .cvegenerated.cvenum_ismatomic_energy_markings import CVEnumISMatomicEnergyMarkingsValuesvalue
from .cvegenerated.cvenum_ismclassification_all import CVEnumISMClassificationAll
from .cvegenerated.cvenum_ismdissem import CVEnumISMDissemValues
from .cvegenerated.cvenum_ismnon_ic import CVEnumISMNonICValuesvalue
from .cvegenerated.cvenum_ismnon_uscontrols import CVEnumISMNonUSControlsValues
from .cvegenerated.cvenum_ismnotice import CVEnumISMNoticeValues
from .cvegenerated.cvenum_ismpoc_type import CVEnumISMPocTypeValues
from .cvegenerated.cvenum_ismscicontrols import CVEnumISMSCIControlsValuesvalue

__NAMESPACE__ = "urn:us:gov:ic:ism:13"


@dataclass
class LongStringWithSecurityType:
    value: str = field(
        default="",
        metadata={
            "required": True,
            "max_length": 32000,
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class ShortStringWithSecurityType:
    value: str = field(
        default="",
        metadata={
            "required": True,
            "max_length": 256,
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class NoticeText(LongStringWithSecurityType):
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">The actual text of a notice.</p>
    """

    class Meta:
        namespace = "urn:us:gov:ic:ism:13"

    poc_type: List[CVEnumISMPocTypeValues] = field(
        default_factory=list,
        metadata={
            "name": "pocType",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )


@dataclass
class NoticeBaseType:
    """<p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">Base type for Notices.

    Does not include any attributes.</p>
    """

    notice_text: List[NoticeText] = field(
        default_factory=list,
        metadata={
            "name": "NoticeText",
            "type": "Element",
            "namespace": "urn:us:gov:ic:ism:13",
            "min_occurs": 1,
        },
    )


@dataclass
class NoticeExternalType(NoticeBaseType):
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A single Notice that may consist of 1 or more NoticeText
    for use when the notice refers to something external.</p>
    """

    notice_type: List[CVEnumISMNoticeValues] = field(
        default_factory=list,
        metadata={
            "name": "noticeType",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    notice_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "noticeReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 2048,
        },
    )
    notice_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "noticeDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    unregistered_notice_type: Optional[str] = field(
        default=None,
        metadata={
            "name": "unregisteredNoticeType",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 2048,
        },
    )
    external_notice: bool = field(
        init=False,
        default=True,
        metadata={
            "name": "externalNotice",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class NoticeType(NoticeBaseType):
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A single Notice that may consist of 1 or more
    NoticeText</p>
    """

    notice_type: List[CVEnumISMNoticeValues] = field(
        default_factory=list,
        metadata={
            "name": "noticeType",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    notice_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "noticeReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 2048,
        },
    )
    notice_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "noticeDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    unregistered_notice_type: Optional[str] = field(
        default=None,
        metadata={
            "name": "unregisteredNoticeType",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 2048,
        },
    )
    external_notice: Optional[bool] = field(
        default=None,
        metadata={
            "name": "externalNotice",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class Notice(NoticeType):
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A single Notice that may consist of 1 or more
    NoticeText</p>
    """

    class Meta:
        namespace = "urn:us:gov:ic:ism:13"


@dataclass
class NoticeExternal(NoticeExternalType):
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A single Notice that may consist of 1 or more NoticeText
    for use when the notice refers to something external.</p>
    """

    class Meta:
        namespace = "urn:us:gov:ic:ism:13"


@dataclass
class NoticeExternalListType:
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A list of Notices</p>
    """

    notice_external: List[NoticeExternal] = field(
        default_factory=list,
        metadata={
            "name": "NoticeExternal",
            "type": "Element",
            "namespace": "urn:us:gov:ic:ism:13",
            "min_occurs": 1,
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class NoticeListType:
    """
    <p xmlns:ns1="urn:us:gov:ic:ism:13" ns1:ownerProducer="USA"
    ns1:classification="U">A list of Notices</p>
    """

    notice: List[Notice] = field(
        default_factory=list,
        metadata={
            "name": "Notice",
            "type": "Element",
            "namespace": "urn:us:gov:ic:ism:13",
            "min_occurs": 1,
        },
    )
    classification: Optional[CVEnumISMClassificationAll] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
        },
    )
    owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "ownerProducer",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "required": True,
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    joint: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "SCIcontrols",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}",
            "tokens": True,
        },
    )
    saridentifier: List[str] = field(
        default_factory=list,
        metadata={
            "name": "SARIdentifier",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}",
            "tokens": True,
        },
    )
    atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "atomicEnergyMarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))",
            "tokens": True,
        },
    )
    dissemination_controls: List[CVEnumISMDissemValues] = field(
        default_factory=list,
        metadata={
            "name": "disseminationControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "displayOnlyTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceOpen",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "FGIsourceProtected",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "releasableTo",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"NATO/[a-zA-Z\-_]",
            "tokens": True,
        },
    )
    non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field(
        default_factory=list,
        metadata={
            "name": "nonICmarkings",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI",
            "tokens": True,
        },
    )
    classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "classifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    compilation_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "compilationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    derivatively_classified_by: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivativelyClassifiedBy",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    classification_reason: Optional[str] = field(
        default=None,
        metadata={
            "name": "classificationReason",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 4096,
        },
    )
    non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
        default_factory=list,
        metadata={
            "name": "nonUSControls",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "tokens": True,
        },
    )
    derived_from: Optional[str] = field(
        default=None,
        metadata={
            "name": "derivedFrom",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "declassDate",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )
    declass_event: Optional[str] = field(
        default=None,
        metadata={
            "name": "declassEvent",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
            "max_length": 1024,
        },
    )
    declass_exception: Optional[CVEnumISM25X] = field(
        default=None,
        metadata={
            "name": "declassException",
            "type": "Attribute",
            "namespace": "urn:us:gov:ic:ism:13",
        },
    )


@dataclass
class NoticeExternalList(NoticeExternalListType):
    class Meta:
        namespace = "urn:us:gov:ic:ism:13"


@dataclass
class NoticeList(NoticeListType):
    class Meta:
        namespace = "urn:us:gov:ic:ism:13"
