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

from __future__ import annotations
from .ipmi_capabilities_authstatus import (
    IpmiCapabilitiesAuthStatus,
    IpmiCapabilitiesAuthStatusTypedDict,
)
from .ipmi_capabilities_completioncode import (
    IpmiCapabilitiesCompletionCode,
    IpmiCapabilitiesCompletionCodeTypedDict,
)
from .ipmi_capabilities_extendedcapabilities import (
    IpmiCapabilitiesExtendedCapabilities,
    IpmiCapabilitiesExtendedCapabilitiesTypedDict,
)
from .ipmi_capabilities_supportedauthtypes import (
    IpmiCapabilitiesSupportedAuthTypes,
    IpmiCapabilitiesSupportedAuthTypesTypedDict,
)
from censys_platform.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class IpmiCapabilitiesTypedDict(TypedDict):
    auth_status: NotRequired[IpmiCapabilitiesAuthStatusTypedDict]
    channel_number: NotRequired[int]
    r"""The response channel number"""
    completion_code: NotRequired[IpmiCapabilitiesCompletionCodeTypedDict]
    extended_capabilities: NotRequired[IpmiCapabilitiesExtendedCapabilitiesTypedDict]
    oem_data: NotRequired[int]
    r"""The OEM-specific data"""
    oem_id: NotRequired[str]
    r"""The 3-byte OEM identifier"""
    supported_auth_types: NotRequired[IpmiCapabilitiesSupportedAuthTypesTypedDict]


class IpmiCapabilities(BaseModel):
    auth_status: Optional[IpmiCapabilitiesAuthStatus] = None

    channel_number: Optional[int] = None
    r"""The response channel number"""

    completion_code: Optional[IpmiCapabilitiesCompletionCode] = None

    extended_capabilities: Optional[IpmiCapabilitiesExtendedCapabilities] = None

    oem_data: Optional[int] = None
    r"""The OEM-specific data"""

    oem_id: Optional[str] = None
    r"""The 3-byte OEM identifier"""

    supported_auth_types: Optional[IpmiCapabilitiesSupportedAuthTypes] = None
