"""Response schemas for sensor endpoints.

This module is automatically @generated from the Meraki API specification.
Do not edit this file manually.
"""

from __future__ import annotations

from datetime import datetime

from pydantic import Field, RootModel

from meraki_client.schemas._base import _BaseSchema


class CreateDeviceSensorCommandResponse(_BaseSchema):
    """Response for createDeviceSensorCommand operation."""

    command_id: str | None = Field(
        default=None, validation_alias="commandId", serialization_alias="commandId"
    )
    created_at: datetime | None = Field(
        default=None, validation_alias="createdAt", serialization_alias="createdAt"
    )
    completed_at: datetime | None = Field(
        default=None, validation_alias="completedAt", serialization_alias="completedAt"
    )
    created_by: SensorCreatedBy | None = Field(
        default=None, validation_alias="createdBy", serialization_alias="createdBy"
    )
    operation: str | None = None
    status: str | None = None
    errors: list[str] = Field(default_factory=list)


class CreateNetworkSensorAlertsProfileConditionsItem(_BaseSchema):
    """Item schema for conditions."""

    metric: str
    threshold: SensorThreshold
    direction: str | None = None
    duration: int | None = None


class CreateNetworkSensorAlertsProfileRecipients(_BaseSchema):
    """List of recipients that will receive the alert."""

    emails: list[str] = Field(default_factory=list)
    sms_numbers: list[str] = Field(
        default_factory=list, validation_alias="smsNumbers", serialization_alias="smsNumbers"
    )
    http_server_ids: list[str] = Field(
        default_factory=list, validation_alias="httpServerIds", serialization_alias="httpServerIds"
    )


class CreateNetworkSensorAlertsProfileResponse(_BaseSchema):
    """Response for createNetworkSensorAlertsProfile operation."""

    profile_id: str | None = Field(
        default=None, validation_alias="profileId", serialization_alias="profileId"
    )
    name: str | None = None
    schedule: SensorSchedule | None = None
    conditions: list[SensorConditionsItem]
    recipients: SensorRecipients | None = None
    serials: list[str] = Field(default_factory=list)
    include_sensor_url: bool | None = Field(
        default=None, validation_alias="includeSensorUrl", serialization_alias="includeSensorUrl"
    )
    message: str | None = None


class CreateNetworkSensorAlertsProfileSchedule(_BaseSchema):
    """The sensor schedule to use with the alert profile."""

    id: str | None = None


class GetDeviceSensorCommandResponse(_BaseSchema):
    """Response for getDeviceSensorCommand operation."""

    command_id: str | None = Field(
        default=None, validation_alias="commandId", serialization_alias="commandId"
    )
    created_at: datetime | None = Field(
        default=None, validation_alias="createdAt", serialization_alias="createdAt"
    )
    completed_at: datetime | None = Field(
        default=None, validation_alias="completedAt", serialization_alias="completedAt"
    )
    created_by: SensorCreatedBy | None = Field(
        default=None, validation_alias="createdBy", serialization_alias="createdBy"
    )
    operation: str | None = None
    status: str | None = None
    errors: list[str] = Field(default_factory=list)


class GetDeviceSensorCommandsResponse(RootModel[list["GetDeviceSensorCommandsResponseItem"]]):
    """Response for getDeviceSensorCommands operation."""


class GetDeviceSensorCommandsResponseItem(_BaseSchema):
    """Schema for GetDeviceSensorCommandsResponseItem."""

    command_id: str | None = Field(
        default=None, validation_alias="commandId", serialization_alias="commandId"
    )
    created_at: datetime | None = Field(
        default=None, validation_alias="createdAt", serialization_alias="createdAt"
    )
    completed_at: datetime | None = Field(
        default=None, validation_alias="completedAt", serialization_alias="completedAt"
    )
    created_by: SensorCreatedBy | None = Field(
        default=None, validation_alias="createdBy", serialization_alias="createdBy"
    )
    operation: str | None = None
    status: str | None = None
    errors: list[str] = Field(default_factory=list)


class GetDeviceSensorRelationshipsResponse(_BaseSchema):
    """Response for getDeviceSensorRelationships operation."""

    livestream: GetDeviceSensorRelationshipsResponseLivestream | None = None


