Models

from typing import Any, Dict, List, Literal, Optional, Union

VariableOptionTypeDef = Literal["variable"]

GlobalOptionTypeDef = Literal["global"]

Ipv4SubnetMaskDef = Literal[
    "0.0.0.0",
    "128.0.0.0",
    "192.0.0.0",
    "224.0.0.0",
    "240.0.0.0",
    "248.0.0.0",
    "252.0.0.0",
    "254.0.0.0",
    "255.0.0.0",
    "255.128.0.0",
    "255.192.0.0",
    "255.224.0.0",
    "255.240.0.0",
    "255.252.0.0",
    "255.254.0.0",
    "255.255.0.0",
    "255.255.128.0",
    "255.255.192.0",
    "255.255.224.0",
    "255.255.240.0",
    "255.255.248.0",
    "255.255.252.0",
    "255.255.254.0",
    "255.255.255.0",
    "255.255.255.128",
    "255.255.255.192",
    "255.255.255.224",
    "255.255.255.240",
    "255.255.255.248",
    "255.255.255.252",
    "255.255.255.254",
    "255.255.255.255",
]

DefaultOptionTypeDef = Literal["default"]


class OneOfIpV4AddressOptionsDef1:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfIpV4AddressOptionsDef2:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfIpV4SubnetMaskOptionsDef1:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfIpV4SubnetMaskOptionsDef2:
    option_type: GlobalOptionTypeDef
    value: (
        Ipv4SubnetMaskDef  # pytype: disable=annotation-type-mismatch
    )


class AddressPool:
    """
    Configure IPv4 prefix range of the DHCP address pool
    """

    network_address: Union[
        OneOfIpV4AddressOptionsDef1, OneOfIpV4AddressOptionsDef2
    ]
    subnet_mask: Union[
        OneOfIpV4SubnetMaskOptionsDef1, OneOfIpV4SubnetMaskOptionsDef2
    ]


class OneOfExcludeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Union[Any, str]]


class OneOfExcludeOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfExcludeOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfOnBooleanDefaultFalseNoVariableOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: bool


class OneOfOnBooleanDefaultFalseNoVariableOptionsDef2:
    option_type: DefaultOptionTypeDef
    value: bool


class OneOfLeaseTimeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class OneOfLeaseTimeOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfLeaseTimeOptionsDef3:
    option_type: Optional[DefaultOptionTypeDef]
    value: Optional[int]


class OneOfInterfaceMtuOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class OneOfInterfaceMtuOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfInterfaceMtuOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfDomainNameOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfDomainNameOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfDomainNameOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfDefaultGatewayOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfDefaultGatewayOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfDefaultGatewayOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfDnsServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class OneOfDnsServersOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfDnsServersOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfTftpServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class OneOfTftpServersOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfTftpServersOptionsDef3:
    option_type: DefaultOptionTypeDef


class OneOfStaticLeaseMacAddressOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfStaticLeaseMacAddressOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfStaticLeaseIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfStaticLeaseIpOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class StaticLease:
    ip: Union[
        OneOfStaticLeaseIpOptionsDef1, OneOfStaticLeaseIpOptionsDef2
    ]
    mac_address: Union[
        OneOfStaticLeaseMacAddressOptionsDef1,
        OneOfStaticLeaseMacAddressOptionsDef2,
    ]


class OneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class OneOfOptionCodeCodeOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OneOfOptionCodeAsciiOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfOptionCodeAsciiOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OptionCode1:
    ascii: Union[
        OneOfOptionCodeAsciiOptionsDef1,
        OneOfOptionCodeAsciiOptionsDef2,
    ]
    code: Union[
        OneOfOptionCodeCodeOptionsDef1, OneOfOptionCodeCodeOptionsDef2
    ]


class OneOfOptionCodeHexOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfOptionCodeHexOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OptionCode2:
    code: Union[
        OneOfOptionCodeCodeOptionsDef1, OneOfOptionCodeCodeOptionsDef2
    ]
    hex: Union[
        OneOfOptionCodeHexOptionsDef1, OneOfOptionCodeHexOptionsDef2
    ]


class OneOfOptionCodeIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class OneOfOptionCodeIpOptionsDef2:
    option_type: VariableOptionTypeDef
    value: str
    default: Optional[str]
    description: Optional[str]


class OptionCode3:
    code: Union[
        OneOfOptionCodeCodeOptionsDef1, OneOfOptionCodeCodeOptionsDef2
    ]
    ip: Union[
        OneOfOptionCodeIpOptionsDef1, OneOfOptionCodeIpOptionsDef2
    ]


class DhcpServerData:
    # Configure IPv4 prefix range of the DHCP address pool
    address_pool: AddressPool
    default_gateway: Optional[
        Union[
            OneOfDefaultGatewayOptionsDef1,
            OneOfDefaultGatewayOptionsDef2,
            OneOfDefaultGatewayOptionsDef3,
        ]
    ]
    dns_servers: Optional[
        Union[
            OneOfDnsServersOptionsDef1,
            OneOfDnsServersOptionsDef2,
            OneOfDnsServersOptionsDef3,
        ]
    ]
    domain_name: Optional[
        Union[
            OneOfDomainNameOptionsDef1,
            OneOfDomainNameOptionsDef2,
            OneOfDomainNameOptionsDef3,
        ]
    ]
    exclude: Optional[
        Union[
            OneOfExcludeOptionsDef1,
            OneOfExcludeOptionsDef2,
            OneOfExcludeOptionsDef3,
        ]
    ]
    interface_mtu: Optional[
        Union[
            OneOfInterfaceMtuOptionsDef1,
            OneOfInterfaceMtuOptionsDef2,
            OneOfInterfaceMtuOptionsDef3,
        ]
    ]
    lease_infinite: Optional[
        Union[
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef1,
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef2,
        ]
    ]
    lease_time: Optional[
        Union[
            OneOfLeaseTimeOptionsDef1,
            OneOfLeaseTimeOptionsDef2,
            OneOfLeaseTimeOptionsDef3,
        ]
    ]
    # Configure Options Code
    option_code: Optional[
        List[Union[OptionCode1, OptionCode2, OptionCode3]]
    ]
    # Configure static IP addresses
    static_lease: Optional[List[StaticLease]]
    tftp_servers: Optional[
        Union[
            OneOfTftpServersOptionsDef1,
            OneOfTftpServersOptionsDef2,
            OneOfTftpServersOptionsDef3,
        ]
    ]


class Payload:
    """
    SD-Routing DHCP server feature schema
    """

    data: DhcpServerData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]


class Data:
    # User who last created this.
    created_by: Optional[str]
    # Timestamp of creation
    created_on: Optional[int]
    # User who last updated this.
    last_updated_by: Optional[str]
    # Timestamp of last update
    last_updated_on: Optional[int]
    parcel_id: Optional[str]
    parcel_type: Optional[str]
    # SD-Routing DHCP server feature schema
    payload: Optional[Payload]


class GetListSdRoutingServiceDhcpServerPayload:
    data: Optional[List[Data]]


class CreateSdroutingDhcpServerProfileParcelPostResponse:
    """
    Profile Parcel POST Response schema
    """

    parcel_id: str
    metadata: Optional[Any]


