from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from chromestatus_openapi.models.base_model import Model
from chromestatus_openapi import util


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

    Do not edit the class manually.
    """

    def __init__(self, is_language_polyfill=None, is_api_polyfill=None, is_same_origin_css=None, covers_existence=None, covers_common_cases=None, covers_errors=None, covers_invalidation=None, covers_integration=None, adoption_fields_up_to_date=None, adoption_style_aligned=None, adoption_lead_time=None, adoption_mdn_drafted=None, adoption_mwg_drafted=None, launch_or_contact=None, explanation=None):  # noqa: E501
        """SurveyAnswers - a model defined in OpenAPI

        :param is_language_polyfill: The is_language_polyfill of this SurveyAnswers.  # noqa: E501
        :type is_language_polyfill: bool
        :param is_api_polyfill: The is_api_polyfill of this SurveyAnswers.  # noqa: E501
        :type is_api_polyfill: bool
        :param is_same_origin_css: The is_same_origin_css of this SurveyAnswers.  # noqa: E501
        :type is_same_origin_css: bool
        :param covers_existence: The covers_existence of this SurveyAnswers.  # noqa: E501
        :type covers_existence: bool
        :param covers_common_cases: The covers_common_cases of this SurveyAnswers.  # noqa: E501
        :type covers_common_cases: bool
        :param covers_errors: The covers_errors of this SurveyAnswers.  # noqa: E501
        :type covers_errors: bool
        :param covers_invalidation: The covers_invalidation of this SurveyAnswers.  # noqa: E501
        :type covers_invalidation: bool
        :param covers_integration: The covers_integration of this SurveyAnswers.  # noqa: E501
        :type covers_integration: bool
        :param adoption_fields_up_to_date: The adoption_fields_up_to_date of this SurveyAnswers.  # noqa: E501
        :type adoption_fields_up_to_date: bool
        :param adoption_style_aligned: The adoption_style_aligned of this SurveyAnswers.  # noqa: E501
        :type adoption_style_aligned: bool
        :param adoption_lead_time: The adoption_lead_time of this SurveyAnswers.  # noqa: E501
        :type adoption_lead_time: bool
        :param adoption_mdn_drafted: The adoption_mdn_drafted of this SurveyAnswers.  # noqa: E501
        :type adoption_mdn_drafted: bool
        :param adoption_mwg_drafted: The adoption_mwg_drafted of this SurveyAnswers.  # noqa: E501
        :type adoption_mwg_drafted: bool
        :param launch_or_contact: The launch_or_contact of this SurveyAnswers.  # noqa: E501
        :type launch_or_contact: str
        :param explanation: The explanation of this SurveyAnswers.  # noqa: E501
        :type explanation: str
        """
        self.openapi_types = {
            'is_language_polyfill': bool,
            'is_api_polyfill': bool,
            'is_same_origin_css': bool,
            'covers_existence': bool,
            'covers_common_cases': bool,
            'covers_errors': bool,
            'covers_invalidation': bool,
            'covers_integration': bool,
            'adoption_fields_up_to_date': bool,
            'adoption_style_aligned': bool,
            'adoption_lead_time': bool,
            'adoption_mdn_drafted': bool,
            'adoption_mwg_drafted': bool,
            'launch_or_contact': str,
            'explanation': str
        }

        self.attribute_map = {
            'is_language_polyfill': 'is_language_polyfill',
            'is_api_polyfill': 'is_api_polyfill',
            'is_same_origin_css': 'is_same_origin_css',
            'covers_existence': 'covers_existence',
            'covers_common_cases': 'covers_common_cases',
            'covers_errors': 'covers_errors',
            'covers_invalidation': 'covers_invalidation',
            'covers_integration': 'covers_integration',
            'adoption_fields_up_to_date': 'adoption_fields_up_to_date',
            'adoption_style_aligned': 'adoption_style_aligned',
            'adoption_lead_time': 'adoption_lead_time',
            'adoption_mdn_drafted': 'adoption_mdn_drafted',
            'adoption_mwg_drafted': 'adoption_mwg_drafted',
            'launch_or_contact': 'launch_or_contact',
            'explanation': 'explanation'
        }

        self._is_language_polyfill = is_language_polyfill
        self._is_api_polyfill = is_api_polyfill
        self._is_same_origin_css = is_same_origin_css
        self._covers_existence = covers_existence
        self._covers_common_cases = covers_common_cases
        self._covers_errors = covers_errors
        self._covers_invalidation = covers_invalidation
        self._covers_integration = covers_integration
        self._adoption_fields_up_to_date = adoption_fields_up_to_date
        self._adoption_style_aligned = adoption_style_aligned
        self._adoption_lead_time = adoption_lead_time
        self._adoption_mdn_drafted = adoption_mdn_drafted
        self._adoption_mwg_drafted = adoption_mwg_drafted
        self._launch_or_contact = launch_or_contact
        self._explanation = explanation

    @classmethod
    def from_dict(cls, dikt) -> 'SurveyAnswers':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The SurveyAnswers of this SurveyAnswers.  # noqa: E501
        :rtype: SurveyAnswers
        """
        return util.deserialize_model(dikt, cls)

    @property
    def is_language_polyfill(self) -> bool:
        """Gets the is_language_polyfill of this SurveyAnswers.


        :return: The is_language_polyfill of this SurveyAnswers.
        :rtype: bool
        """
        return self._is_language_polyfill

    @is_language_polyfill.setter
    def is_language_polyfill(self, is_language_polyfill: bool):
        """Sets the is_language_polyfill of this SurveyAnswers.


        :param is_language_polyfill: The is_language_polyfill of this SurveyAnswers.
        :type is_language_polyfill: bool
        """

        self._is_language_polyfill = is_language_polyfill

    @property
    def is_api_polyfill(self) -> bool:
        """Gets the is_api_polyfill of this SurveyAnswers.


        :return: The is_api_polyfill of this SurveyAnswers.
        :rtype: bool
        """
        return self._is_api_polyfill

    @is_api_polyfill.setter
    def is_api_polyfill(self, is_api_polyfill: bool):
        """Sets the is_api_polyfill of this SurveyAnswers.


        :param is_api_polyfill: The is_api_polyfill of this SurveyAnswers.
        :type is_api_polyfill: bool
        """

        self._is_api_polyfill = is_api_polyfill

    @property
    def is_same_origin_css(self) -> bool:
        """Gets the is_same_origin_css of this SurveyAnswers.


        :return: The is_same_origin_css of this SurveyAnswers.
        :rtype: bool
        """
        return self._is_same_origin_css

    @is_same_origin_css.setter
    def is_same_origin_css(self, is_same_origin_css: bool):
        """Sets the is_same_origin_css of this SurveyAnswers.


        :param is_same_origin_css: The is_same_origin_css of this SurveyAnswers.
        :type is_same_origin_css: bool
        """

        self._is_same_origin_css = is_same_origin_css

    @property
    def covers_existence(self) -> bool:
        """Gets the covers_existence of this SurveyAnswers.


        :return: The covers_existence of this SurveyAnswers.
        :rtype: bool
        """
        return self._covers_existence

    @covers_existence.setter
    def covers_existence(self, covers_existence: bool):
        """Sets the covers_existence of this SurveyAnswers.


        :param covers_existence: The covers_existence of this SurveyAnswers.
        :type covers_existence: bool
        """

        self._covers_existence = covers_existence

    @property
    def covers_common_cases(self) -> bool:
        """Gets the covers_common_cases of this SurveyAnswers.


        :return: The covers_common_cases of this SurveyAnswers.
        :rtype: bool
        """
        return self._covers_common_cases

    @covers_common_cases.setter
    def covers_common_cases(self, covers_common_cases: bool):
        """Sets the covers_common_cases of this SurveyAnswers.


        :param covers_common_cases: The covers_common_cases of this SurveyAnswers.
        :type covers_common_cases: bool
        """

        self._covers_common_cases = covers_common_cases

    @property
    def covers_errors(self) -> bool:
        """Gets the covers_errors of this SurveyAnswers.


        :return: The covers_errors of this SurveyAnswers.
        :rtype: bool
        """
        return self._covers_errors

    @covers_errors.setter
    def covers_errors(self, covers_errors: bool):
        """Sets the covers_errors of this SurveyAnswers.


        :param covers_errors: The covers_errors of this SurveyAnswers.
        :type covers_errors: bool
        """

        self._covers_errors = covers_errors

    @property
    def covers_invalidation(self) -> bool:
        """Gets the covers_invalidation of this SurveyAnswers.


        :return: The covers_invalidation of this SurveyAnswers.
        :rtype: bool
        """
        return self._covers_invalidation

    @covers_invalidation.setter
    def covers_invalidation(self, covers_invalidation: bool):
        """Sets the covers_invalidation of this SurveyAnswers.


        :param covers_invalidation: The covers_invalidation of this SurveyAnswers.
        :type covers_invalidation: bool
        """

        self._covers_invalidation = covers_invalidation

    @property
    def covers_integration(self) -> bool:
        """Gets the covers_integration of this SurveyAnswers.


        :return: The covers_integration of this SurveyAnswers.
        :rtype: bool
        """
        return self._covers_integration

    @covers_integration.setter
    def covers_integration(self, covers_integration: bool):
        """Sets the covers_integration of this SurveyAnswers.


        :param covers_integration: The covers_integration of this SurveyAnswers.
        :type covers_integration: bool
        """

        self._covers_integration = covers_integration

    @property
    def adoption_fields_up_to_date(self) -> bool:
        """Gets the adoption_fields_up_to_date of this SurveyAnswers.


        :return: The adoption_fields_up_to_date of this SurveyAnswers.
        :rtype: bool
        """
        return self._adoption_fields_up_to_date

    @adoption_fields_up_to_date.setter
    def adoption_fields_up_to_date(self, adoption_fields_up_to_date: bool):
        """Sets the adoption_fields_up_to_date of this SurveyAnswers.


        :param adoption_fields_up_to_date: The adoption_fields_up_to_date of this SurveyAnswers.
        :type adoption_fields_up_to_date: bool
        """

        self._adoption_fields_up_to_date = adoption_fields_up_to_date

    @property
    def adoption_style_aligned(self) -> bool:
        """Gets the adoption_style_aligned of this SurveyAnswers.


        :return: The adoption_style_aligned of this SurveyAnswers.
        :rtype: bool
        """
        return self._adoption_style_aligned

    @adoption_style_aligned.setter
    def adoption_style_aligned(self, adoption_style_aligned: bool):
        """Sets the adoption_style_aligned of this SurveyAnswers.


        :param adoption_style_aligned: The adoption_style_aligned of this SurveyAnswers.
        :type adoption_style_aligned: bool
        """

        self._adoption_style_aligned = adoption_style_aligned

    @property
    def adoption_lead_time(self) -> bool:
        """Gets the adoption_lead_time of this SurveyAnswers.


        :return: The adoption_lead_time of this SurveyAnswers.
        :rtype: bool
        """
        return self._adoption_lead_time

    @adoption_lead_time.setter
    def adoption_lead_time(self, adoption_lead_time: bool):
        """Sets the adoption_lead_time of this SurveyAnswers.


        :param adoption_lead_time: The adoption_lead_time of this SurveyAnswers.
        :type adoption_lead_time: bool
        """

        self._adoption_lead_time = adoption_lead_time

    @property
    def adoption_mdn_drafted(self) -> bool:
        """Gets the adoption_mdn_drafted of this SurveyAnswers.


        :return: The adoption_mdn_drafted of this SurveyAnswers.
        :rtype: bool
        """
        return self._adoption_mdn_drafted

    @adoption_mdn_drafted.setter
    def adoption_mdn_drafted(self, adoption_mdn_drafted: bool):
        """Sets the adoption_mdn_drafted of this SurveyAnswers.


        :param adoption_mdn_drafted: The adoption_mdn_drafted of this SurveyAnswers.
        :type adoption_mdn_drafted: bool
        """

        self._adoption_mdn_drafted = adoption_mdn_drafted

    @property
    def adoption_mwg_drafted(self) -> bool:
        """Gets the adoption_mwg_drafted of this SurveyAnswers.


        :return: The adoption_mwg_drafted of this SurveyAnswers.
        :rtype: bool
        """
        return self._adoption_mwg_drafted

    @adoption_mwg_drafted.setter
    def adoption_mwg_drafted(self, adoption_mwg_drafted: bool):
        """Sets the adoption_mwg_drafted of this SurveyAnswers.


        :param adoption_mwg_drafted: The adoption_mwg_drafted of this SurveyAnswers.
        :type adoption_mwg_drafted: bool
        """

        self._adoption_mwg_drafted = adoption_mwg_drafted

    @property
    def launch_or_contact(self) -> str:
        """Gets the launch_or_contact of this SurveyAnswers.


        :return: The launch_or_contact of this SurveyAnswers.
        :rtype: str
        """
        return self._launch_or_contact

    @launch_or_contact.setter
    def launch_or_contact(self, launch_or_contact: str):
        """Sets the launch_or_contact of this SurveyAnswers.


        :param launch_or_contact: The launch_or_contact of this SurveyAnswers.
        :type launch_or_contact: str
        """

        self._launch_or_contact = launch_or_contact

    @property
    def explanation(self) -> str:
        """Gets the explanation of this SurveyAnswers.


        :return: The explanation of this SurveyAnswers.
        :rtype: str
        """
        return self._explanation

    @explanation.setter
    def explanation(self, explanation: str):
        """Sets the explanation of this SurveyAnswers.


        :param explanation: The explanation of this SurveyAnswers.
        :type explanation: str
        """

        self._explanation = explanation