class GetDeviceSensorRelationshipsResponseLivestream(_BaseSchema):
    """A role defined between an MT sensor and an MV camera that adds the camera's livestream to
    the sensor's details page. Snapshots from the camera will also appear in alert notifications
    that the sensor triggers.
    """

    related_devices: list[SensorLivestreamRelatedDevicesItem] = Field(
        default_factory=list,
        validation_alias="relatedDevices",
        serialization_alias="relatedDevices",
    )


class GetNetworkSensorAlertsCurrentOverviewByMetricResponse(_BaseSchema):
    """Response for getNetworkSensorAlertsCurrentOverviewByMetric operation."""

    supported_metrics: list[str] = Field(
        default_factory=list,
        validation_alias="supportedMetrics",
        serialization_alias="supportedMetrics",
    )
    counts: GetNetworkSensorAlertsCurrentOverviewByMetricResponseCounts | None = None


class GetNetworkSensorAlertsCurrentOverviewByMetricResponseCounts(_BaseSchema):
    """Counts of currently alerting sensors, aggregated by alerting metric."""

    apparent_power: int | None = Field(
        default=None, validation_alias="apparentPower", serialization_alias="apparentPower"
    )
    co2: int | None = None
    current: int | None = None
    door: int | None = None
    frequency: int | None = None
    humidity: int | None = None
    indoor_air_quality: int | None = Field(
        default=None, validation_alias="indoorAirQuality", serialization_alias="indoorAirQuality"
    )
    noise: SensorCountsNoise | None = None
    pm25: int | None = None
    power_factor: int | None = Field(
        default=None, validation_alias="powerFactor", serialization_alias="powerFactor"
    )
    real_power: int | None = Field(
        default=None, validation_alias="realPower", serialization_alias="realPower"
    )
    temperature: int | None = None
    tvoc: int | None = None
    upstream_power: int | None = Field(
        default=None, validation_alias="upstreamPower", serialization_alias="upstreamPower"
    )
    voltage: int | None = None
    water: int | None = None


class GetNetworkSensorAlertsOverviewByMetricResponse(
    RootModel[list["GetNetworkSensorAlertsOverviewByMetricResponseItem"]]
):
    """Response for getNetworkSensorAlertsOverviewByMetric operation."""


class GetNetworkSensorAlertsOverviewByMetricResponseItem(_BaseSchema):
    """Schema for GetNetworkSensorAlertsOverviewByMetricResponseItem."""

    start_ts: datetime | None = Field(
        default=None, validation_alias="startTs", serialization_alias="startTs"
    )
    end_ts: datetime | None = Field(
        default=None, validation_alias="endTs", serialization_alias="endTs"
    )
    counts: GetNetworkSensorAlertsCurrentOverviewByMetricResponseCounts | None = None


class GetNetworkSensorAlertsProfileResponse(_BaseSchema):
    """Response for getNetworkSensorAlertsProfile operation."""

    profile_id: str | None = Field(
        default=None, validation_alias="profileId", serialization_alias="profileId"
    )
    name: str | None = None
    schedule: SensorSchedule | None = None
    conditions: list[SensorConditionsItem]
    recipients: SensorRecipients | None = None
    serials: list[str] = Field(default_factory=list)
    include_sensor_url: bool | None = Field(
        default=None, validation_alias="includeSensorUrl", serialization_alias="includeSensorUrl"
    )
    message: str | None = None


class GetNetworkSensorAlertsProfilesResponse(
    RootModel[list["GetNetworkSensorAlertsProfilesResponseItem"]]
):
    """Response for getNetworkSensorAlertsProfiles operation."""


class GetNetworkSensorAlertsProfilesResponseItem(_BaseSchema):
    """Schema for GetNetworkSensorAlertsProfilesResponseItem."""

    profile_id: str | None = Field(
        default=None, validation_alias="profileId", serialization_alias="profileId"
    )
    name: str | None = None
    schedule: SensorSchedule | None = None
    conditions: list[SensorConditionsItem]
    recipients: SensorRecipients | None = None
    serials: list[str] = Field(default_factory=list)
    include_sensor_url: bool | None = Field(
        default=None, validation_alias="includeSensorUrl", serialization_alias="includeSensorUrl"
    )
    message: str | None = None


class GetNetworkSensorMqttBrokerResponse(_BaseSchema):
    """Response for getNetworkSensorMqttBroker operation."""

    mqtt_broker_id: str | None = Field(
        default=None, validation_alias="mqttBrokerId", serialization_alias="mqttBrokerId"
    )
    enabled: bool | None = None


