# coding: utf-8

from __future__ import annotations
from datetime import date, datetime  # noqa: F401

import re  # noqa: F401
from typing import Any, Dict, List, Optional  # noqa: F401

from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator  # noqa: F401
from ecp4_msi_api_fast.models.can_transmission_control import CanTransmissionControl
from ecp4_msi_api_fast.models.dc_relays_control import DcRelaysControl
from ecp4_msi_api_fast.models.insulation_measurement_control import InsulationMeasurementControl
from ecp4_msi_api_fast.models.power_unit_control import PowerUnitControl
from ecp4_msi_api_fast.models.temperature_sensor_scale import TemperatureSensorScale


class ChademoGbtControl(BaseModel):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.

    ChademoGbtControl - a model defined in OpenAPI

        dc_relays: The dc_relays of this ChademoGbtControl [Optional].
        insulation_measurement: The insulation_measurement of this ChademoGbtControl [Optional].
        aux_output_relay: The aux_output_relay of this ChademoGbtControl [Optional].
        enable_can_transmission: The enable_can_transmission of this ChademoGbtControl [Optional].
        can_transmission: The can_transmission of this ChademoGbtControl [Optional].
        power_unit: The power_unit of this ChademoGbtControl [Optional].
        temperature_sensor_scale: The temperature_sensor_scale of this ChademoGbtControl [Optional].
        simulation: The simulation of this ChademoGbtControl [Optional].
        resistor_d1: The resistor_d1 of this ChademoGbtControl [Optional].
        resistor_d2: The resistor_d2 of this ChademoGbtControl [Optional].
        connector_lock: The connector_lock of this ChademoGbtControl [Optional].
        gbt: The gbt of this ChademoGbtControl [Optional].
        lock_actuator_a: The lock_actuator_a of this ChademoGbtControl [Optional].
        lock_actuator_b: The lock_actuator_b of this ChademoGbtControl [Optional].
        chademo_s0: The chademo_s0 of this ChademoGbtControl [Optional].
        chademo_s1: The chademo_s1 of this ChademoGbtControl [Optional].
        gbt_s3: The gbt_s3 of this ChademoGbtControl [Optional].
        enable_gbt_power_supply: The enable_gbt_power_supply of this ChademoGbtControl [Optional].
        lock_release_timer: The lock_release_timer of this ChademoGbtControl [Optional].
        disable_insulation_measurement_gbt: The disable_insulation_measurement_gbt of this ChademoGbtControl [Optional].
        idle_connector_unlock: The idle_connector_unlock of this ChademoGbtControl [Optional].
        relay_aux12_v: The relay_aux12_v of this ChademoGbtControl [Optional].
    """
    class Config:
        orm_mode = True

    dc_relays: Optional[DcRelaysControl] = Field(alias="dcRelays", default=None)
    insulation_measurement: Optional[InsulationMeasurementControl] = Field(alias="insulationMeasurement", default=None)
    aux_output_relay: Optional[bool] = Field(alias="auxOutputRelay", default=None)
    enable_can_transmission: Optional[bool] = Field(alias="enableCanTransmission", default=None)
    can_transmission: Optional[CanTransmissionControl] = Field(alias="canTransmission", default=None)
    power_unit: Optional[PowerUnitControl] = Field(alias="powerUnit", default=None)
    temperature_sensor_scale: Optional[TemperatureSensorScale] = Field(alias="temperatureSensorScale", default=None)
    simulation: Optional[bool] = Field(alias="simulation", default=None)
    resistor_d1: Optional[bool] = Field(alias="resistorD1", default=None)
    resistor_d2: Optional[bool] = Field(alias="resistorD2", default=None)
    connector_lock: Optional[bool] = Field(alias="connectorLock", default=None)
    gbt: Optional[bool] = Field(alias="gbt", default=None)
    lock_actuator_a: Optional[bool] = Field(alias="lockActuatorA", default=None)
    lock_actuator_b: Optional[bool] = Field(alias="lockActuatorB", default=None)
    chademo_s0: Optional[bool] = Field(alias="chademoS0", default=None)
    chademo_s1: Optional[bool] = Field(alias="chademoS1", default=None)
    gbt_s3: Optional[bool] = Field(alias="gbtS3", default=None)
    enable_gbt_power_supply: Optional[bool] = Field(alias="enableGbtPowerSupply", default=None)
    lock_release_timer: Optional[str] = Field(alias="lockReleaseTimer", default=None)
    disable_insulation_measurement_gbt: Optional[bool] = Field(alias="disableInsulationMeasurementGbt", default=None)
    idle_connector_unlock: Optional[bool] = Field(alias="idleConnectorUnlock", default=None)
    relay_aux12_v: Optional[bool] = Field(alias="relayAux12V", default=None)

ChademoGbtControl.update_forward_refs()
