"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .smb_negotiationlog import SmbNegotiationLog, SmbNegotiationLogTypedDict
from .smb_sessionsetuplog import SmbSessionSetupLog, SmbSessionSetupLogTypedDict
from .smb_smbcapabilities import SmbSmbCapabilities, SmbSmbCapabilitiesTypedDict
from .smb_smbversions import SmbSmbVersions, SmbSmbVersionsTypedDict
from censys_platform.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class SmbTypedDict(TypedDict):
    group_name: NotRequired[str]
    r"""Default group name"""
    has_ntlm: NotRequired[bool]
    r"""Server supports the NTLM authentication method"""
    native_os: NotRequired[str]
    r"""Server-identified operating system"""
    negotiation_log: NotRequired[SmbNegotiationLogTypedDict]
    ntlm: NotRequired[str]
    r"""Native LAN manager"""
    session_setup_log: NotRequired[SmbSessionSetupLogTypedDict]
    smb_capabilities: NotRequired[SmbSmbCapabilitiesTypedDict]
    smb_version: NotRequired[SmbSmbVersionsTypedDict]
    smbv1_support: NotRequired[bool]


class Smb(BaseModel):
    group_name: Optional[str] = None
    r"""Default group name"""

    has_ntlm: Optional[bool] = None
    r"""Server supports the NTLM authentication method"""

    native_os: Optional[str] = None
    r"""Server-identified operating system"""

    negotiation_log: Optional[SmbNegotiationLog] = None

    ntlm: Optional[str] = None
    r"""Native LAN manager"""

    session_setup_log: Optional[SmbSessionSetupLog] = None

    smb_capabilities: Optional[SmbSmbCapabilities] = None

    smb_version: Optional[SmbSmbVersions] = None

    smbv1_support: Optional[bool] = None