class GetNetworkSensorMqttBrokersResponse(
    RootModel[list["GetNetworkSensorMqttBrokersResponseItem"]]
):
    """Response for getNetworkSensorMqttBrokers operation."""


class GetNetworkSensorMqttBrokersResponseItem(_BaseSchema):
    """Schema for GetNetworkSensorMqttBrokersResponseItem."""

    mqtt_broker_id: str | None = Field(
        default=None, validation_alias="mqttBrokerId", serialization_alias="mqttBrokerId"
    )
    enabled: bool | None = None


class GetNetworkSensorRelationshipsResponse(
    RootModel[list["GetNetworkSensorRelationshipsResponseItem"]]
):
    """Response for getNetworkSensorRelationships operation."""


class GetNetworkSensorRelationshipsResponseItem(_BaseSchema):
    """Schema for GetNetworkSensorRelationshipsResponseItem."""

    device: SensorDevice | None = None
    relationships: SensorRelationships | None = None


class GetOrganizationSensorGatewaysConnectionsLatestResponseItemsItem(_BaseSchema):
    """Schema for GetOrganizationSensorGatewaysConnectionsLatestResponseItemsItem."""

    last_reported_at: datetime = Field(
        validation_alias="lastReportedAt", serialization_alias="lastReportedAt"
    )
    last_connected_at: datetime | None = Field(
        default=None, validation_alias="lastConnectedAt", serialization_alias="lastConnectedAt"
    )
    rssi: int
    network: SensorNetwork
    sensor: SensorSensor
    gateway: SensorSensor


class GetOrganizationSensorReadingsHistoryResponse(
    RootModel[list["GetOrganizationSensorReadingsHistoryResponseItem"]]
):
    """Response for getOrganizationSensorReadingsHistory operation."""


class GetOrganizationSensorReadingsHistoryResponseItem(_BaseSchema):
    """Schema for GetOrganizationSensorReadingsHistoryResponseItem."""

    serial: str | None = None
    network: SensorSchedule | None = None
    ts: str | None = None
    metric: str | None = None
    apparent_power: SensorApparentPower | None = Field(
        default=None, validation_alias="apparentPower", serialization_alias="apparentPower"
    )
    battery: SensorBattery | None = None
    button: SensorButton | None = None
    co2: SensorCo2 | None = None
    current: SensorApparentPower | None = None
    door: SensorDoor2 | None = None
    downstream_power: SensorDownstreamPower | None = Field(
        default=None, validation_alias="downstreamPower", serialization_alias="downstreamPower"
    )
    frequency: SensorFrequency | None = None
    humidity: SensorHumidity2 | None = None
    indoor_air_quality: SensorIndoorAirQuality2 | None = Field(
        default=None, validation_alias="indoorAirQuality", serialization_alias="indoorAirQuality"
    )
    noise: SensorNoise2 | None = None
    no2: SensorCo2 | None = None
    o3: SensorCo2 | None = None
    pm10: SensorCo2 | None = None
    pm25: SensorCo2 | None = None
    power_factor: SensorBattery | None = Field(
        default=None, validation_alias="powerFactor", serialization_alias="powerFactor"
    )
    real_power: SensorApparentPower | None = Field(
        default=None, validation_alias="realPower", serialization_alias="realPower"
    )
    remote_lockout_switch: SensorRemoteLockoutSwitch | None = Field(
        default=None,
        validation_alias="remoteLockoutSwitch",
        serialization_alias="remoteLockoutSwitch",
    )
    temperature: SensorTemperature2 | None = None
    tvoc: SensorCo2 | None = None
    voltage: SensorFrequency | None = None
    water: SensorWater2 | None = None
    raw_temperature: SensorTemperature2 | None = Field(
        default=None, validation_alias="rawTemperature", serialization_alias="rawTemperature"
    )


class GetOrganizationSensorReadingsLatestResponse(
    RootModel[list["GetOrganizationSensorReadingsLatestResponseItem"]]
):
    """Response for getOrganizationSensorReadingsLatest operation."""


