# coding: utf-8

"""
    YouTube Data API v3

    The YouTube Data API v3 is an API that provides access to YouTube data, such as videos, playlists, and channels.

    The version of the OpenAPI document: v3
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import pprint
import re  # noqa: F401
import json

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self

class ContentRating(BaseModel):
    """
    Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange
    """ # noqa: E501
    acb_rating: Optional[StrictStr] = Field(default=None, description="The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.", alias="acbRating")
    agcom_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).", alias="agcomRating")
    anatel_rating: Optional[StrictStr] = Field(default=None, description="The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.", alias="anatelRating")
    bbfc_rating: Optional[StrictStr] = Field(default=None, description="The video's British Board of Film Classification (BBFC) rating.", alias="bbfcRating")
    bfvc_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Thailand's Board of Film and Video Censors.", alias="bfvcRating")
    bmukk_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).", alias="bmukkRating")
    catv_rating: Optional[StrictStr] = Field(default=None, description="Rating system for Canadian TV - Canadian TV Classification System The video's rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.", alias="catvRating")
    catvfr_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.", alias="catvfrRating")
    cbfc_rating: Optional[StrictStr] = Field(default=None, description="The video's Central Board of Film Certification (CBFC - India) rating.", alias="cbfcRating")
    ccc_rating: Optional[StrictStr] = Field(default=None, description="The video's Consejo de Calificación Cinematográfica (Chile) rating.", alias="cccRating")
    cce_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Portugal's Comissão de Classificação de Espect´culos.", alias="cceRating")
    chfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Switzerland.", alias="chfilmRating")
    chvrs_rating: Optional[StrictStr] = Field(default=None, description="The video's Canadian Home Video Rating System (CHVRS) rating.", alias="chvrsRating")
    cicf_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Commission de Contrôle des Films (Belgium).", alias="cicfRating")
    cna_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).", alias="cnaRating")
    cnc_rating: Optional[StrictStr] = Field(default=None, description="Rating system in France - Commission de classification cinematographique", alias="cncRating")
    csa_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from France's Conseil supérieur de l’audiovisuel, which rates broadcast content.", alias="csaRating")
    cscf_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).", alias="cscfRating")
    czfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in the Czech Republic.", alias="czfilmRating")
    djctq_rating: Optional[StrictStr] = Field(default=None, description="The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.", alias="djctqRating")
    djctq_rating_reasons: Optional[List[StrictStr]] = Field(default=None, description="Reasons that explain why the video received its DJCQT (Brazil) rating.", alias="djctqRatingReasons")
    ecbmct_rating: Optional[StrictStr] = Field(default=None, description="Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism", alias="ecbmctRating")
    eefilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Estonia.", alias="eefilmRating")
    egfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Egypt.", alias="egfilmRating")
    eirin_rating: Optional[StrictStr] = Field(default=None, description="The video's Eirin (映倫) rating. Eirin is the Japanese rating system.", alias="eirinRating")
    fcbm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Malaysia's Film Censorship Board.", alias="fcbmRating")
    fco_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.", alias="fcoRating")
    fmoc_rating: Optional[StrictStr] = Field(default=None, description="This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.", alias="fmocRating")
    fpb_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from South Africa's Film and Publication Board.", alias="fpbRating")
    fpb_rating_reasons: Optional[List[StrictStr]] = Field(default=None, description="Reasons that explain why the video received its FPB (South Africa) rating.", alias="fpbRatingReasons")
    fsk_rating: Optional[StrictStr] = Field(default=None, description="The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.", alias="fskRating")
    grfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Greece.", alias="grfilmRating")
    icaa_rating: Optional[StrictStr] = Field(default=None, description="The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.", alias="icaaRating")
    ifco_rating: Optional[StrictStr] = Field(default=None, description="The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.", alias="ifcoRating")
    ilfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Israel.", alias="ilfilmRating")
    incaa_rating: Optional[StrictStr] = Field(default=None, description="The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.", alias="incaaRating")
    kfcb_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Kenya Film Classification Board.", alias="kfcbRating")
    kijkwijzer_rating: Optional[StrictStr] = Field(default=None, description="The video's NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).", alias="kijkwijzerRating")
    kmrb_rating: Optional[StrictStr] = Field(default=None, description="The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.", alias="kmrbRating")
    lsf_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Indonesia's Lembaga Sensor Film.", alias="lsfRating")
    mccaa_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Malta's Film Age-Classification Board.", alias="mccaaRating")
    mccyp_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.", alias="mccypRating")
    mcst_rating: Optional[StrictStr] = Field(default=None, description="The video's rating system for Vietnam - MCST", alias="mcstRating")
    mda_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).", alias="mdaRating")
    medietilsynet_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Medietilsynet, the Norwegian Media Authority.", alias="medietilsynetRating")
    meku_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).", alias="mekuRating")
    mena_mpaa_rating: Optional[StrictStr] = Field(default=None, description="The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.", alias="menaMpaaRating")
    mibac_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).", alias="mibacRating")
    moc_rating: Optional[StrictStr] = Field(default=None, description="The video's Ministerio de Cultura (Colombia) rating.", alias="mocRating")
    moctw_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Taiwan's Ministry of Culture (文化部).", alias="moctwRating")
    mpaa_rating: Optional[StrictStr] = Field(default=None, description="The video's Motion Picture Association of America (MPAA) rating.", alias="mpaaRating")
    mpaat_rating: Optional[StrictStr] = Field(default=None, description="The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.", alias="mpaatRating")
    mtrcb_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Movie and Television Review and Classification Board (Philippines).", alias="mtrcbRating")
    nbc_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Maldives National Bureau of Classification.", alias="nbcRating")
    nbcpl_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Poland.", alias="nbcplRating")
    nfrc_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Bulgarian National Film Center.", alias="nfrcRating")
    nfvcb_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Nigeria's National Film and Video Censors Board.", alias="nfvcbRating")
    nkclv_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).", alias="nkclvRating")
    nmc_rating: Optional[StrictStr] = Field(default=None, description="The National Media Council ratings system for United Arab Emirates.", alias="nmcRating")
    oflc_rating: Optional[StrictStr] = Field(default=None, description="The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.", alias="oflcRating")
    pefilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Peru.", alias="pefilmRating")
    rcnof_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.", alias="rcnofRating")
    resorteviolencia_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Venezuela.", alias="resorteviolenciaRating")
    rtc_rating: Optional[StrictStr] = Field(default=None, description="The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.", alias="rtcRating")
    rte_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Ireland's Raidió Teilifís Éireann.", alias="rteRating")
    russia_rating: Optional[StrictStr] = Field(default=None, description="The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.", alias="russiaRating")
    skfilm_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Slovakia.", alias="skfilmRating")
    smais_rating: Optional[StrictStr] = Field(default=None, description="The video's rating in Iceland.", alias="smaisRating")
    smsa_rating: Optional[StrictStr] = Field(default=None, description="The video's rating from Statens medieråd (Sweden's National Media Council).", alias="smsaRating")
    tvpg_rating: Optional[StrictStr] = Field(default=None, description="The video's TV Parental Guidelines (TVPG) rating.", alias="tvpgRating")
    yt_rating: Optional[StrictStr] = Field(default=None, description="A rating that YouTube uses to identify age-restricted content.", alias="ytRating")
    __properties: ClassVar[List[str]] = ["acbRating", "agcomRating", "anatelRating", "bbfcRating", "bfvcRating", "bmukkRating", "catvRating", "catvfrRating", "cbfcRating", "cccRating", "cceRating", "chfilmRating", "chvrsRating", "cicfRating", "cnaRating", "cncRating", "csaRating", "cscfRating", "czfilmRating", "djctqRating", "djctqRatingReasons", "ecbmctRating", "eefilmRating", "egfilmRating", "eirinRating", "fcbmRating", "fcoRating", "fmocRating", "fpbRating", "fpbRatingReasons", "fskRating", "grfilmRating", "icaaRating", "ifcoRating", "ilfilmRating", "incaaRating", "kfcbRating", "kijkwijzerRating", "kmrbRating", "lsfRating", "mccaaRating", "mccypRating", "mcstRating", "mdaRating", "medietilsynetRating", "mekuRating", "menaMpaaRating", "mibacRating", "mocRating", "moctwRating", "mpaaRating", "mpaatRating", "mtrcbRating", "nbcRating", "nbcplRating", "nfrcRating", "nfvcbRating", "nkclvRating", "nmcRating", "oflcRating", "pefilmRating", "rcnofRating", "resorteviolenciaRating", "rtcRating", "rteRating", "russiaRating", "skfilmRating", "smaisRating", "smsaRating", "tvpgRating", "ytRating"]

    @field_validator('acb_rating')
    def acb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['acbUnspecified', 'acbE', 'acbP', 'acbC', 'acbG', 'acbPg', 'acbM', 'acbMa15plus', 'acbR18plus', 'acbUnrated']):
            raise ValueError("must be one of enum values ('acbUnspecified', 'acbE', 'acbP', 'acbC', 'acbG', 'acbPg', 'acbM', 'acbMa15plus', 'acbR18plus', 'acbUnrated')")
        return value

    @field_validator('agcom_rating')
    def agcom_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['agcomUnspecified', 'agcomT', 'agcomVm14', 'agcomVm18', 'agcomUnrated']):
            raise ValueError("must be one of enum values ('agcomUnspecified', 'agcomT', 'agcomVm14', 'agcomVm18', 'agcomUnrated')")
        return value

    @field_validator('anatel_rating')
    def anatel_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['anatelUnspecified', 'anatelF', 'anatelI', 'anatelI7', 'anatelI10', 'anatelI12', 'anatelR', 'anatelA', 'anatelUnrated']):
            raise ValueError("must be one of enum values ('anatelUnspecified', 'anatelF', 'anatelI', 'anatelI7', 'anatelI10', 'anatelI12', 'anatelR', 'anatelA', 'anatelUnrated')")
        return value

    @field_validator('bbfc_rating')
    def bbfc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['bbfcUnspecified', 'bbfcU', 'bbfcPg', 'bbfc12a', 'bbfc12', 'bbfc15', 'bbfc18', 'bbfcR18', 'bbfcUnrated']):
            raise ValueError("must be one of enum values ('bbfcUnspecified', 'bbfcU', 'bbfcPg', 'bbfc12a', 'bbfc12', 'bbfc15', 'bbfc18', 'bbfcR18', 'bbfcUnrated')")
        return value

    @field_validator('bfvc_rating')
    def bfvc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['bfvcUnspecified', 'bfvcG', 'bfvcE', 'bfvc13', 'bfvc15', 'bfvc18', 'bfvc20', 'bfvcB', 'bfvcUnrated']):
            raise ValueError("must be one of enum values ('bfvcUnspecified', 'bfvcG', 'bfvcE', 'bfvc13', 'bfvc15', 'bfvc18', 'bfvc20', 'bfvcB', 'bfvcUnrated')")
        return value

    @field_validator('bmukk_rating')
    def bmukk_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['bmukkUnspecified', 'bmukkAa', 'bmukk6', 'bmukk8', 'bmukk10', 'bmukk12', 'bmukk14', 'bmukk16', 'bmukkUnrated']):
            raise ValueError("must be one of enum values ('bmukkUnspecified', 'bmukkAa', 'bmukk6', 'bmukk8', 'bmukk10', 'bmukk12', 'bmukk14', 'bmukk16', 'bmukkUnrated')")
        return value

    @field_validator('catv_rating')
    def catv_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['catvUnspecified', 'catvC', 'catvC8', 'catvG', 'catvPg', 'catv14plus', 'catv18plus', 'catvUnrated', 'catvE']):
            raise ValueError("must be one of enum values ('catvUnspecified', 'catvC', 'catvC8', 'catvG', 'catvPg', 'catv14plus', 'catv18plus', 'catvUnrated', 'catvE')")
        return value

    @field_validator('catvfr_rating')
    def catvfr_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['catvfrUnspecified', 'catvfrG', 'catvfr8plus', 'catvfr13plus', 'catvfr16plus', 'catvfr18plus', 'catvfrUnrated', 'catvfrE']):
            raise ValueError("must be one of enum values ('catvfrUnspecified', 'catvfrG', 'catvfr8plus', 'catvfr13plus', 'catvfr16plus', 'catvfr18plus', 'catvfrUnrated', 'catvfrE')")
        return value

    @field_validator('cbfc_rating')
    def cbfc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cbfcUnspecified', 'cbfcU', 'cbfcUA', 'cbfcUA7plus', 'cbfcUA13plus', 'cbfcUA16plus', 'cbfcA', 'cbfcS', 'cbfcUnrated']):
            raise ValueError("must be one of enum values ('cbfcUnspecified', 'cbfcU', 'cbfcUA', 'cbfcUA7plus', 'cbfcUA13plus', 'cbfcUA16plus', 'cbfcA', 'cbfcS', 'cbfcUnrated')")
        return value

    @field_validator('ccc_rating')
    def ccc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cccUnspecified', 'cccTe', 'ccc6', 'ccc14', 'ccc18', 'ccc18v', 'ccc18s', 'cccUnrated']):
            raise ValueError("must be one of enum values ('cccUnspecified', 'cccTe', 'ccc6', 'ccc14', 'ccc18', 'ccc18v', 'ccc18s', 'cccUnrated')")
        return value

    @field_validator('cce_rating')
    def cce_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cceUnspecified', 'cceM4', 'cceM6', 'cceM12', 'cceM16', 'cceM18', 'cceUnrated', 'cceM14']):
            raise ValueError("must be one of enum values ('cceUnspecified', 'cceM4', 'cceM6', 'cceM12', 'cceM16', 'cceM18', 'cceUnrated', 'cceM14')")
        return value

    @field_validator('chfilm_rating')
    def chfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['chfilmUnspecified', 'chfilm0', 'chfilm6', 'chfilm12', 'chfilm16', 'chfilm18', 'chfilmUnrated']):
            raise ValueError("must be one of enum values ('chfilmUnspecified', 'chfilm0', 'chfilm6', 'chfilm12', 'chfilm16', 'chfilm18', 'chfilmUnrated')")
        return value

    @field_validator('chvrs_rating')
    def chvrs_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['chvrsUnspecified', 'chvrsG', 'chvrsPg', 'chvrs14a', 'chvrs18a', 'chvrsR', 'chvrsE', 'chvrsUnrated']):
            raise ValueError("must be one of enum values ('chvrsUnspecified', 'chvrsG', 'chvrsPg', 'chvrs14a', 'chvrs18a', 'chvrsR', 'chvrsE', 'chvrsUnrated')")
        return value

    @field_validator('cicf_rating')
    def cicf_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cicfUnspecified', 'cicfE', 'cicfKtEa', 'cicfKntEna', 'cicfUnrated']):
            raise ValueError("must be one of enum values ('cicfUnspecified', 'cicfE', 'cicfKtEa', 'cicfKntEna', 'cicfUnrated')")
        return value

    @field_validator('cna_rating')
    def cna_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cnaUnspecified', 'cnaAp', 'cna12', 'cna15', 'cna18', 'cna18plus', 'cnaUnrated']):
            raise ValueError("must be one of enum values ('cnaUnspecified', 'cnaAp', 'cna12', 'cna15', 'cna18', 'cna18plus', 'cnaUnrated')")
        return value

    @field_validator('cnc_rating')
    def cnc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cncUnspecified', 'cncT', 'cnc10', 'cnc12', 'cnc16', 'cnc18', 'cncE', 'cncInterdiction', 'cncUnrated']):
            raise ValueError("must be one of enum values ('cncUnspecified', 'cncT', 'cnc10', 'cnc12', 'cnc16', 'cnc18', 'cncE', 'cncInterdiction', 'cncUnrated')")
        return value

    @field_validator('csa_rating')
    def csa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['csaUnspecified', 'csaT', 'csa10', 'csa12', 'csa16', 'csa18', 'csaInterdiction', 'csaUnrated']):
            raise ValueError("must be one of enum values ('csaUnspecified', 'csaT', 'csa10', 'csa12', 'csa16', 'csa18', 'csaInterdiction', 'csaUnrated')")
        return value

    @field_validator('cscf_rating')
    def cscf_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['cscfUnspecified', 'cscfAl', 'cscfA', 'cscf6', 'cscf9', 'cscf12', 'cscf16', 'cscf18', 'cscfUnrated']):
            raise ValueError("must be one of enum values ('cscfUnspecified', 'cscfAl', 'cscfA', 'cscf6', 'cscf9', 'cscf12', 'cscf16', 'cscf18', 'cscfUnrated')")
        return value

    @field_validator('czfilm_rating')
    def czfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['czfilmUnspecified', 'czfilmU', 'czfilm12', 'czfilm14', 'czfilm18', 'czfilmUnrated']):
            raise ValueError("must be one of enum values ('czfilmUnspecified', 'czfilmU', 'czfilm12', 'czfilm14', 'czfilm18', 'czfilmUnrated')")
        return value

    @field_validator('djctq_rating')
    def djctq_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['djctqUnspecified', 'djctqL', 'djctq10', 'djctq12', 'djctq14', 'djctq16', 'djctq18', 'djctqEr', 'djctqL10', 'djctqL12', 'djctqL14', 'djctqL16', 'djctqL18', 'djctq1012', 'djctq1014', 'djctq1016', 'djctq1018', 'djctq1214', 'djctq1216', 'djctq1218', 'djctq1416', 'djctq1418', 'djctq1618', 'djctqUnrated']):
            raise ValueError("must be one of enum values ('djctqUnspecified', 'djctqL', 'djctq10', 'djctq12', 'djctq14', 'djctq16', 'djctq18', 'djctqEr', 'djctqL10', 'djctqL12', 'djctqL14', 'djctqL16', 'djctqL18', 'djctq1012', 'djctq1014', 'djctq1016', 'djctq1018', 'djctq1214', 'djctq1216', 'djctq1218', 'djctq1416', 'djctq1418', 'djctq1618', 'djctqUnrated')")
        return value

    @field_validator('djctq_rating_reasons')
    def djctq_rating_reasons_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        for i in value:
            if i not in set(['djctqRatingReasonUnspecified', 'djctqViolence', 'djctqExtremeViolence', 'djctqSexualContent', 'djctqNudity', 'djctqSex', 'djctqExplicitSex', 'djctqDrugs', 'djctqLegalDrugs', 'djctqIllegalDrugs', 'djctqInappropriateLanguage', 'djctqCriminalActs', 'djctqImpactingContent']):
                raise ValueError("each list item must be one of ('djctqRatingReasonUnspecified', 'djctqViolence', 'djctqExtremeViolence', 'djctqSexualContent', 'djctqNudity', 'djctqSex', 'djctqExplicitSex', 'djctqDrugs', 'djctqLegalDrugs', 'djctqIllegalDrugs', 'djctqInappropriateLanguage', 'djctqCriminalActs', 'djctqImpactingContent')")
        return value

    @field_validator('ecbmct_rating')
    def ecbmct_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['ecbmctUnspecified', 'ecbmctG', 'ecbmct7a', 'ecbmct7plus', 'ecbmct13a', 'ecbmct13plus', 'ecbmct15a', 'ecbmct15plus', 'ecbmct18plus', 'ecbmctUnrated']):
            raise ValueError("must be one of enum values ('ecbmctUnspecified', 'ecbmctG', 'ecbmct7a', 'ecbmct7plus', 'ecbmct13a', 'ecbmct13plus', 'ecbmct15a', 'ecbmct15plus', 'ecbmct18plus', 'ecbmctUnrated')")
        return value

    @field_validator('eefilm_rating')
    def eefilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['eefilmUnspecified', 'eefilmPere', 'eefilmL', 'eefilmMs6', 'eefilmK6', 'eefilmMs12', 'eefilmK12', 'eefilmK14', 'eefilmK16', 'eefilmUnrated']):
            raise ValueError("must be one of enum values ('eefilmUnspecified', 'eefilmPere', 'eefilmL', 'eefilmMs6', 'eefilmK6', 'eefilmMs12', 'eefilmK12', 'eefilmK14', 'eefilmK16', 'eefilmUnrated')")
        return value

    @field_validator('egfilm_rating')
    def egfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['egfilmUnspecified', 'egfilmGn', 'egfilm18', 'egfilmBn', 'egfilmUnrated']):
            raise ValueError("must be one of enum values ('egfilmUnspecified', 'egfilmGn', 'egfilm18', 'egfilmBn', 'egfilmUnrated')")
        return value

    @field_validator('eirin_rating')
    def eirin_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['eirinUnspecified', 'eirinG', 'eirinPg12', 'eirinR15plus', 'eirinR18plus', 'eirinUnrated']):
            raise ValueError("must be one of enum values ('eirinUnspecified', 'eirinG', 'eirinPg12', 'eirinR15plus', 'eirinR18plus', 'eirinUnrated')")
        return value

    @field_validator('fcbm_rating')
    def fcbm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['fcbmUnspecified', 'fcbmU', 'fcbmPg13', 'fcbmP13', 'fcbm18', 'fcbm18sx', 'fcbm18pa', 'fcbm18sg', 'fcbm18pl', 'fcbmUnrated']):
            raise ValueError("must be one of enum values ('fcbmUnspecified', 'fcbmU', 'fcbmPg13', 'fcbmP13', 'fcbm18', 'fcbm18sx', 'fcbm18pa', 'fcbm18sg', 'fcbm18pl', 'fcbmUnrated')")
        return value

    @field_validator('fco_rating')
    def fco_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['fcoUnspecified', 'fcoI', 'fcoIia', 'fcoIib', 'fcoIi', 'fcoIii', 'fcoUnrated']):
            raise ValueError("must be one of enum values ('fcoUnspecified', 'fcoI', 'fcoIia', 'fcoIib', 'fcoIi', 'fcoIii', 'fcoUnrated')")
        return value

    @field_validator('fmoc_rating')
    def fmoc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['fmocUnspecified', 'fmocU', 'fmoc10', 'fmoc12', 'fmoc16', 'fmoc18', 'fmocE', 'fmocUnrated']):
            raise ValueError("must be one of enum values ('fmocUnspecified', 'fmocU', 'fmoc10', 'fmoc12', 'fmoc16', 'fmoc18', 'fmocE', 'fmocUnrated')")
        return value

    @field_validator('fpb_rating')
    def fpb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['fpbUnspecified', 'fpbA', 'fpbPg', 'fpb79Pg', 'fpb1012Pg', 'fpb13', 'fpb16', 'fpb18', 'fpbX18', 'fpbXx', 'fpbUnrated', 'fpb10']):
            raise ValueError("must be one of enum values ('fpbUnspecified', 'fpbA', 'fpbPg', 'fpb79Pg', 'fpb1012Pg', 'fpb13', 'fpb16', 'fpb18', 'fpbX18', 'fpbXx', 'fpbUnrated', 'fpb10')")
        return value

    @field_validator('fpb_rating_reasons')
    def fpb_rating_reasons_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        for i in value:
            if i not in set(['fpbRatingReasonUnspecified', 'fpbBlasphemy', 'fpbLanguage', 'fpbNudity', 'fpbPrejudice', 'fpbSex', 'fpbViolence', 'fpbDrugs', 'fpbSexualViolence', 'fpbHorror', 'fpbCriminalTechniques', 'fpbImitativeActsTechniques']):
                raise ValueError("each list item must be one of ('fpbRatingReasonUnspecified', 'fpbBlasphemy', 'fpbLanguage', 'fpbNudity', 'fpbPrejudice', 'fpbSex', 'fpbViolence', 'fpbDrugs', 'fpbSexualViolence', 'fpbHorror', 'fpbCriminalTechniques', 'fpbImitativeActsTechniques')")
        return value

    @field_validator('fsk_rating')
    def fsk_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['fskUnspecified', 'fsk0', 'fsk6', 'fsk12', 'fsk16', 'fsk18', 'fskUnrated']):
            raise ValueError("must be one of enum values ('fskUnspecified', 'fsk0', 'fsk6', 'fsk12', 'fsk16', 'fsk18', 'fskUnrated')")
        return value

    @field_validator('grfilm_rating')
    def grfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['grfilmUnspecified', 'grfilmK', 'grfilmE', 'grfilmK12', 'grfilmK13', 'grfilmK15', 'grfilmK17', 'grfilmK18', 'grfilmUnrated']):
            raise ValueError("must be one of enum values ('grfilmUnspecified', 'grfilmK', 'grfilmE', 'grfilmK12', 'grfilmK13', 'grfilmK15', 'grfilmK17', 'grfilmK18', 'grfilmUnrated')")
        return value

    @field_validator('icaa_rating')
    def icaa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['icaaUnspecified', 'icaaApta', 'icaa7', 'icaa12', 'icaa13', 'icaa16', 'icaa18', 'icaaX', 'icaaUnrated']):
            raise ValueError("must be one of enum values ('icaaUnspecified', 'icaaApta', 'icaa7', 'icaa12', 'icaa13', 'icaa16', 'icaa18', 'icaaX', 'icaaUnrated')")
        return value

    @field_validator('ifco_rating')
    def ifco_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['ifcoUnspecified', 'ifcoG', 'ifcoPg', 'ifco12', 'ifco12a', 'ifco15', 'ifco15a', 'ifco16', 'ifco18', 'ifcoUnrated']):
            raise ValueError("must be one of enum values ('ifcoUnspecified', 'ifcoG', 'ifcoPg', 'ifco12', 'ifco12a', 'ifco15', 'ifco15a', 'ifco16', 'ifco18', 'ifcoUnrated')")
        return value

    @field_validator('ilfilm_rating')
    def ilfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['ilfilmUnspecified', 'ilfilmAa', 'ilfilm12', 'ilfilm14', 'ilfilm16', 'ilfilm18', 'ilfilmUnrated']):
            raise ValueError("must be one of enum values ('ilfilmUnspecified', 'ilfilmAa', 'ilfilm12', 'ilfilm14', 'ilfilm16', 'ilfilm18', 'ilfilmUnrated')")
        return value

    @field_validator('incaa_rating')
    def incaa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['incaaUnspecified', 'incaaAtp', 'incaaSam13', 'incaaSam16', 'incaaSam18', 'incaaC', 'incaaUnrated']):
            raise ValueError("must be one of enum values ('incaaUnspecified', 'incaaAtp', 'incaaSam13', 'incaaSam16', 'incaaSam18', 'incaaC', 'incaaUnrated')")
        return value

    @field_validator('kfcb_rating')
    def kfcb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['kfcbUnspecified', 'kfcbG', 'kfcbPg', 'kfcb16plus', 'kfcbR', 'kfcbUnrated']):
            raise ValueError("must be one of enum values ('kfcbUnspecified', 'kfcbG', 'kfcbPg', 'kfcb16plus', 'kfcbR', 'kfcbUnrated')")
        return value

    @field_validator('kijkwijzer_rating')
    def kijkwijzer_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['kijkwijzerUnspecified', 'kijkwijzerAl', 'kijkwijzer6', 'kijkwijzer9', 'kijkwijzer12', 'kijkwijzer16', 'kijkwijzer18', 'kijkwijzerUnrated']):
            raise ValueError("must be one of enum values ('kijkwijzerUnspecified', 'kijkwijzerAl', 'kijkwijzer6', 'kijkwijzer9', 'kijkwijzer12', 'kijkwijzer16', 'kijkwijzer18', 'kijkwijzerUnrated')")
        return value

    @field_validator('kmrb_rating')
    def kmrb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['kmrbUnspecified', 'kmrbAll', 'kmrb12plus', 'kmrb15plus', 'kmrbTeenr', 'kmrbR', 'kmrbUnrated']):
            raise ValueError("must be one of enum values ('kmrbUnspecified', 'kmrbAll', 'kmrb12plus', 'kmrb15plus', 'kmrbTeenr', 'kmrbR', 'kmrbUnrated')")
        return value

    @field_validator('lsf_rating')
    def lsf_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['lsfUnspecified', 'lsfSu', 'lsfA', 'lsfBo', 'lsf13', 'lsfR', 'lsf17', 'lsfD', 'lsf21', 'lsfUnrated']):
            raise ValueError("must be one of enum values ('lsfUnspecified', 'lsfSu', 'lsfA', 'lsfBo', 'lsf13', 'lsfR', 'lsf17', 'lsfD', 'lsf21', 'lsfUnrated')")
        return value

    @field_validator('mccaa_rating')
    def mccaa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mccaaUnspecified', 'mccaaU', 'mccaaPg', 'mccaa12a', 'mccaa12', 'mccaa14', 'mccaa15', 'mccaa16', 'mccaa18', 'mccaaUnrated']):
            raise ValueError("must be one of enum values ('mccaaUnspecified', 'mccaaU', 'mccaaPg', 'mccaa12a', 'mccaa12', 'mccaa14', 'mccaa15', 'mccaa16', 'mccaa18', 'mccaaUnrated')")
        return value

    @field_validator('mccyp_rating')
    def mccyp_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mccypUnspecified', 'mccypA', 'mccyp7', 'mccyp11', 'mccyp15', 'mccypUnrated']):
            raise ValueError("must be one of enum values ('mccypUnspecified', 'mccypA', 'mccyp7', 'mccyp11', 'mccyp15', 'mccypUnrated')")
        return value

    @field_validator('mcst_rating')
    def mcst_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mcstUnspecified', 'mcstP', 'mcst0', 'mcstC13', 'mcstC16', 'mcst16plus', 'mcstC18', 'mcstGPg', 'mcstUnrated']):
            raise ValueError("must be one of enum values ('mcstUnspecified', 'mcstP', 'mcst0', 'mcstC13', 'mcstC16', 'mcst16plus', 'mcstC18', 'mcstGPg', 'mcstUnrated')")
        return value

    @field_validator('mda_rating')
    def mda_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mdaUnspecified', 'mdaG', 'mdaPg', 'mdaPg13', 'mdaNc16', 'mdaM18', 'mdaR21', 'mdaUnrated']):
            raise ValueError("must be one of enum values ('mdaUnspecified', 'mdaG', 'mdaPg', 'mdaPg13', 'mdaNc16', 'mdaM18', 'mdaR21', 'mdaUnrated')")
        return value

    @field_validator('medietilsynet_rating')
    def medietilsynet_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['medietilsynetUnspecified', 'medietilsynetA', 'medietilsynet6', 'medietilsynet7', 'medietilsynet9', 'medietilsynet11', 'medietilsynet12', 'medietilsynet15', 'medietilsynet18', 'medietilsynetUnrated']):
            raise ValueError("must be one of enum values ('medietilsynetUnspecified', 'medietilsynetA', 'medietilsynet6', 'medietilsynet7', 'medietilsynet9', 'medietilsynet11', 'medietilsynet12', 'medietilsynet15', 'medietilsynet18', 'medietilsynetUnrated')")
        return value

    @field_validator('meku_rating')
    def meku_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mekuUnspecified', 'mekuS', 'meku7', 'meku12', 'meku16', 'meku18', 'mekuUnrated']):
            raise ValueError("must be one of enum values ('mekuUnspecified', 'mekuS', 'meku7', 'meku12', 'meku16', 'meku18', 'mekuUnrated')")
        return value

    @field_validator('mena_mpaa_rating')
    def mena_mpaa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['menaMpaaUnspecified', 'menaMpaaG', 'menaMpaaPg', 'menaMpaaPg13', 'menaMpaaR', 'menaMpaaUnrated']):
            raise ValueError("must be one of enum values ('menaMpaaUnspecified', 'menaMpaaG', 'menaMpaaPg', 'menaMpaaPg13', 'menaMpaaR', 'menaMpaaUnrated')")
        return value

    @field_validator('mibac_rating')
    def mibac_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mibacUnspecified', 'mibacT', 'mibacVap', 'mibacVm6', 'mibacVm12', 'mibacVm14', 'mibacVm16', 'mibacVm18', 'mibacUnrated']):
            raise ValueError("must be one of enum values ('mibacUnspecified', 'mibacT', 'mibacVap', 'mibacVm6', 'mibacVm12', 'mibacVm14', 'mibacVm16', 'mibacVm18', 'mibacUnrated')")
        return value

    @field_validator('moc_rating')
    def moc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mocUnspecified', 'mocE', 'mocT', 'moc7', 'moc12', 'moc15', 'moc18', 'mocX', 'mocBanned', 'mocUnrated']):
            raise ValueError("must be one of enum values ('mocUnspecified', 'mocE', 'mocT', 'moc7', 'moc12', 'moc15', 'moc18', 'mocX', 'mocBanned', 'mocUnrated')")
        return value

    @field_validator('moctw_rating')
    def moctw_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['moctwUnspecified', 'moctwG', 'moctwP', 'moctwPg', 'moctwR', 'moctwUnrated', 'moctwR12', 'moctwR15']):
            raise ValueError("must be one of enum values ('moctwUnspecified', 'moctwG', 'moctwP', 'moctwPg', 'moctwR', 'moctwUnrated', 'moctwR12', 'moctwR15')")
        return value

    @field_validator('mpaa_rating')
    def mpaa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mpaaUnspecified', 'mpaaG', 'mpaaPg', 'mpaaPg13', 'mpaaR', 'mpaaNc17', 'mpaaX', 'mpaaUnrated']):
            raise ValueError("must be one of enum values ('mpaaUnspecified', 'mpaaG', 'mpaaPg', 'mpaaPg13', 'mpaaR', 'mpaaNc17', 'mpaaX', 'mpaaUnrated')")
        return value

    @field_validator('mpaat_rating')
    def mpaat_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mpaatUnspecified', 'mpaatGb', 'mpaatRb']):
            raise ValueError("must be one of enum values ('mpaatUnspecified', 'mpaatGb', 'mpaatRb')")
        return value

    @field_validator('mtrcb_rating')
    def mtrcb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['mtrcbUnspecified', 'mtrcbG', 'mtrcbPg', 'mtrcbR13', 'mtrcbR16', 'mtrcbR18', 'mtrcbX', 'mtrcbUnrated']):
            raise ValueError("must be one of enum values ('mtrcbUnspecified', 'mtrcbG', 'mtrcbPg', 'mtrcbR13', 'mtrcbR16', 'mtrcbR18', 'mtrcbX', 'mtrcbUnrated')")
        return value

    @field_validator('nbc_rating')
    def nbc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nbcUnspecified', 'nbcG', 'nbcPg', 'nbc12plus', 'nbc15plus', 'nbc18plus', 'nbc18plusr', 'nbcPu', 'nbcUnrated']):
            raise ValueError("must be one of enum values ('nbcUnspecified', 'nbcG', 'nbcPg', 'nbc12plus', 'nbc15plus', 'nbc18plus', 'nbc18plusr', 'nbcPu', 'nbcUnrated')")
        return value

    @field_validator('nbcpl_rating')
    def nbcpl_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nbcplUnspecified', 'nbcplI', 'nbcplIi', 'nbcplIii', 'nbcplIv', 'nbcpl18plus', 'nbcplUnrated']):
            raise ValueError("must be one of enum values ('nbcplUnspecified', 'nbcplI', 'nbcplIi', 'nbcplIii', 'nbcplIv', 'nbcpl18plus', 'nbcplUnrated')")
        return value

    @field_validator('nfrc_rating')
    def nfrc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nfrcUnspecified', 'nfrcA', 'nfrcB', 'nfrcC', 'nfrcD', 'nfrcX', 'nfrcUnrated']):
            raise ValueError("must be one of enum values ('nfrcUnspecified', 'nfrcA', 'nfrcB', 'nfrcC', 'nfrcD', 'nfrcX', 'nfrcUnrated')")
        return value

    @field_validator('nfvcb_rating')
    def nfvcb_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nfvcbUnspecified', 'nfvcbG', 'nfvcbPg', 'nfvcb12', 'nfvcb12a', 'nfvcb15', 'nfvcb18', 'nfvcbRe', 'nfvcbUnrated']):
            raise ValueError("must be one of enum values ('nfvcbUnspecified', 'nfvcbG', 'nfvcbPg', 'nfvcb12', 'nfvcb12a', 'nfvcb15', 'nfvcb18', 'nfvcbRe', 'nfvcbUnrated')")
        return value

    @field_validator('nkclv_rating')
    def nkclv_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nkclvUnspecified', 'nkclvU', 'nkclv7plus', 'nkclv12plus', 'nkclv16plus', 'nkclv18plus', 'nkclvUnrated']):
            raise ValueError("must be one of enum values ('nkclvUnspecified', 'nkclvU', 'nkclv7plus', 'nkclv12plus', 'nkclv16plus', 'nkclv18plus', 'nkclvUnrated')")
        return value

    @field_validator('nmc_rating')
    def nmc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['nmcUnspecified', 'nmcG', 'nmcPg', 'nmcPg13', 'nmcPg15', 'nmc15plus', 'nmc18plus', 'nmc18tc', 'nmcUnrated']):
            raise ValueError("must be one of enum values ('nmcUnspecified', 'nmcG', 'nmcPg', 'nmcPg13', 'nmcPg15', 'nmc15plus', 'nmc18plus', 'nmc18tc', 'nmcUnrated')")
        return value

    @field_validator('oflc_rating')
    def oflc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['oflcUnspecified', 'oflcG', 'oflcPg', 'oflcM', 'oflcR13', 'oflcR15', 'oflcR16', 'oflcR18', 'oflcUnrated', 'oflcRp13', 'oflcRp16', 'oflcRp18']):
            raise ValueError("must be one of enum values ('oflcUnspecified', 'oflcG', 'oflcPg', 'oflcM', 'oflcR13', 'oflcR15', 'oflcR16', 'oflcR18', 'oflcUnrated', 'oflcRp13', 'oflcRp16', 'oflcRp18')")
        return value

    @field_validator('pefilm_rating')
    def pefilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['pefilmUnspecified', 'pefilmPt', 'pefilmPg', 'pefilm14', 'pefilm18', 'pefilmUnrated']):
            raise ValueError("must be one of enum values ('pefilmUnspecified', 'pefilmPt', 'pefilmPg', 'pefilm14', 'pefilm18', 'pefilmUnrated')")
        return value

    @field_validator('rcnof_rating')
    def rcnof_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['rcnofUnspecified', 'rcnofI', 'rcnofIi', 'rcnofIii', 'rcnofIv', 'rcnofV', 'rcnofVi', 'rcnofUnrated']):
            raise ValueError("must be one of enum values ('rcnofUnspecified', 'rcnofI', 'rcnofIi', 'rcnofIii', 'rcnofIv', 'rcnofV', 'rcnofVi', 'rcnofUnrated')")
        return value

    @field_validator('resorteviolencia_rating')
    def resorteviolencia_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['resorteviolenciaUnspecified', 'resorteviolenciaA', 'resorteviolenciaB', 'resorteviolenciaC', 'resorteviolenciaD', 'resorteviolenciaE', 'resorteviolenciaUnrated']):
            raise ValueError("must be one of enum values ('resorteviolenciaUnspecified', 'resorteviolenciaA', 'resorteviolenciaB', 'resorteviolenciaC', 'resorteviolenciaD', 'resorteviolenciaE', 'resorteviolenciaUnrated')")
        return value

    @field_validator('rtc_rating')
    def rtc_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['rtcUnspecified', 'rtcAa', 'rtcA', 'rtcB', 'rtcB15', 'rtcC', 'rtcD', 'rtcUnrated']):
            raise ValueError("must be one of enum values ('rtcUnspecified', 'rtcAa', 'rtcA', 'rtcB', 'rtcB15', 'rtcC', 'rtcD', 'rtcUnrated')")
        return value

    @field_validator('rte_rating')
    def rte_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['rteUnspecified', 'rteGa', 'rteCh', 'rtePs', 'rteMa', 'rteUnrated']):
            raise ValueError("must be one of enum values ('rteUnspecified', 'rteGa', 'rteCh', 'rtePs', 'rteMa', 'rteUnrated')")
        return value

    @field_validator('russia_rating')
    def russia_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['russiaUnspecified', 'russia0', 'russia6', 'russia12', 'russia16', 'russia18', 'russiaUnrated']):
            raise ValueError("must be one of enum values ('russiaUnspecified', 'russia0', 'russia6', 'russia12', 'russia16', 'russia18', 'russiaUnrated')")
        return value

    @field_validator('skfilm_rating')
    def skfilm_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['skfilmUnspecified', 'skfilmG', 'skfilmP2', 'skfilmP5', 'skfilmP8', 'skfilmUnrated']):
            raise ValueError("must be one of enum values ('skfilmUnspecified', 'skfilmG', 'skfilmP2', 'skfilmP5', 'skfilmP8', 'skfilmUnrated')")
        return value

    @field_validator('smais_rating')
    def smais_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['smaisUnspecified', 'smaisL', 'smais7', 'smais12', 'smais14', 'smais16', 'smais18', 'smaisUnrated']):
            raise ValueError("must be one of enum values ('smaisUnspecified', 'smaisL', 'smais7', 'smais12', 'smais14', 'smais16', 'smais18', 'smaisUnrated')")
        return value

    @field_validator('smsa_rating')
    def smsa_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['smsaUnspecified', 'smsaA', 'smsa7', 'smsa11', 'smsa15', 'smsaUnrated']):
            raise ValueError("must be one of enum values ('smsaUnspecified', 'smsaA', 'smsa7', 'smsa11', 'smsa15', 'smsaUnrated')")
        return value

    @field_validator('tvpg_rating')
    def tvpg_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['tvpgUnspecified', 'tvpgY', 'tvpgY7', 'tvpgY7Fv', 'tvpgG', 'tvpgPg', 'pg14', 'tvpgMa', 'tvpgUnrated']):
            raise ValueError("must be one of enum values ('tvpgUnspecified', 'tvpgY', 'tvpgY7', 'tvpgY7Fv', 'tvpgG', 'tvpgPg', 'pg14', 'tvpgMa', 'tvpgUnrated')")
        return value

    @field_validator('yt_rating')
    def yt_rating_validate_enum(cls, value):
        """Validates the enum"""
        if value is None:
            return value

        if value not in set(['ytUnspecified', 'ytAgeRestricted']):
            raise ValueError("must be one of enum values ('ytUnspecified', 'ytAgeRestricted')")
        return value

    model_config = ConfigDict(
        populate_by_name=True,
        validate_assignment=True,
        protected_namespaces=(),
    )


    def to_str(self) -> str:
        """Returns the string representation of the model using alias"""
        return pprint.pformat(self.model_dump(by_alias=True))

    def to_json(self) -> str:
        """Returns the JSON representation of the model using alias"""
        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
        return json.dumps(self.to_dict())

    @classmethod
    def from_json(cls, json_str: str) -> Optional[Self]:
        """Create an instance of ContentRating from a JSON string"""
        return cls.from_dict(json.loads(json_str))

    def to_dict(self) -> Dict[str, Any]:
        """Return the dictionary representation of the model using alias.

        This has the following differences from calling pydantic's
        `self.model_dump(by_alias=True)`:

        * `None` is only added to the output dict for nullable fields that
          were set at model initialization. Other fields with value `None`
          are ignored.
        """
        excluded_fields: Set[str] = set([
        ])

        _dict = self.model_dump(
            by_alias=True,
            exclude=excluded_fields,
            exclude_none=True,
        )
        return _dict

    @classmethod
    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
        """Create an instance of ContentRating from a dict"""
        if obj is None:
            return None

        if not isinstance(obj, dict):
            return cls.model_validate(obj)

        _obj = cls.model_validate({
            "acbRating": obj.get("acbRating"),
            "agcomRating": obj.get("agcomRating"),
            "anatelRating": obj.get("anatelRating"),
            "bbfcRating": obj.get("bbfcRating"),
            "bfvcRating": obj.get("bfvcRating"),
            "bmukkRating": obj.get("bmukkRating"),
            "catvRating": obj.get("catvRating"),
            "catvfrRating": obj.get("catvfrRating"),
            "cbfcRating": obj.get("cbfcRating"),
            "cccRating": obj.get("cccRating"),
            "cceRating": obj.get("cceRating"),
            "chfilmRating": obj.get("chfilmRating"),
            "chvrsRating": obj.get("chvrsRating"),
            "cicfRating": obj.get("cicfRating"),
            "cnaRating": obj.get("cnaRating"),
            "cncRating": obj.get("cncRating"),
            "csaRating": obj.get("csaRating"),
            "cscfRating": obj.get("cscfRating"),
            "czfilmRating": obj.get("czfilmRating"),
            "djctqRating": obj.get("djctqRating"),
            "djctqRatingReasons": obj.get("djctqRatingReasons"),
            "ecbmctRating": obj.get("ecbmctRating"),
            "eefilmRating": obj.get("eefilmRating"),
            "egfilmRating": obj.get("egfilmRating"),
            "eirinRating": obj.get("eirinRating"),
            "fcbmRating": obj.get("fcbmRating"),
            "fcoRating": obj.get("fcoRating"),
            "fmocRating": obj.get("fmocRating"),
            "fpbRating": obj.get("fpbRating"),
            "fpbRatingReasons": obj.get("fpbRatingReasons"),
            "fskRating": obj.get("fskRating"),
            "grfilmRating": obj.get("grfilmRating"),
            "icaaRating": obj.get("icaaRating"),
            "ifcoRating": obj.get("ifcoRating"),
            "ilfilmRating": obj.get("ilfilmRating"),
            "incaaRating": obj.get("incaaRating"),
            "kfcbRating": obj.get("kfcbRating"),
            "kijkwijzerRating": obj.get("kijkwijzerRating"),
            "kmrbRating": obj.get("kmrbRating"),
            "lsfRating": obj.get("lsfRating"),
            "mccaaRating": obj.get("mccaaRating"),
            "mccypRating": obj.get("mccypRating"),
            "mcstRating": obj.get("mcstRating"),
            "mdaRating": obj.get("mdaRating"),
            "medietilsynetRating": obj.get("medietilsynetRating"),
            "mekuRating": obj.get("mekuRating"),
            "menaMpaaRating": obj.get("menaMpaaRating"),
            "mibacRating": obj.get("mibacRating"),
            "mocRating": obj.get("mocRating"),
            "moctwRating": obj.get("moctwRating"),
            "mpaaRating": obj.get("mpaaRating"),
            "mpaatRating": obj.get("mpaatRating"),
            "mtrcbRating": obj.get("mtrcbRating"),
            "nbcRating": obj.get("nbcRating"),
            "nbcplRating": obj.get("nbcplRating"),
            "nfrcRating": obj.get("nfrcRating"),
            "nfvcbRating": obj.get("nfvcbRating"),
            "nkclvRating": obj.get("nkclvRating"),
            "nmcRating": obj.get("nmcRating"),
            "oflcRating": obj.get("oflcRating"),
            "pefilmRating": obj.get("pefilmRating"),
            "rcnofRating": obj.get("rcnofRating"),
            "resorteviolenciaRating": obj.get("resorteviolenciaRating"),
            "rtcRating": obj.get("rtcRating"),
            "rteRating": obj.get("rteRating"),
            "russiaRating": obj.get("russiaRating"),
            "skfilmRating": obj.get("skfilmRating"),
            "smaisRating": obj.get("smaisRating"),
            "smsaRating": obj.get("smsaRating"),
            "tvpgRating": obj.get("tvpgRating"),
            "ytRating": obj.get("ytRating")
        })
        return _obj


