# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class ProfileOptionsResponse(Model):
    """ProfileOptionsResponse.

    All required parameters must be populated in order to send to Azure.

    :param acceleration_units: Required. All acceleration units that the user
     is able to choose from
    :type acceleration_units: list[~smartdiagnostics_sdk.models.OptionChild]
    :param date_formats: Required. All date formats that the user is able to
     choose from
    :type date_formats: list[~smartdiagnostics_sdk.models.OptionChild]
    :param pressure_units: Required. All pressure units that the user is able
     to choose from
    :type pressure_units: list[~smartdiagnostics_sdk.models.OptionChild]
    :param temperature_units: Required. All temperature units that the user is
     able to choose from
    :type temperature_units: list[~smartdiagnostics_sdk.models.OptionChild]
    :param time_formats: Required. All time formats that the user is able to
     choose from
    :type time_formats: list[~smartdiagnostics_sdk.models.OptionChild]
    :param velocity_units: Required. All velocity units that the user is able
     to choose from
    :type velocity_units: list[~smartdiagnostics_sdk.models.OptionChild]
    :param time_zones: Required. All time zones that the user is able to
     choose from
    :type time_zones: list[~smartdiagnostics_sdk.models.OptionChild]
    """

    _validation = {
        'acceleration_units': {'required': True, 'unique': True},
        'date_formats': {'required': True, 'unique': True},
        'pressure_units': {'required': True, 'unique': True},
        'temperature_units': {'required': True, 'unique': True},
        'time_formats': {'required': True, 'unique': True},
        'velocity_units': {'required': True, 'unique': True},
        'time_zones': {'required': True, 'unique': True},
    }

    _attribute_map = {
        'acceleration_units': {'key': 'AccelerationUnits', 'type': '[OptionChild]'},
        'date_formats': {'key': 'DateFormats', 'type': '[OptionChild]'},
        'pressure_units': {'key': 'PressureUnits', 'type': '[OptionChild]'},
        'temperature_units': {'key': 'TemperatureUnits', 'type': '[OptionChild]'},
        'time_formats': {'key': 'TimeFormats', 'type': '[OptionChild]'},
        'velocity_units': {'key': 'VelocityUnits', 'type': '[OptionChild]'},
        'time_zones': {'key': 'TimeZones', 'type': '[OptionChild]'},
    }

    def __init__(self, **kwargs):
        super(ProfileOptionsResponse, self).__init__(**kwargs)
        self.acceleration_units = kwargs.get('acceleration_units', None)
        self.date_formats = kwargs.get('date_formats', None)
        self.pressure_units = kwargs.get('pressure_units', None)
        self.temperature_units = kwargs.get('temperature_units', None)
        self.time_formats = kwargs.get('time_formats', None)
        self.velocity_units = kwargs.get('velocity_units', None)
        self.time_zones = kwargs.get('time_zones', None)