class GetOrganizationSensorReadingsLatestResponseItem(_BaseSchema):
    """Schema for GetOrganizationSensorReadingsLatestResponseItem."""

    serial: str | None = None
    network: SensorSchedule | None = None
    readings: list[SensorReadingsItem] = Field(default_factory=list)


class SensorAmbient(_BaseSchema):
    """Ambient noise threshold. One of 'level' or 'quality' must be provided."""

    level: int | None = None
    quality: str | None = None


class SensorAmbient2(_BaseSchema):
    """Ambient noise reading."""

    level: int | None = None


class SensorApparentPower(_BaseSchema):
    """Reading for the 'apparentPower' metric. This will only be present if the 'metric' property
    equals 'apparentPower'.
    """

    draw: float | None = None


class SensorBattery(_BaseSchema):
    """Reading for the 'battery' metric. This will only be present if the 'metric' property equals
    'battery'.
    """

    percentage: int | None = None


class SensorButton(_BaseSchema):
    """Reading for the 'button' metric. This will only be present if the 'metric' property equals
    'button'.
    """

    press_type: str | None = Field(
        default=None, validation_alias="pressType", serialization_alias="pressType"
    )


class SensorCo2(_BaseSchema):
    """Reading for the 'co2' metric. This will only be present if the 'metric' property equals
    'co2'.
    """

    concentration: int | None = None


class SensorConditionsItem(_BaseSchema):
    """Schema for SensorConditionsItem."""

    metric: str
    threshold: SensorThreshold
    direction: str | None = None
    duration: int | None = None


class SensorCountsNoise(_BaseSchema):
    """Object containing the number of sensors that are currently alerting due to noise readings."""

    ambient: int | None = None


class SensorCreatedBy(_BaseSchema):
    """Information about the admin who triggered the command."""

    admin_id: str | None = Field(
        default=None, validation_alias="adminId", serialization_alias="adminId"
    )
    name: str | None = None
    email: str | None = None


class SensorDevice(_BaseSchema):
    """A sensor or gateway device in the network."""

    name: str | None = None
    serial: str | None = None
    product_type: str | None = Field(
        default=None, validation_alias="productType", serialization_alias="productType"
    )


class SensorDoor(_BaseSchema):
    """Door open threshold. 'open' must be provided and set to true."""

    open_: bool = Field(validation_alias="open", serialization_alias="open")


class SensorDoor2(_BaseSchema):
    """Reading for the 'door' metric. This will only be present if the 'metric' property equals
    'door'.
    """

    open_: bool | None = Field(default=None, validation_alias="open", serialization_alias="open")


class SensorDownstreamPower(_BaseSchema):
    """Reading for the 'downstreamPower' metric. This will only be present if the 'metric' property
    equals 'downstreamPower'.
    """

    enabled: bool | None = None


class SensorFrequency(_BaseSchema):
    """Reading for the 'frequency' metric. This will only be present if the 'metric' property
    equals 'frequency'.
    """

    level: float | None = None


class SensorHumidity(_BaseSchema):
    """Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."""

    relative_percentage: int | None = Field(
        default=None,
        validation_alias="relativePercentage",
        serialization_alias="relativePercentage",
    )
    quality: str | None = None


class SensorHumidity2(_BaseSchema):
    """Reading for the 'humidity' metric. This will only be present if the 'metric' property equals
    'humidity'.
    """

    relative_percentage: int | None = Field(
        default=None,
        validation_alias="relativePercentage",
        serialization_alias="relativePercentage",
    )


class SensorIndoorAirQuality(_BaseSchema):
    """Indoor air quality score threshold. One of 'score' or 'quality' must be provided."""

    score: int | None = None
    quality: str | None = None


class SensorIndoorAirQuality2(_BaseSchema):
    """Reading for the 'indoorAirQuality' metric. This will only be present if the 'metric'
    property equals 'indoorAirQuality'.
    """

    score: int | None = None


class SensorLivestreamRelatedDevicesItem(_BaseSchema):
    """Schema for SensorLivestreamRelatedDevicesItem."""

    serial: str | None = None
    product_type: str | None = Field(
        default=None, validation_alias="productType", serialization_alias="productType"
    )


class SensorNetwork(_BaseSchema):
    """Information about the network that the sensor and gateway are in."""

    name: str
    id: str


class SensorNoise(_BaseSchema):
    """Noise threshold. 'ambient' must be provided."""

    ambient: SensorAmbient