class ServiceDhcpServerData:
    # Configure IPv4 prefix range of the DHCP address pool
    address_pool: AddressPool
    default_gateway: Optional[
        Union[
            OneOfDefaultGatewayOptionsDef1,
            OneOfDefaultGatewayOptionsDef2,
            OneOfDefaultGatewayOptionsDef3,
        ]
    ]
    dns_servers: Optional[
        Union[
            OneOfDnsServersOptionsDef1,
            OneOfDnsServersOptionsDef2,
            OneOfDnsServersOptionsDef3,
        ]
    ]
    domain_name: Optional[
        Union[
            OneOfDomainNameOptionsDef1,
            OneOfDomainNameOptionsDef2,
            OneOfDomainNameOptionsDef3,
        ]
    ]
    exclude: Optional[
        Union[
            OneOfExcludeOptionsDef1,
            OneOfExcludeOptionsDef2,
            OneOfExcludeOptionsDef3,
        ]
    ]
    interface_mtu: Optional[
        Union[
            OneOfInterfaceMtuOptionsDef1,
            OneOfInterfaceMtuOptionsDef2,
            OneOfInterfaceMtuOptionsDef3,
        ]
    ]
    lease_infinite: Optional[
        Union[
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef1,
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef2,
        ]
    ]
    lease_time: Optional[
        Union[
            OneOfLeaseTimeOptionsDef1,
            OneOfLeaseTimeOptionsDef2,
            OneOfLeaseTimeOptionsDef3,
        ]
    ]
    # Configure Options Code
    option_code: Optional[
        List[Union[OptionCode1, OptionCode2, OptionCode3]]
    ]
    # Configure static IP addresses
    static_lease: Optional[List[StaticLease]]
    tftp_servers: Optional[
        Union[
            OneOfTftpServersOptionsDef1,
            OneOfTftpServersOptionsDef2,
            OneOfTftpServersOptionsDef3,
        ]
    ]


class CreateSdroutingDhcpServerProfileParcelPostRequest:
    """
    SD-Routing DHCP server feature schema
    """

    data: ServiceDhcpServerData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]


class DhcpServerOneOfExcludeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Union[Any, str]]


class DhcpServerOneOfLeaseTimeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class DhcpServerOneOfLeaseTimeOptionsDef3:
    option_type: Optional[DefaultOptionTypeDef]
    value: Optional[int]


class DhcpServerOneOfInterfaceMtuOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class DhcpServerOneOfDomainNameOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class DhcpServerOneOfDnsServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class DhcpServerOneOfTftpServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class DhcpServerOneOfStaticLeaseMacAddressOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class DhcpServerOneOfStaticLeaseIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class DhcpServerStaticLease:
    ip: Union[
        DhcpServerOneOfStaticLeaseIpOptionsDef1,
        OneOfStaticLeaseIpOptionsDef2,
    ]
    mac_address: Union[
        DhcpServerOneOfStaticLeaseMacAddressOptionsDef1,
        OneOfStaticLeaseMacAddressOptionsDef2,
    ]


class DhcpServerOneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class DhcpServerOneOfOptionCodeAsciiOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class DhcpServerOptionCode1:
    ascii: Union[
        DhcpServerOneOfOptionCodeAsciiOptionsDef1,
        OneOfOptionCodeAsciiOptionsDef2,
    ]
    code: Union[
        DhcpServerOneOfOptionCodeCodeOptionsDef1,
        OneOfOptionCodeCodeOptionsDef2,
    ]


class ServiceDhcpServerOneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class DhcpServerOneOfOptionCodeHexOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class DhcpServerOptionCode2:
    code: Union[
        ServiceDhcpServerOneOfOptionCodeCodeOptionsDef1,
        OneOfOptionCodeCodeOptionsDef2,
    ]
    hex: Union[
        DhcpServerOneOfOptionCodeHexOptionsDef1,
        OneOfOptionCodeHexOptionsDef2,
    ]


class SdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class DhcpServerOneOfOptionCodeIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class DhcpServerOptionCode3:
    code: Union[
        SdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1,
        OneOfOptionCodeCodeOptionsDef2,
    ]
    ip: Union[
        DhcpServerOneOfOptionCodeIpOptionsDef1,
        OneOfOptionCodeIpOptionsDef2,
    ]


