# coding: utf-8

"""
    IIMMPACT API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 2020-09-14T13:01:14Z
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class CarInsuranceRespone(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'message': 'str',
        'make': 'str',
        'model': 'str',
        'year_make': 'str',
        'chassis_no': 'str',
        'engine_no': 'str',
        'seating_capacity': 'str',
        'variant': 'list[CarInsuranceResponeVariant]',
        'veh_image': 'str',
        'next_ncd_per_centage': 'str',
        'next_ncd_exp_date': 'str',
        'current_policy': 'str'
    }

    attribute_map = {
        'message': 'message',
        'make': 'make',
        'model': 'model',
        'year_make': 'yearMake',
        'chassis_no': 'chassisNo',
        'engine_no': 'engineNo',
        'seating_capacity': 'seatingCapacity',
        'variant': 'variant',
        'veh_image': 'vehImage',
        'next_ncd_per_centage': 'nextNCDPerCentage',
        'next_ncd_exp_date': 'nextNcdExpDate',
        'current_policy': 'currentPolicy'
    }

    def __init__(self, message=None, make=None, model=None, year_make=None, chassis_no=None, engine_no=None, seating_capacity=None, variant=None, veh_image=None, next_ncd_per_centage=None, next_ncd_exp_date=None, current_policy=None):  # noqa: E501
        """CarInsuranceRespone - a model defined in Swagger"""  # noqa: E501

        self._message = None
        self._make = None
        self._model = None
        self._year_make = None
        self._chassis_no = None
        self._engine_no = None
        self._seating_capacity = None
        self._variant = None
        self._veh_image = None
        self._next_ncd_per_centage = None
        self._next_ncd_exp_date = None
        self._current_policy = None
        self.discriminator = None

        if message is not None:
            self.message = message
        if make is not None:
            self.make = make
        if model is not None:
            self.model = model
        if year_make is not None:
            self.year_make = year_make
        if chassis_no is not None:
            self.chassis_no = chassis_no
        if engine_no is not None:
            self.engine_no = engine_no
        if seating_capacity is not None:
            self.seating_capacity = seating_capacity
        if variant is not None:
            self.variant = variant
        if veh_image is not None:
            self.veh_image = veh_image
        if next_ncd_per_centage is not None:
            self.next_ncd_per_centage = next_ncd_per_centage
        if next_ncd_exp_date is not None:
            self.next_ncd_exp_date = next_ncd_exp_date
        if current_policy is not None:
            self.current_policy = current_policy

    @property
    def message(self):
        """Gets the message of this CarInsuranceRespone.  # noqa: E501


        :return: The message of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._message

    @message.setter
    def message(self, message):
        """Sets the message of this CarInsuranceRespone.


        :param message: The message of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._message = message

    @property
    def make(self):
        """Gets the make of this CarInsuranceRespone.  # noqa: E501


        :return: The make of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._make

    @make.setter
    def make(self, make):
        """Sets the make of this CarInsuranceRespone.


        :param make: The make of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._make = make

    @property
    def model(self):
        """Gets the model of this CarInsuranceRespone.  # noqa: E501


        :return: The model of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._model

    @model.setter
    def model(self, model):
        """Sets the model of this CarInsuranceRespone.


        :param model: The model of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._model = model

    @property
    def year_make(self):
        """Gets the year_make of this CarInsuranceRespone.  # noqa: E501


        :return: The year_make of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._year_make

    @year_make.setter
    def year_make(self, year_make):
        """Sets the year_make of this CarInsuranceRespone.


        :param year_make: The year_make of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._year_make = year_make

    @property
    def chassis_no(self):
        """Gets the chassis_no of this CarInsuranceRespone.  # noqa: E501


        :return: The chassis_no of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._chassis_no

    @chassis_no.setter
    def chassis_no(self, chassis_no):
        """Sets the chassis_no of this CarInsuranceRespone.


        :param chassis_no: The chassis_no of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._chassis_no = chassis_no

    @property
    def engine_no(self):
        """Gets the engine_no of this CarInsuranceRespone.  # noqa: E501


        :return: The engine_no of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._engine_no

    @engine_no.setter
    def engine_no(self, engine_no):
        """Sets the engine_no of this CarInsuranceRespone.


        :param engine_no: The engine_no of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._engine_no = engine_no

    @property
    def seating_capacity(self):
        """Gets the seating_capacity of this CarInsuranceRespone.  # noqa: E501


        :return: The seating_capacity of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._seating_capacity

    @seating_capacity.setter
    def seating_capacity(self, seating_capacity):
        """Sets the seating_capacity of this CarInsuranceRespone.


        :param seating_capacity: The seating_capacity of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._seating_capacity = seating_capacity

    @property
    def variant(self):
        """Gets the variant of this CarInsuranceRespone.  # noqa: E501


        :return: The variant of this CarInsuranceRespone.  # noqa: E501
        :rtype: list[CarInsuranceResponeVariant]
        """
        return self._variant

    @variant.setter
    def variant(self, variant):
        """Sets the variant of this CarInsuranceRespone.


        :param variant: The variant of this CarInsuranceRespone.  # noqa: E501
        :type: list[CarInsuranceResponeVariant]
        """

        self._variant = variant

    @property
    def veh_image(self):
        """Gets the veh_image of this CarInsuranceRespone.  # noqa: E501


        :return: The veh_image of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._veh_image

    @veh_image.setter
    def veh_image(self, veh_image):
        """Sets the veh_image of this CarInsuranceRespone.


        :param veh_image: The veh_image of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._veh_image = veh_image

    @property
    def next_ncd_per_centage(self):
        """Gets the next_ncd_per_centage of this CarInsuranceRespone.  # noqa: E501


        :return: The next_ncd_per_centage of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._next_ncd_per_centage

    @next_ncd_per_centage.setter
    def next_ncd_per_centage(self, next_ncd_per_centage):
        """Sets the next_ncd_per_centage of this CarInsuranceRespone.


        :param next_ncd_per_centage: The next_ncd_per_centage of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._next_ncd_per_centage = next_ncd_per_centage

    @property
    def next_ncd_exp_date(self):
        """Gets the next_ncd_exp_date of this CarInsuranceRespone.  # noqa: E501


        :return: The next_ncd_exp_date of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._next_ncd_exp_date

    @next_ncd_exp_date.setter
    def next_ncd_exp_date(self, next_ncd_exp_date):
        """Sets the next_ncd_exp_date of this CarInsuranceRespone.


        :param next_ncd_exp_date: The next_ncd_exp_date of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._next_ncd_exp_date = next_ncd_exp_date

    @property
    def current_policy(self):
        """Gets the current_policy of this CarInsuranceRespone.  # noqa: E501


        :return: The current_policy of this CarInsuranceRespone.  # noqa: E501
        :rtype: str
        """
        return self._current_policy

    @current_policy.setter
    def current_policy(self, current_policy):
        """Sets the current_policy of this CarInsuranceRespone.


        :param current_policy: The current_policy of this CarInsuranceRespone.  # noqa: E501
        :type: str
        """

        self._current_policy = current_policy

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(CarInsuranceRespone, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, CarInsuranceRespone):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