class SensorNoise2(_BaseSchema):
    """Reading for the 'noise' metric. This will only be present if the 'metric' property equals
    'noise'.
    """

    ambient: SensorAmbient2 | None = None


class SensorPowerFactor(_BaseSchema):
    """Power factor threshold. 'percentage' must be provided."""

    percentage: int


class SensorReadingsItem(_BaseSchema):
    """Schema for SensorReadingsItem."""

    ts: str | None = None
    metric: str | None = None
    apparent_power: SensorApparentPower | None = Field(
        default=None, validation_alias="apparentPower", serialization_alias="apparentPower"
    )
    battery: SensorBattery | None = None
    button: SensorButton | None = None
    co2: SensorCo2 | None = None
    current: SensorApparentPower | None = None
    door: SensorDoor2 | None = None
    downstream_power: SensorDownstreamPower | None = Field(
        default=None, validation_alias="downstreamPower", serialization_alias="downstreamPower"
    )
    frequency: SensorFrequency | None = None
    humidity: SensorHumidity2 | None = None
    indoor_air_quality: SensorIndoorAirQuality2 | None = Field(
        default=None, validation_alias="indoorAirQuality", serialization_alias="indoorAirQuality"
    )
    noise: SensorNoise2 | None = None
    no2: SensorCo2 | None = None
    o3: SensorCo2 | None = None
    pm10: SensorCo2 | None = None
    pm25: SensorCo2 | None = None
    power_factor: SensorBattery | None = Field(
        default=None, validation_alias="powerFactor", serialization_alias="powerFactor"
    )
    real_power: SensorApparentPower | None = Field(
        default=None, validation_alias="realPower", serialization_alias="realPower"
    )
    remote_lockout_switch: SensorRemoteLockoutSwitch | None = Field(
        default=None,
        validation_alias="remoteLockoutSwitch",
        serialization_alias="remoteLockoutSwitch",
    )
    temperature: SensorTemperature2 | None = None
    tvoc: SensorCo2 | None = None
    voltage: SensorFrequency | None = None
    water: SensorWater2 | None = None
    raw_temperature: SensorTemperature2 | None = Field(
        default=None, validation_alias="rawTemperature", serialization_alias="rawTemperature"
    )


class SensorRealPower(_BaseSchema):
    """Real power threshold. 'draw' must be provided."""

    draw: float


class SensorRecipients(_BaseSchema):
    """List of recipients that will receive the alert."""

    emails: list[str] = Field(default_factory=list)
    sms_numbers: list[str] = Field(
        default_factory=list, validation_alias="smsNumbers", serialization_alias="smsNumbers"
    )
    http_server_ids: list[str] = Field(
        default_factory=list, validation_alias="httpServerIds", serialization_alias="httpServerIds"
    )


class SensorRelationships(_BaseSchema):
    """An object describing the relationships defined between the device and other devices."""

    livestream: GetDeviceSensorRelationshipsResponseLivestream | None = None


class SensorRemoteLockoutSwitch(_BaseSchema):
    """Reading for the 'remoteLockoutSwitch' metric. This will only be present if the 'metric'
    property equals 'remoteLockoutSwitch'.
    """

    locked: bool | None = None


class SensorSchedule(_BaseSchema):
    """The sensor schedule to use with the alert profile."""

    id: str | None = None
    name: str | None = None


class SensorSensor(_BaseSchema):
    """Information about the sensor."""

    serial: str | None = None
    name: str
    mac: str


class SensorTemperature(_BaseSchema):
    """Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."""

    celsius: float | None = None
    fahrenheit: float | None = None
    quality: str | None = None


class SensorTemperature2(_BaseSchema):
    """Reading for the 'temperature' metric. This will only be present if the 'metric' property
    equals 'temperature'.
    """

    fahrenheit: float | None = None
    celsius: float | None = None