class SdRoutingServiceDhcpServerData:
    # Configure IPv4 prefix range of the DHCP address pool
    address_pool: AddressPool
    default_gateway: Optional[
        Union[
            OneOfDefaultGatewayOptionsDef1,
            OneOfDefaultGatewayOptionsDef2,
            OneOfDefaultGatewayOptionsDef3,
        ]
    ]
    dns_servers: Optional[
        Union[
            DhcpServerOneOfDnsServersOptionsDef1,
            OneOfDnsServersOptionsDef2,
            OneOfDnsServersOptionsDef3,
        ]
    ]
    domain_name: Optional[
        Union[
            DhcpServerOneOfDomainNameOptionsDef1,
            OneOfDomainNameOptionsDef2,
            OneOfDomainNameOptionsDef3,
        ]
    ]
    exclude: Optional[
        Union[
            DhcpServerOneOfExcludeOptionsDef1,
            OneOfExcludeOptionsDef2,
            OneOfExcludeOptionsDef3,
        ]
    ]
    interface_mtu: Optional[
        Union[
            DhcpServerOneOfInterfaceMtuOptionsDef1,
            OneOfInterfaceMtuOptionsDef2,
            OneOfInterfaceMtuOptionsDef3,
        ]
    ]
    lease_infinite: Optional[
        Union[
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef1,
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef2,
        ]
    ]
    lease_time: Optional[
        Union[
            DhcpServerOneOfLeaseTimeOptionsDef1,
            OneOfLeaseTimeOptionsDef2,
            DhcpServerOneOfLeaseTimeOptionsDef3,
        ]
    ]
    # Configure Options Code
    option_code: Optional[
        List[
            Union[
                DhcpServerOptionCode1,
                DhcpServerOptionCode2,
                DhcpServerOptionCode3,
            ]
        ]
    ]
    # Configure static IP addresses
    static_lease: Optional[List[DhcpServerStaticLease]]
    tftp_servers: Optional[
        Union[
            DhcpServerOneOfTftpServersOptionsDef1,
            OneOfTftpServersOptionsDef2,
            OneOfTftpServersOptionsDef3,
        ]
    ]


class DhcpServerPayload:
    """
    SD-Routing DHCP server feature schema
    """

    data: SdRoutingServiceDhcpServerData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]


class GetSingleSdRoutingServiceDhcpServerPayload:
    # User who last created this.
    created_by: Optional[str]
    # Timestamp of creation
    created_on: Optional[int]
    # User who last updated this.
    last_updated_by: Optional[str]
    # Timestamp of last update
    last_updated_on: Optional[int]
    parcel_id: Optional[str]
    parcel_type: Optional[str]
    # SD-Routing DHCP server feature schema
    payload: Optional[DhcpServerPayload]


class EditSdroutingDhcpServerProfileParcelPutResponse:
    """
    Profile Parcel PUT Response schema
    """

    id: str
    metadata: Optional[Any]


class ServiceDhcpServerOneOfExcludeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Union[Any, str]]


class ServiceDhcpServerOneOfLeaseTimeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class ServiceDhcpServerOneOfLeaseTimeOptionsDef3:
    option_type: Optional[DefaultOptionTypeDef]
    value: Optional[int]


class ServiceDhcpServerOneOfInterfaceMtuOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class ServiceDhcpServerOneOfDomainNameOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class ServiceDhcpServerOneOfDnsServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class ServiceDhcpServerOneOfTftpServersOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class ServiceDhcpServerOneOfStaticLeaseMacAddressOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class ServiceDhcpServerOneOfStaticLeaseIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class ServiceDhcpServerStaticLease:
    ip: Union[
        ServiceDhcpServerOneOfStaticLeaseIpOptionsDef1,
        OneOfStaticLeaseIpOptionsDef2,
    ]
    mac_address: Union[
        ServiceDhcpServerOneOfStaticLeaseMacAddressOptionsDef1,
        OneOfStaticLeaseMacAddressOptionsDef2,
    ]


class FeatureProfileSdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class ServiceDhcpServerOneOfOptionCodeAsciiOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class ServiceDhcpServerOptionCode1:
    ascii: Union[
        ServiceDhcpServerOneOfOptionCodeAsciiOptionsDef1,
        OneOfOptionCodeAsciiOptionsDef2,
    ]
    code: Union[
        FeatureProfileSdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1,
        OneOfOptionCodeCodeOptionsDef2,
    ]


class V1FeatureProfileSdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: int


class ServiceDhcpServerOneOfOptionCodeHexOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: str


class ServiceDhcpServerOptionCode2:
    code: Union[
        V1FeatureProfileSdRoutingServiceDhcpServerOneOfOptionCodeCodeOptionsDef1,
        OneOfOptionCodeCodeOptionsDef2,
    ]
    hex: Union[
        ServiceDhcpServerOneOfOptionCodeHexOptionsDef1,
        OneOfOptionCodeHexOptionsDef2,
    ]


class OneOfOptionCodeCodeOptionsDef11:
    option_type: GlobalOptionTypeDef
    value: int


class ServiceDhcpServerOneOfOptionCodeIpOptionsDef1:
    option_type: GlobalOptionTypeDef
    value: List[Any]


class ServiceDhcpServerOptionCode3:
    code: Union[
        OneOfOptionCodeCodeOptionsDef11,
        OneOfOptionCodeCodeOptionsDef2,
    ]
    ip: Union[
        ServiceDhcpServerOneOfOptionCodeIpOptionsDef1,
        OneOfOptionCodeIpOptionsDef2,
    ]


class FeatureProfileSdRoutingServiceDhcpServerData:
    # Configure IPv4 prefix range of the DHCP address pool
    address_pool: AddressPool
    default_gateway: Optional[
        Union[
            OneOfDefaultGatewayOptionsDef1,
            OneOfDefaultGatewayOptionsDef2,
            OneOfDefaultGatewayOptionsDef3,
        ]
    ]
    dns_servers: Optional[
        Union[
            ServiceDhcpServerOneOfDnsServersOptionsDef1,
            OneOfDnsServersOptionsDef2,
            OneOfDnsServersOptionsDef3,
        ]
    ]
    domain_name: Optional[
        Union[
            ServiceDhcpServerOneOfDomainNameOptionsDef1,
            OneOfDomainNameOptionsDef2,
            OneOfDomainNameOptionsDef3,
        ]
    ]
    exclude: Optional[
        Union[
            ServiceDhcpServerOneOfExcludeOptionsDef1,
            OneOfExcludeOptionsDef2,
            OneOfExcludeOptionsDef3,
        ]
    ]
    interface_mtu: Optional[
        Union[
            ServiceDhcpServerOneOfInterfaceMtuOptionsDef1,
            OneOfInterfaceMtuOptionsDef2,
            OneOfInterfaceMtuOptionsDef3,
        ]
    ]
    lease_infinite: Optional[
        Union[
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef1,
            OneOfOnBooleanDefaultFalseNoVariableOptionsDef2,
        ]
    ]
    lease_time: Optional[
        Union[
            ServiceDhcpServerOneOfLeaseTimeOptionsDef1,
            OneOfLeaseTimeOptionsDef2,
            ServiceDhcpServerOneOfLeaseTimeOptionsDef3,
        ]
    ]
    # Configure Options Code
    option_code: Optional[
        List[
            Union[
                ServiceDhcpServerOptionCode1,
                ServiceDhcpServerOptionCode2,
                ServiceDhcpServerOptionCode3,
            ]
        ]
    ]
    # Configure static IP addresses
    static_lease: Optional[List[ServiceDhcpServerStaticLease]]
    tftp_servers: Optional[
        Union[
            ServiceDhcpServerOneOfTftpServersOptionsDef1,
            OneOfTftpServersOptionsDef2,
            OneOfTftpServersOptionsDef3,
        ]
    ]


class EditSdroutingDhcpServerProfileParcelPutRequest:
    """
    SD-Routing DHCP server feature schema
    """

    data: FeatureProfileSdRoutingServiceDhcpServerData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]