# coding: utf-8

"""
    Ed-Fi Operational Data Store API

    The Ed-Fi ODS / API enables applications to read and write education data stored in an Ed-Fi ODS through a secure REST interface.  ***  > *Note: Consumers of ODS / API information should sanitize all data for display and storage. The ODS / API provides reasonable safeguards against cross-site scripting attacks and other malicious content, but the platform does not and cannot guarantee that the data it contains is free of all potentially harmful content.*  ***   # noqa: E501

    OpenAPI spec version: 3
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.configuration import Configuration


class EdFiSurveyResponse(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 = {
        'id': 'str',
        'survey_response_identifier': 'str',
        'parent_reference': 'EdFiParentReference',
        'staff_reference': 'EdFiStaffReference',
        'student_reference': 'EdFiStudentReference',
        'survey_reference': 'EdFiSurveyReference',
        'electronic_mail_address': 'str',
        'full_name': 'str',
        'location': 'str',
        'response_date': 'date',
        'response_time': 'int',
        'survey_levels': 'list[EdFiSurveyResponseSurveyLevel]',
        'etag': 'str',
        'ext': 'SurveyResponseExtensions'
    }

    attribute_map = {
        'id': 'id',
        'survey_response_identifier': 'surveyResponseIdentifier',
        'parent_reference': 'parentReference',
        'staff_reference': 'staffReference',
        'student_reference': 'studentReference',
        'survey_reference': 'surveyReference',
        'electronic_mail_address': 'electronicMailAddress',
        'full_name': 'fullName',
        'location': 'location',
        'response_date': 'responseDate',
        'response_time': 'responseTime',
        'survey_levels': 'surveyLevels',
        'etag': '_etag',
        'ext': '_ext'
    }

    def __init__(self, id=None, survey_response_identifier=None, parent_reference=None, staff_reference=None, student_reference=None, survey_reference=None, electronic_mail_address=None, full_name=None, location=None, response_date=None, response_time=None, survey_levels=None, etag=None, ext=None, _configuration=None):  # noqa: E501
        """EdFiSurveyResponse - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._survey_response_identifier = None
        self._parent_reference = None
        self._staff_reference = None
        self._student_reference = None
        self._survey_reference = None
        self._electronic_mail_address = None
        self._full_name = None
        self._location = None
        self._response_date = None
        self._response_time = None
        self._survey_levels = None
        self._etag = None
        self._ext = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.survey_response_identifier = survey_response_identifier
        if parent_reference is not None:
            self.parent_reference = parent_reference
        if staff_reference is not None:
            self.staff_reference = staff_reference
        if student_reference is not None:
            self.student_reference = student_reference
        self.survey_reference = survey_reference
        if electronic_mail_address is not None:
            self.electronic_mail_address = electronic_mail_address
        if full_name is not None:
            self.full_name = full_name
        if location is not None:
            self.location = location
        self.response_date = response_date
        if response_time is not None:
            self.response_time = response_time
        if survey_levels is not None:
            self.survey_levels = survey_levels
        if etag is not None:
            self.etag = etag
        if ext is not None:
            self.ext = ext

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

          # noqa: E501

        :return: The id of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this EdFiSurveyResponse.

          # noqa: E501

        :param id: The id of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """

        self._id = id

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

        The identifier of the survey typically from the survey application.  # noqa: E501

        :return: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._survey_response_identifier

    @survey_response_identifier.setter
    def survey_response_identifier(self, survey_response_identifier):
        """Sets the survey_response_identifier of this EdFiSurveyResponse.

        The identifier of the survey typically from the survey application.  # noqa: E501

        :param survey_response_identifier: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if self._configuration.client_side_validation and survey_response_identifier is None:
            raise ValueError("Invalid value for `survey_response_identifier`, must not be `None`")  # noqa: E501
        if (self._configuration.client_side_validation and
                survey_response_identifier is not None and len(survey_response_identifier) > 60):
            raise ValueError("Invalid value for `survey_response_identifier`, length must be less than or equal to `60`")  # noqa: E501

        self._survey_response_identifier = survey_response_identifier

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


        :return: The parent_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiParentReference
        """
        return self._parent_reference

    @parent_reference.setter
    def parent_reference(self, parent_reference):
        """Sets the parent_reference of this EdFiSurveyResponse.


        :param parent_reference: The parent_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiParentReference
        """

        self._parent_reference = parent_reference

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


        :return: The staff_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiStaffReference
        """
        return self._staff_reference

    @staff_reference.setter
    def staff_reference(self, staff_reference):
        """Sets the staff_reference of this EdFiSurveyResponse.


        :param staff_reference: The staff_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiStaffReference
        """

        self._staff_reference = staff_reference

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


        :return: The student_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiStudentReference
        """
        return self._student_reference

    @student_reference.setter
    def student_reference(self, student_reference):
        """Sets the student_reference of this EdFiSurveyResponse.


        :param student_reference: The student_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiStudentReference
        """

        self._student_reference = student_reference

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


        :return: The survey_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiSurveyReference
        """
        return self._survey_reference

    @survey_reference.setter
    def survey_reference(self, survey_reference):
        """Sets the survey_reference of this EdFiSurveyResponse.


        :param survey_reference: The survey_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiSurveyReference
        """
        if self._configuration.client_side_validation and survey_reference is None:
            raise ValueError("Invalid value for `survey_reference`, must not be `None`")  # noqa: E501

        self._survey_reference = survey_reference

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

        Email address of the respondent.  # noqa: E501

        :return: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._electronic_mail_address

    @electronic_mail_address.setter
    def electronic_mail_address(self, electronic_mail_address):
        """Sets the electronic_mail_address of this EdFiSurveyResponse.

        Email address of the respondent.  # noqa: E501

        :param electronic_mail_address: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                electronic_mail_address is not None and len(electronic_mail_address) > 128):
            raise ValueError("Invalid value for `electronic_mail_address`, length must be less than or equal to `128`")  # noqa: E501

        self._electronic_mail_address = electronic_mail_address

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

        Full name of the respondent.  # noqa: E501

        :return: The full_name of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._full_name

    @full_name.setter
    def full_name(self, full_name):
        """Sets the full_name of this EdFiSurveyResponse.

        Full name of the respondent.  # noqa: E501

        :param full_name: The full_name of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                full_name is not None and len(full_name) > 80):
            raise ValueError("Invalid value for `full_name`, length must be less than or equal to `80`")  # noqa: E501

        self._full_name = full_name

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

        Location of the respondent, often a city, district, or school.  # noqa: E501

        :return: The location of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._location

    @location.setter
    def location(self, location):
        """Sets the location of this EdFiSurveyResponse.

        Location of the respondent, often a city, district, or school.  # noqa: E501

        :param location: The location of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                location is not None and len(location) > 75):
            raise ValueError("Invalid value for `location`, length must be less than or equal to `75`")  # noqa: E501

        self._location = location

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

        Date of the survey response.  # noqa: E501

        :return: The response_date of this EdFiSurveyResponse.  # noqa: E501
        :rtype: date
        """
        return self._response_date

    @response_date.setter
    def response_date(self, response_date):
        """Sets the response_date of this EdFiSurveyResponse.

        Date of the survey response.  # noqa: E501

        :param response_date: The response_date of this EdFiSurveyResponse.  # noqa: E501
        :type: date
        """
        if self._configuration.client_side_validation and response_date is None:
            raise ValueError("Invalid value for `response_date`, must not be `None`")  # noqa: E501

        self._response_date = response_date

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

        The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501

        :return: The response_time of this EdFiSurveyResponse.  # noqa: E501
        :rtype: int
        """
        return self._response_time

    @response_time.setter
    def response_time(self, response_time):
        """Sets the response_time of this EdFiSurveyResponse.

        The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501

        :param response_time: The response_time of this EdFiSurveyResponse.  # noqa: E501
        :type: int
        """

        self._response_time = response_time

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

        An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501

        :return: The survey_levels of this EdFiSurveyResponse.  # noqa: E501
        :rtype: list[EdFiSurveyResponseSurveyLevel]
        """
        return self._survey_levels

    @survey_levels.setter
    def survey_levels(self, survey_levels):
        """Sets the survey_levels of this EdFiSurveyResponse.

        An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501

        :param survey_levels: The survey_levels of this EdFiSurveyResponse.  # noqa: E501
        :type: list[EdFiSurveyResponseSurveyLevel]
        """

        self._survey_levels = survey_levels

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

        A unique system-generated value that identifies the version of the resource.  # noqa: E501

        :return: The etag of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._etag

    @etag.setter
    def etag(self, etag):
        """Sets the etag of this EdFiSurveyResponse.

        A unique system-generated value that identifies the version of the resource.  # noqa: E501

        :param etag: The etag of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """

        self._etag = etag

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


        :return: The ext of this EdFiSurveyResponse.  # noqa: E501
        :rtype: SurveyResponseExtensions
        """
        return self._ext

    @ext.setter
    def ext(self, ext):
        """Sets the ext of this EdFiSurveyResponse.


        :param ext: The ext of this EdFiSurveyResponse.  # noqa: E501
        :type: SurveyResponseExtensions
        """

        self._ext = ext

    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(EdFiSurveyResponse, 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, EdFiSurveyResponse):
            return False

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()

# coding: utf-8

"""
    Ed-Fi Operational Data Store API

    The Ed-Fi ODS / API enables applications to read and write education data stored in an Ed-Fi ODS through a secure REST interface.  ***  > *Note: Consumers of ODS / API information should sanitize all data for display and storage. The ODS / API provides reasonable safeguards against cross-site scripting attacks and other malicious content, but the platform does not and cannot guarantee that the data it contains is free of all potentially harmful content.*  ***   # noqa: E501

    OpenAPI spec version: 3
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.configuration import Configuration


