# 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 MonitoringPointCreateRequest(Model):
    """MonitoringPointCreateRequest.

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

    :param name: Required.
    :type name: str
    :param abbreviation:
    :type abbreviation: str
    :param parent_id: Required.
    :type parent_id: str
    :param bearing_id:
    :type bearing_id: str
    :param monitoring_point_type_code: Required. Possible values include:
     'Invalid', 'Custom', 'Vibration', 'Pressure', 'OilQuality',
     'GeneralInput', 'IndicatorBased', 'GeneralAtoD'
    :type monitoring_point_type_code: str or ~smartdiagnostics_sdk.models.enum
    :param running_speed_multiplier:
    :type running_speed_multiplier: float
    :param note:
    :type note: str
    """

    _validation = {
        'name': {'required': True, 'max_length': 100},
        'abbreviation': {'max_length': 5},
        'parent_id': {'required': True},
        'monitoring_point_type_code': {'required': True},
        'note': {'max_length': 200},
    }

    _attribute_map = {
        'name': {'key': 'Name', 'type': 'str'},
        'abbreviation': {'key': 'Abbreviation', 'type': 'str'},
        'parent_id': {'key': 'ParentId', 'type': 'str'},
        'bearing_id': {'key': 'BearingId', 'type': 'str'},
        'monitoring_point_type_code': {'key': 'MonitoringPointTypeCode', 'type': 'str'},
        'running_speed_multiplier': {'key': 'RunningSpeedMultiplier', 'type': 'float'},
        'note': {'key': 'Note', 'type': 'str'},
    }

    def __init__(self, **kwargs):
        super(MonitoringPointCreateRequest, self).__init__(**kwargs)
        self.name = kwargs.get('name', None)
        self.abbreviation = kwargs.get('abbreviation', None)
        self.parent_id = kwargs.get('parent_id', None)
        self.bearing_id = kwargs.get('bearing_id', None)
        self.monitoring_point_type_code = kwargs.get('monitoring_point_type_code', None)
        self.running_speed_multiplier = kwargs.get('running_speed_multiplier', None)
        self.note = kwargs.get('note', None)