class SensorThreshold(_BaseSchema):
    """Threshold for sensor readings that will cause an alert to be sent. This object should
    contain a single property key matching the condition's 'metric' value.
    """

    temperature: SensorTemperature | None = None
    humidity: SensorHumidity | None = None
    water: SensorWater | None = None
    door: SensorDoor | None = None
    tvoc: SensorTvoc | None = None
    co2: SensorTvoc | None = None
    pm25: SensorTvoc | None = None
    noise: SensorNoise | None = None
    indoor_air_quality: SensorIndoorAirQuality | None = Field(
        default=None, validation_alias="indoorAirQuality", serialization_alias="indoorAirQuality"
    )
    real_power: SensorRealPower | None = Field(
        default=None, validation_alias="realPower", serialization_alias="realPower"
    )
    apparent_power: SensorRealPower | None = Field(
        default=None, validation_alias="apparentPower", serialization_alias="apparentPower"
    )
    power_factor: SensorPowerFactor | None = Field(
        default=None, validation_alias="powerFactor", serialization_alias="powerFactor"
    )
    current: SensorRealPower | None = None
    voltage: SensorVoltage | None = None
    frequency: SensorVoltage | None = None
    upstream_power: SensorUpstreamPower | None = Field(
        default=None, validation_alias="upstreamPower", serialization_alias="upstreamPower"
    )


class SensorTvoc(_BaseSchema):
    """TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."""

    concentration: int | None = None
    quality: str | None = None


class SensorUpstreamPower(_BaseSchema):
    """Upstream power threshold. 'outageDetected' must be provided and set to true."""

    outage_detected: bool = Field(
        validation_alias="outageDetected", serialization_alias="outageDetected"
    )


class SensorVoltage(_BaseSchema):
    """Voltage threshold. 'level' must be provided."""

    level: float


class SensorWater(_BaseSchema):
    """Water detection threshold. 'present' must be provided and set to true."""

    present: bool


class SensorWater2(_BaseSchema):
    """Reading for the 'water' metric. This will only be present if the 'metric' property equals
    'water'.
    """

    present: bool | None = None


class UpdateDeviceSensorRelationshipsLivestream(_BaseSchema):
    """A role defined between an MT sensor and an MV camera that adds the camera's livestream to
    the sensor's details page. Snapshots from the camera will also appear in alert notifications
    that the sensor triggers.
    """

    related_devices: list[UpdateDeviceSensorRelationshipsLivestreamRelatedDevicesItem] = Field(
        default_factory=list,
        validation_alias="relatedDevices",
        serialization_alias="relatedDevices",
    )


class UpdateDeviceSensorRelationshipsLivestreamRelatedDevicesItem(_BaseSchema):
    """Schema for UpdateDeviceSensorRelationshipsLivestreamRelatedDevicesItem."""

    serial: str


class UpdateDeviceSensorRelationshipsResponse(_BaseSchema):
    """Response for updateDeviceSensorRelationships operation."""

    livestream: GetDeviceSensorRelationshipsResponseLivestream | None = None


class UpdateNetworkSensorAlertsProfileConditionsItem(_BaseSchema):
    """Item schema for conditions."""

    metric: str
    threshold: SensorThreshold
    direction: str | None = None
    duration: int | None = None


class UpdateNetworkSensorAlertsProfileRecipients(_BaseSchema):
    """List of recipients that will receive the alert."""

    emails: list[str] = Field(default_factory=list)
    sms_numbers: list[str] = Field(
        default_factory=list, validation_alias="smsNumbers", serialization_alias="smsNumbers"
    )
    http_server_ids: list[str] = Field(
        default_factory=list, validation_alias="httpServerIds", serialization_alias="httpServerIds"
    )


class UpdateNetworkSensorAlertsProfileResponse(_BaseSchema):
    """Response for updateNetworkSensorAlertsProfile operation."""

    profile_id: str | None = Field(
        default=None, validation_alias="profileId", serialization_alias="profileId"
    )
    name: str | None = None
    schedule: SensorSchedule | None = None
    conditions: list[SensorConditionsItem]
    recipients: SensorRecipients | None = None
    serials: list[str] = Field(default_factory=list)
    include_sensor_url: bool | None = Field(
        default=None, validation_alias="includeSensorUrl", serialization_alias="includeSensorUrl"
    )
    message: str | None = None


class UpdateNetworkSensorAlertsProfileSchedule(_BaseSchema):
    """The sensor schedule to use with the alert profile."""

    id: str | None = None


class UpdateNetworkSensorMqttBrokerResponse(_BaseSchema):
    """Response for updateNetworkSensorMqttBroker operation."""

    mqtt_broker_id: str | None = Field(
        default=None, validation_alias="mqttBrokerId", serialization_alias="mqttBrokerId"
    )
    enabled: bool | None = None