class EdFiSurveyResponse(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 = {
        'id': 'str',
        'survey_response_identifier': 'str',
        'parent_reference': 'EdFiParentReference',
        'staff_reference': 'EdFiStaffReference',
        'student_reference': 'EdFiStudentReference',
        'survey_reference': 'EdFiSurveyReference',
        'electronic_mail_address': 'str',
        'full_name': 'str',
        'location': 'str',
        'response_date': 'date',
        'response_time': 'int',
        'survey_levels': 'list[EdFiSurveyResponseSurveyLevel]',
        'etag': 'str',
        'ext': 'SurveyResponseExtensions'
    }

    attribute_map = {
        'id': 'id',
        'survey_response_identifier': 'surveyResponseIdentifier',
        'parent_reference': 'parentReference',
        'staff_reference': 'staffReference',
        'student_reference': 'studentReference',
        'survey_reference': 'surveyReference',
        'electronic_mail_address': 'electronicMailAddress',
        'full_name': 'fullName',
        'location': 'location',
        'response_date': 'responseDate',
        'response_time': 'responseTime',
        'survey_levels': 'surveyLevels',
        'etag': '_etag',
        'ext': '_ext'
    }

    def __init__(self, id=None, survey_response_identifier=None, parent_reference=None, staff_reference=None, student_reference=None, survey_reference=None, electronic_mail_address=None, full_name=None, location=None, response_date=None, response_time=None, survey_levels=None, etag=None, ext=None, _configuration=None):  # noqa: E501
        """EdFiSurveyResponse - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._survey_response_identifier = None
        self._parent_reference = None
        self._staff_reference = None
        self._student_reference = None
        self._survey_reference = None
        self._electronic_mail_address = None
        self._full_name = None
        self._location = None
        self._response_date = None
        self._response_time = None
        self._survey_levels = None
        self._etag = None
        self._ext = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.survey_response_identifier = survey_response_identifier
        if parent_reference is not None:
            self.parent_reference = parent_reference
        if staff_reference is not None:
            self.staff_reference = staff_reference
        if student_reference is not None:
            self.student_reference = student_reference
        self.survey_reference = survey_reference
        if electronic_mail_address is not None:
            self.electronic_mail_address = electronic_mail_address
        if full_name is not None:
            self.full_name = full_name
        if location is not None:
            self.location = location
        self.response_date = response_date
        if response_time is not None:
            self.response_time = response_time
        if survey_levels is not None:
            self.survey_levels = survey_levels
        if etag is not None:
            self.etag = etag
        if ext is not None:
            self.ext = ext

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

          # noqa: E501

        :return: The id of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this EdFiSurveyResponse.

          # noqa: E501

        :param id: The id of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """

        self._id = id

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

        The identifier of the survey typically from the survey application.  # noqa: E501

        :return: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._survey_response_identifier

    @survey_response_identifier.setter
    def survey_response_identifier(self, survey_response_identifier):
        """Sets the survey_response_identifier of this EdFiSurveyResponse.

        The identifier of the survey typically from the survey application.  # noqa: E501

        :param survey_response_identifier: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if self._configuration.client_side_validation and survey_response_identifier is None:
            raise ValueError("Invalid value for `survey_response_identifier`, must not be `None`")  # noqa: E501
        if (self._configuration.client_side_validation and
                survey_response_identifier is not None and len(survey_response_identifier) > 60):
            raise ValueError("Invalid value for `survey_response_identifier`, length must be less than or equal to `60`")  # noqa: E501

        self._survey_response_identifier = survey_response_identifier

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


        :return: The parent_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiParentReference
        """
        return self._parent_reference

    @parent_reference.setter
    def parent_reference(self, parent_reference):
        """Sets the parent_reference of this EdFiSurveyResponse.


        :param parent_reference: The parent_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiParentReference
        """

        self._parent_reference = parent_reference

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


        :return: The staff_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiStaffReference
        """
        return self._staff_reference

    @staff_reference.setter
    def staff_reference(self, staff_reference):
        """Sets the staff_reference of this EdFiSurveyResponse.


        :param staff_reference: The staff_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiStaffReference
        """

        self._staff_reference = staff_reference

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


        :return: The student_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiStudentReference
        """
        return self._student_reference

    @student_reference.setter
    def student_reference(self, student_reference):
        """Sets the student_reference of this EdFiSurveyResponse.


        :param student_reference: The student_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiStudentReference
        """

        self._student_reference = student_reference

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


        :return: The survey_reference of this EdFiSurveyResponse.  # noqa: E501
        :rtype: EdFiSurveyReference
        """
        return self._survey_reference

    @survey_reference.setter
    def survey_reference(self, survey_reference):
        """Sets the survey_reference of this EdFiSurveyResponse.


        :param survey_reference: The survey_reference of this EdFiSurveyResponse.  # noqa: E501
        :type: EdFiSurveyReference
        """
        if self._configuration.client_side_validation and survey_reference is None:
            raise ValueError("Invalid value for `survey_reference`, must not be `None`")  # noqa: E501

        self._survey_reference = survey_reference

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

        Email address of the respondent.  # noqa: E501

        :return: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._electronic_mail_address

    @electronic_mail_address.setter
    def electronic_mail_address(self, electronic_mail_address):
        """Sets the electronic_mail_address of this EdFiSurveyResponse.

        Email address of the respondent.  # noqa: E501

        :param electronic_mail_address: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                electronic_mail_address is not None and len(electronic_mail_address) > 128):
            raise ValueError("Invalid value for `electronic_mail_address`, length must be less than or equal to `128`")  # noqa: E501

        self._electronic_mail_address = electronic_mail_address

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

        Full name of the respondent.  # noqa: E501

        :return: The full_name of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._full_name

    @full_name.setter
    def full_name(self, full_name):
        """Sets the full_name of this EdFiSurveyResponse.

        Full name of the respondent.  # noqa: E501

        :param full_name: The full_name of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                full_name is not None and len(full_name) > 80):
            raise ValueError("Invalid value for `full_name`, length must be less than or equal to `80`")  # noqa: E501

        self._full_name = full_name

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

        Location of the respondent, often a city, district, or school.  # noqa: E501

        :return: The location of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._location

    @location.setter
    def location(self, location):
        """Sets the location of this EdFiSurveyResponse.

        Location of the respondent, often a city, district, or school.  # noqa: E501

        :param location: The location of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """
        if (self._configuration.client_side_validation and
                location is not None and len(location) > 75):
            raise ValueError("Invalid value for `location`, length must be less than or equal to `75`")  # noqa: E501

        self._location = location

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

        Date of the survey response.  # noqa: E501

        :return: The response_date of this EdFiSurveyResponse.  # noqa: E501
        :rtype: date
        """
        return self._response_date

    @response_date.setter
    def response_date(self, response_date):
        """Sets the response_date of this EdFiSurveyResponse.

        Date of the survey response.  # noqa: E501

        :param response_date: The response_date of this EdFiSurveyResponse.  # noqa: E501
        :type: date
        """
        if self._configuration.client_side_validation and response_date is None:
            raise ValueError("Invalid value for `response_date`, must not be `None`")  # noqa: E501

        self._response_date = response_date

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

        The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501

        :return: The response_time of this EdFiSurveyResponse.  # noqa: E501
        :rtype: int
        """
        return self._response_time

    @response_time.setter
    def response_time(self, response_time):
        """Sets the response_time of this EdFiSurveyResponse.

        The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501

        :param response_time: The response_time of this EdFiSurveyResponse.  # noqa: E501
        :type: int
        """

        self._response_time = response_time

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

        An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501

        :return: The survey_levels of this EdFiSurveyResponse.  # noqa: E501
        :rtype: list[EdFiSurveyResponseSurveyLevel]
        """
        return self._survey_levels

    @survey_levels.setter
    def survey_levels(self, survey_levels):
        """Sets the survey_levels of this EdFiSurveyResponse.

        An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501

        :param survey_levels: The survey_levels of this EdFiSurveyResponse.  # noqa: E501
        :type: list[EdFiSurveyResponseSurveyLevel]
        """

        self._survey_levels = survey_levels

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

        A unique system-generated value that identifies the version of the resource.  # noqa: E501

        :return: The etag of this EdFiSurveyResponse.  # noqa: E501
        :rtype: str
        """
        return self._etag

    @etag.setter
    def etag(self, etag):
        """Sets the etag of this EdFiSurveyResponse.

        A unique system-generated value that identifies the version of the resource.  # noqa: E501

        :param etag: The etag of this EdFiSurveyResponse.  # noqa: E501
        :type: str
        """

        self._etag = etag

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


        :return: The ext of this EdFiSurveyResponse.  # noqa: E501
        :rtype: SurveyResponseExtensions
        """
        return self._ext

    @ext.setter
    def ext(self, ext):
        """Sets the ext of this EdFiSurveyResponse.


        :param ext: The ext of this EdFiSurveyResponse.  # noqa: E501
        :type: SurveyResponseExtensions
        """

        self._ext = ext

    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(EdFiSurveyResponse, 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, EdFiSurveyResponse):
            return False

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()

# coding: utf-8 Ed-Fi Operational Data Store API      The Ed-Fi ODS / API enables applications to read and write education data stored in an Ed-Fi ODS through a secure REST interface.  ***  > *Note: Consumers of ODS / API information should sanitize all data for display and storage. The ODS / API provides reasonable safeguards against cross-site scripting attacks and other malicious content, but the platform does not and cannot guarantee that the data it contains is free of all potentially harmful content.*  ***   # noqa: E501      OpenAPI spec version: 3          Generated by: https://github.com/swagger-api/swagger-codegen.git # noqa: F401 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. # noqa: E501 EdFiSurveyResponse - a model defined in Swagger # noqa: E501 Gets the id of this EdFiSurveyResponse.  # noqa: E501            # noqa: E501          :return: The id of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the id of this EdFiSurveyResponse.            # noqa: E501          :param id: The id of this EdFiSurveyResponse.  # noqa: E501         :type: str Gets the survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501          The identifier of the survey typically from the survey application.  # noqa: E501          :return: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the survey_response_identifier of this EdFiSurveyResponse.          The identifier of the survey typically from the survey application.  # noqa: E501          :param survey_response_identifier: The survey_response_identifier of this EdFiSurveyResponse.  # noqa: E501         :type: str # noqa: E501 # noqa: E501 Gets the parent_reference of this EdFiSurveyResponse.  # noqa: E501           :return: The parent_reference of this EdFiSurveyResponse.  # noqa: E501         :rtype: EdFiParentReference Sets the parent_reference of this EdFiSurveyResponse.           :param parent_reference: The parent_reference of this EdFiSurveyResponse.  # noqa: E501         :type: EdFiParentReference Gets the staff_reference of this EdFiSurveyResponse.  # noqa: E501           :return: The staff_reference of this EdFiSurveyResponse.  # noqa: E501         :rtype: EdFiStaffReference Sets the staff_reference of this EdFiSurveyResponse.           :param staff_reference: The staff_reference of this EdFiSurveyResponse.  # noqa: E501         :type: EdFiStaffReference Gets the student_reference of this EdFiSurveyResponse.  # noqa: E501           :return: The student_reference of this EdFiSurveyResponse.  # noqa: E501         :rtype: EdFiStudentReference Sets the student_reference of this EdFiSurveyResponse.           :param student_reference: The student_reference of this EdFiSurveyResponse.  # noqa: E501         :type: EdFiStudentReference Gets the survey_reference of this EdFiSurveyResponse.  # noqa: E501           :return: The survey_reference of this EdFiSurveyResponse.  # noqa: E501         :rtype: EdFiSurveyReference Sets the survey_reference of this EdFiSurveyResponse.           :param survey_reference: The survey_reference of this EdFiSurveyResponse.  # noqa: E501         :type: EdFiSurveyReference # noqa: E501 Gets the electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501          Email address of the respondent.  # noqa: E501          :return: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the electronic_mail_address of this EdFiSurveyResponse.          Email address of the respondent.  # noqa: E501          :param electronic_mail_address: The electronic_mail_address of this EdFiSurveyResponse.  # noqa: E501         :type: str # noqa: E501 Gets the full_name of this EdFiSurveyResponse.  # noqa: E501          Full name of the respondent.  # noqa: E501          :return: The full_name of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the full_name of this EdFiSurveyResponse.          Full name of the respondent.  # noqa: E501          :param full_name: The full_name of this EdFiSurveyResponse.  # noqa: E501         :type: str # noqa: E501 Gets the location of this EdFiSurveyResponse.  # noqa: E501          Location of the respondent, often a city, district, or school.  # noqa: E501          :return: The location of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the location of this EdFiSurveyResponse.          Location of the respondent, often a city, district, or school.  # noqa: E501          :param location: The location of this EdFiSurveyResponse.  # noqa: E501         :type: str # noqa: E501 Gets the response_date of this EdFiSurveyResponse.  # noqa: E501          Date of the survey response.  # noqa: E501          :return: The response_date of this EdFiSurveyResponse.  # noqa: E501         :rtype: date Sets the response_date of this EdFiSurveyResponse.          Date of the survey response.  # noqa: E501          :param response_date: The response_date of this EdFiSurveyResponse.  # noqa: E501         :type: date # noqa: E501 Gets the response_time of this EdFiSurveyResponse.  # noqa: E501          The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501          :return: The response_time of this EdFiSurveyResponse.  # noqa: E501         :rtype: int Sets the response_time of this EdFiSurveyResponse.          The amount of time (in seconds) it took for the respondent to complete the survey.  # noqa: E501          :param response_time: The response_time of this EdFiSurveyResponse.  # noqa: E501         :type: int Gets the survey_levels of this EdFiSurveyResponse.  # noqa: E501          An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501          :return: The survey_levels of this EdFiSurveyResponse.  # noqa: E501         :rtype: list[EdFiSurveyResponseSurveyLevel] Sets the survey_levels of this EdFiSurveyResponse.          An unordered collection of surveyResponseSurveyLevels. Provides information about the respondents of a survey and how they can be grouped together.  # noqa: E501          :param survey_levels: The survey_levels of this EdFiSurveyResponse.  # noqa: E501         :type: list[EdFiSurveyResponseSurveyLevel] Gets the etag of this EdFiSurveyResponse.  # noqa: E501          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :return: The etag of this EdFiSurveyResponse.  # noqa: E501         :rtype: str Sets the etag of this EdFiSurveyResponse.          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :param etag: The etag of this EdFiSurveyResponse.  # noqa: E501         :type: str Gets the ext of this EdFiSurveyResponse.  # noqa: E501           :return: The ext of this EdFiSurveyResponse.  # noqa: E501         :rtype: SurveyResponseExtensions Sets the ext of this EdFiSurveyResponse.           :param ext: The ext of this EdFiSurveyResponse.  # noqa: E501         :type: SurveyResponseExtensions Returns the model properties as a dict Returns the string representation of the model For `print` and `pprint` Returns true if both objects are equal Returns true if both objects are not equal