# 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 EdFiDisciplineIncident(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',
        'incident_identifier': 'str',
        'school_reference': 'EdFiSchoolReference',
        'staff_reference': 'EdFiStaffReference',
        'behaviors': 'list[EdFiDisciplineIncidentBehavior]',
        'case_number': 'str',
        'external_participants': 'list[EdFiDisciplineIncidentExternalParticipant]',
        'incident_cost': 'float',
        'incident_date': 'date',
        'incident_description': 'str',
        'incident_location_descriptor': 'str',
        'incident_time': 'str',
        'reported_to_law_enforcement': 'bool',
        'reporter_description_descriptor': 'str',
        'reporter_name': 'str',
        'weapons': 'list[EdFiDisciplineIncidentWeapon]',
        'etag': 'str'
    }

    attribute_map = {
        'id': 'id',
        'incident_identifier': 'incidentIdentifier',
        'school_reference': 'schoolReference',
        'staff_reference': 'staffReference',
        'behaviors': 'behaviors',
        'case_number': 'caseNumber',
        'external_participants': 'externalParticipants',
        'incident_cost': 'incidentCost',
        'incident_date': 'incidentDate',
        'incident_description': 'incidentDescription',
        'incident_location_descriptor': 'incidentLocationDescriptor',
        'incident_time': 'incidentTime',
        'reported_to_law_enforcement': 'reportedToLawEnforcement',
        'reporter_description_descriptor': 'reporterDescriptionDescriptor',
        'reporter_name': 'reporterName',
        'weapons': 'weapons',
        'etag': '_etag'
    }

    def __init__(self, id=None, incident_identifier=None, school_reference=None, staff_reference=None, behaviors=None, case_number=None, external_participants=None, incident_cost=None, incident_date=None, incident_description=None, incident_location_descriptor=None, incident_time=None, reported_to_law_enforcement=None, reporter_description_descriptor=None, reporter_name=None, weapons=None, etag=None, _configuration=None):  # noqa: E501
        """EdFiDisciplineIncident - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._incident_identifier = None
        self._school_reference = None
        self._staff_reference = None
        self._behaviors = None
        self._case_number = None
        self._external_participants = None
        self._incident_cost = None
        self._incident_date = None
        self._incident_description = None
        self._incident_location_descriptor = None
        self._incident_time = None
        self._reported_to_law_enforcement = None
        self._reporter_description_descriptor = None
        self._reporter_name = None
        self._weapons = None
        self._etag = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.incident_identifier = incident_identifier
        self.school_reference = school_reference
        if staff_reference is not None:
            self.staff_reference = staff_reference
        if behaviors is not None:
            self.behaviors = behaviors
        if case_number is not None:
            self.case_number = case_number
        if external_participants is not None:
            self.external_participants = external_participants
        if incident_cost is not None:
            self.incident_cost = incident_cost
        self.incident_date = incident_date
        if incident_description is not None:
            self.incident_description = incident_description
        if incident_location_descriptor is not None:
            self.incident_location_descriptor = incident_location_descriptor
        if incident_time is not None:
            self.incident_time = incident_time
        if reported_to_law_enforcement is not None:
            self.reported_to_law_enforcement = reported_to_law_enforcement
        if reporter_description_descriptor is not None:
            self.reporter_description_descriptor = reporter_description_descriptor
        if reporter_name is not None:
            self.reporter_name = reporter_name
        if weapons is not None:
            self.weapons = weapons
        if etag is not None:
            self.etag = etag

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

          # noqa: E501

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

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

          # noqa: E501

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

        self._id = id

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

        A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501

        :return: The incident_identifier of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_identifier

    @incident_identifier.setter
    def incident_identifier(self, incident_identifier):
        """Sets the incident_identifier of this EdFiDisciplineIncident.

        A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501

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

        self._incident_identifier = incident_identifier

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


        :return: The school_reference of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: EdFiSchoolReference
        """
        return self._school_reference

    @school_reference.setter
    def school_reference(self, school_reference):
        """Sets the school_reference of this EdFiDisciplineIncident.


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

        self._school_reference = school_reference

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


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

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


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

        self._staff_reference = staff_reference

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

        An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501

        :return: The behaviors of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentBehavior]
        """
        return self._behaviors

    @behaviors.setter
    def behaviors(self, behaviors):
        """Sets the behaviors of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501

        :param behaviors: The behaviors of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentBehavior]
        """

        self._behaviors = behaviors

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

        The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501

        :return: The case_number of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._case_number

    @case_number.setter
    def case_number(self, case_number):
        """Sets the case_number of this EdFiDisciplineIncident.

        The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501

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

        self._case_number = case_number

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

        An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501

        :return: The external_participants of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentExternalParticipant]
        """
        return self._external_participants

    @external_participants.setter
    def external_participants(self, external_participants):
        """Sets the external_participants of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501

        :param external_participants: The external_participants of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentExternalParticipant]
        """

        self._external_participants = external_participants

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

        The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501

        :return: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: float
        """
        return self._incident_cost

    @incident_cost.setter
    def incident_cost(self, incident_cost):
        """Sets the incident_cost of this EdFiDisciplineIncident.

        The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501

        :param incident_cost: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501
        :type: float
        """

        self._incident_cost = incident_cost

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

        The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501

        :return: The incident_date of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: date
        """
        return self._incident_date

    @incident_date.setter
    def incident_date(self, incident_date):
        """Sets the incident_date of this EdFiDisciplineIncident.

        The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501

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

        self._incident_date = incident_date

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

        The description for an incident.  # noqa: E501

        :return: The incident_description of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_description

    @incident_description.setter
    def incident_description(self, incident_description):
        """Sets the incident_description of this EdFiDisciplineIncident.

        The description for an incident.  # noqa: E501

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

        self._incident_description = incident_description

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

        Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501

        :return: The incident_location_descriptor of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_location_descriptor

    @incident_location_descriptor.setter
    def incident_location_descriptor(self, incident_location_descriptor):
        """Sets the incident_location_descriptor of this EdFiDisciplineIncident.

        Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501

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

        self._incident_location_descriptor = incident_location_descriptor

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

        An indication of the time of day the incident took place.  # noqa: E501

        :return: The incident_time of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_time

    @incident_time.setter
    def incident_time(self, incident_time):
        """Sets the incident_time of this EdFiDisciplineIncident.

        An indication of the time of day the incident took place.  # noqa: E501

        :param incident_time: The incident_time of this EdFiDisciplineIncident.  # noqa: E501
        :type: str
        """

        self._incident_time = incident_time

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

        Indicator of whether the incident was reported to law enforcement.  # noqa: E501

        :return: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: bool
        """
        return self._reported_to_law_enforcement

    @reported_to_law_enforcement.setter
    def reported_to_law_enforcement(self, reported_to_law_enforcement):
        """Sets the reported_to_law_enforcement of this EdFiDisciplineIncident.

        Indicator of whether the incident was reported to law enforcement.  # noqa: E501

        :param reported_to_law_enforcement: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501
        :type: bool
        """

        self._reported_to_law_enforcement = reported_to_law_enforcement

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

        Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501

        :return: The reporter_description_descriptor of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._reporter_description_descriptor

    @reporter_description_descriptor.setter
    def reporter_description_descriptor(self, reporter_description_descriptor):
        """Sets the reporter_description_descriptor of this EdFiDisciplineIncident.

        Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501

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

        self._reporter_description_descriptor = reporter_description_descriptor

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

        Identifies the reporter of the DisciplineIncident by name.  # noqa: E501

        :return: The reporter_name of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._reporter_name

    @reporter_name.setter
    def reporter_name(self, reporter_name):
        """Sets the reporter_name of this EdFiDisciplineIncident.

        Identifies the reporter of the DisciplineIncident by name.  # noqa: E501

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

        self._reporter_name = reporter_name

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

        An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501

        :return: The weapons of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentWeapon]
        """
        return self._weapons

    @weapons.setter
    def weapons(self, weapons):
        """Sets the weapons of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501

        :param weapons: The weapons of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentWeapon]
        """

        self._weapons = weapons

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

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

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

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

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

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

        self._etag = etag

    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(EdFiDisciplineIncident, 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, EdFiDisciplineIncident):
            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, EdFiDisciplineIncident):
            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 EdFiDisciplineIncident(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',
        'incident_identifier': 'str',
        'school_reference': 'EdFiSchoolReference',
        'staff_reference': 'EdFiStaffReference',
        'behaviors': 'list[EdFiDisciplineIncidentBehavior]',
        'case_number': 'str',
        'external_participants': 'list[EdFiDisciplineIncidentExternalParticipant]',
        'incident_cost': 'float',
        'incident_date': 'date',
        'incident_description': 'str',
        'incident_location_descriptor': 'str',
        'incident_time': 'str',
        'reported_to_law_enforcement': 'bool',
        'reporter_description_descriptor': 'str',
        'reporter_name': 'str',
        'weapons': 'list[EdFiDisciplineIncidentWeapon]',
        'etag': 'str'
    }

    attribute_map = {
        'id': 'id',
        'incident_identifier': 'incidentIdentifier',
        'school_reference': 'schoolReference',
        'staff_reference': 'staffReference',
        'behaviors': 'behaviors',
        'case_number': 'caseNumber',
        'external_participants': 'externalParticipants',
        'incident_cost': 'incidentCost',
        'incident_date': 'incidentDate',
        'incident_description': 'incidentDescription',
        'incident_location_descriptor': 'incidentLocationDescriptor',
        'incident_time': 'incidentTime',
        'reported_to_law_enforcement': 'reportedToLawEnforcement',
        'reporter_description_descriptor': 'reporterDescriptionDescriptor',
        'reporter_name': 'reporterName',
        'weapons': 'weapons',
        'etag': '_etag'
    }

    def __init__(self, id=None, incident_identifier=None, school_reference=None, staff_reference=None, behaviors=None, case_number=None, external_participants=None, incident_cost=None, incident_date=None, incident_description=None, incident_location_descriptor=None, incident_time=None, reported_to_law_enforcement=None, reporter_description_descriptor=None, reporter_name=None, weapons=None, etag=None, _configuration=None):  # noqa: E501
        """EdFiDisciplineIncident - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._incident_identifier = None
        self._school_reference = None
        self._staff_reference = None
        self._behaviors = None
        self._case_number = None
        self._external_participants = None
        self._incident_cost = None
        self._incident_date = None
        self._incident_description = None
        self._incident_location_descriptor = None
        self._incident_time = None
        self._reported_to_law_enforcement = None
        self._reporter_description_descriptor = None
        self._reporter_name = None
        self._weapons = None
        self._etag = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.incident_identifier = incident_identifier
        self.school_reference = school_reference
        if staff_reference is not None:
            self.staff_reference = staff_reference
        if behaviors is not None:
            self.behaviors = behaviors
        if case_number is not None:
            self.case_number = case_number
        if external_participants is not None:
            self.external_participants = external_participants
        if incident_cost is not None:
            self.incident_cost = incident_cost
        self.incident_date = incident_date
        if incident_description is not None:
            self.incident_description = incident_description
        if incident_location_descriptor is not None:
            self.incident_location_descriptor = incident_location_descriptor
        if incident_time is not None:
            self.incident_time = incident_time
        if reported_to_law_enforcement is not None:
            self.reported_to_law_enforcement = reported_to_law_enforcement
        if reporter_description_descriptor is not None:
            self.reporter_description_descriptor = reporter_description_descriptor
        if reporter_name is not None:
            self.reporter_name = reporter_name
        if weapons is not None:
            self.weapons = weapons
        if etag is not None:
            self.etag = etag

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

          # noqa: E501

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

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

          # noqa: E501

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

        self._id = id

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

        A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501

        :return: The incident_identifier of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_identifier

    @incident_identifier.setter
    def incident_identifier(self, incident_identifier):
        """Sets the incident_identifier of this EdFiDisciplineIncident.

        A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501

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

        self._incident_identifier = incident_identifier

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


        :return: The school_reference of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: EdFiSchoolReference
        """
        return self._school_reference

    @school_reference.setter
    def school_reference(self, school_reference):
        """Sets the school_reference of this EdFiDisciplineIncident.


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

        self._school_reference = school_reference

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


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

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


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

        self._staff_reference = staff_reference

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

        An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501

        :return: The behaviors of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentBehavior]
        """
        return self._behaviors

    @behaviors.setter
    def behaviors(self, behaviors):
        """Sets the behaviors of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501

        :param behaviors: The behaviors of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentBehavior]
        """

        self._behaviors = behaviors

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

        The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501

        :return: The case_number of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._case_number

    @case_number.setter
    def case_number(self, case_number):
        """Sets the case_number of this EdFiDisciplineIncident.

        The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501

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

        self._case_number = case_number

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

        An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501

        :return: The external_participants of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentExternalParticipant]
        """
        return self._external_participants

    @external_participants.setter
    def external_participants(self, external_participants):
        """Sets the external_participants of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501

        :param external_participants: The external_participants of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentExternalParticipant]
        """

        self._external_participants = external_participants

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

        The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501

        :return: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: float
        """
        return self._incident_cost

    @incident_cost.setter
    def incident_cost(self, incident_cost):
        """Sets the incident_cost of this EdFiDisciplineIncident.

        The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501

        :param incident_cost: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501
        :type: float
        """

        self._incident_cost = incident_cost

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

        The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501

        :return: The incident_date of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: date
        """
        return self._incident_date

    @incident_date.setter
    def incident_date(self, incident_date):
        """Sets the incident_date of this EdFiDisciplineIncident.

        The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501

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

        self._incident_date = incident_date

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

        The description for an incident.  # noqa: E501

        :return: The incident_description of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_description

    @incident_description.setter
    def incident_description(self, incident_description):
        """Sets the incident_description of this EdFiDisciplineIncident.

        The description for an incident.  # noqa: E501

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

        self._incident_description = incident_description

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

        Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501

        :return: The incident_location_descriptor of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_location_descriptor

    @incident_location_descriptor.setter
    def incident_location_descriptor(self, incident_location_descriptor):
        """Sets the incident_location_descriptor of this EdFiDisciplineIncident.

        Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501

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

        self._incident_location_descriptor = incident_location_descriptor

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

        An indication of the time of day the incident took place.  # noqa: E501

        :return: The incident_time of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._incident_time

    @incident_time.setter
    def incident_time(self, incident_time):
        """Sets the incident_time of this EdFiDisciplineIncident.

        An indication of the time of day the incident took place.  # noqa: E501

        :param incident_time: The incident_time of this EdFiDisciplineIncident.  # noqa: E501
        :type: str
        """

        self._incident_time = incident_time

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

        Indicator of whether the incident was reported to law enforcement.  # noqa: E501

        :return: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: bool
        """
        return self._reported_to_law_enforcement

    @reported_to_law_enforcement.setter
    def reported_to_law_enforcement(self, reported_to_law_enforcement):
        """Sets the reported_to_law_enforcement of this EdFiDisciplineIncident.

        Indicator of whether the incident was reported to law enforcement.  # noqa: E501

        :param reported_to_law_enforcement: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501
        :type: bool
        """

        self._reported_to_law_enforcement = reported_to_law_enforcement

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

        Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501

        :return: The reporter_description_descriptor of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._reporter_description_descriptor

    @reporter_description_descriptor.setter
    def reporter_description_descriptor(self, reporter_description_descriptor):
        """Sets the reporter_description_descriptor of this EdFiDisciplineIncident.

        Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501

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

        self._reporter_description_descriptor = reporter_description_descriptor

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

        Identifies the reporter of the DisciplineIncident by name.  # noqa: E501

        :return: The reporter_name of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: str
        """
        return self._reporter_name

    @reporter_name.setter
    def reporter_name(self, reporter_name):
        """Sets the reporter_name of this EdFiDisciplineIncident.

        Identifies the reporter of the DisciplineIncident by name.  # noqa: E501

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

        self._reporter_name = reporter_name

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

        An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501

        :return: The weapons of this EdFiDisciplineIncident.  # noqa: E501
        :rtype: list[EdFiDisciplineIncidentWeapon]
        """
        return self._weapons

    @weapons.setter
    def weapons(self, weapons):
        """Sets the weapons of this EdFiDisciplineIncident.

        An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501

        :param weapons: The weapons of this EdFiDisciplineIncident.  # noqa: E501
        :type: list[EdFiDisciplineIncidentWeapon]
        """

        self._weapons = weapons

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

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

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

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

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

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

        self._etag = etag

    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(EdFiDisciplineIncident, 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, EdFiDisciplineIncident):
            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, EdFiDisciplineIncident):
            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 EdFiDisciplineIncident - a model defined in Swagger # noqa: E501 Gets the id of this EdFiDisciplineIncident.  # noqa: E501            # noqa: E501          :return: The id of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the id of this EdFiDisciplineIncident.            # noqa: E501          :param id: The id of this EdFiDisciplineIncident.  # noqa: E501         :type: str Gets the incident_identifier of this EdFiDisciplineIncident.  # noqa: E501          A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501          :return: The incident_identifier of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the incident_identifier of this EdFiDisciplineIncident.          A locally assigned unique identifier (within the school or school district) to identify each specific DisciplineIncident or occurrence. The same identifier should be used to document the entire DisciplineIncident even if it included multiple offenses and multiple offenders.  # noqa: E501          :param incident_identifier: The incident_identifier of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 # noqa: E501 Gets the school_reference of this EdFiDisciplineIncident.  # noqa: E501           :return: The school_reference of this EdFiDisciplineIncident.  # noqa: E501         :rtype: EdFiSchoolReference Sets the school_reference of this EdFiDisciplineIncident.           :param school_reference: The school_reference of this EdFiDisciplineIncident.  # noqa: E501         :type: EdFiSchoolReference # noqa: E501 Gets the staff_reference of this EdFiDisciplineIncident.  # noqa: E501           :return: The staff_reference of this EdFiDisciplineIncident.  # noqa: E501         :rtype: EdFiStaffReference Sets the staff_reference of this EdFiDisciplineIncident.           :param staff_reference: The staff_reference of this EdFiDisciplineIncident.  # noqa: E501         :type: EdFiStaffReference Gets the behaviors of this EdFiDisciplineIncident.  # noqa: E501          An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501          :return: The behaviors of this EdFiDisciplineIncident.  # noqa: E501         :rtype: list[EdFiDisciplineIncidentBehavior] Sets the behaviors of this EdFiDisciplineIncident.          An unordered collection of disciplineIncidentBehaviors. Describes behavior by category and provides a detailed description.  # noqa: E501          :param behaviors: The behaviors of this EdFiDisciplineIncident.  # noqa: E501         :type: list[EdFiDisciplineIncidentBehavior] Gets the case_number of this EdFiDisciplineIncident.  # noqa: E501          The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501          :return: The case_number of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the case_number of this EdFiDisciplineIncident.          The case number assigned to the DisciplineIncident by law enforcement or other organization.  # noqa: E501          :param case_number: The case_number of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 Gets the external_participants of this EdFiDisciplineIncident.  # noqa: E501          An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501          :return: The external_participants of this EdFiDisciplineIncident.  # noqa: E501         :rtype: list[EdFiDisciplineIncidentExternalParticipant] Sets the external_participants of this EdFiDisciplineIncident.          An unordered collection of disciplineIncidentExternalParticipants. Information on an individual involved in the Discipline Incident.  # noqa: E501          :param external_participants: The external_participants of this EdFiDisciplineIncident.  # noqa: E501         :type: list[EdFiDisciplineIncidentExternalParticipant] Gets the incident_cost of this EdFiDisciplineIncident.  # noqa: E501          The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501          :return: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501         :rtype: float Sets the incident_cost of this EdFiDisciplineIncident.          The value of any quantifiable monetary loss directly resulting from the DisciplineIncident. Examples include the value of repairs necessitated by vandalism of a school facility, or the value of personnel resources used for repairs or consumed by the incident.  # noqa: E501          :param incident_cost: The incident_cost of this EdFiDisciplineIncident.  # noqa: E501         :type: float Gets the incident_date of this EdFiDisciplineIncident.  # noqa: E501          The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501          :return: The incident_date of this EdFiDisciplineIncident.  # noqa: E501         :rtype: date Sets the incident_date of this EdFiDisciplineIncident.          The month, day, and year on which the DisciplineIncident occurred.  # noqa: E501          :param incident_date: The incident_date of this EdFiDisciplineIncident.  # noqa: E501         :type: date # noqa: E501 Gets the incident_description of this EdFiDisciplineIncident.  # noqa: E501          The description for an incident.  # noqa: E501          :return: The incident_description of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the incident_description of this EdFiDisciplineIncident.          The description for an incident.  # noqa: E501          :param incident_description: The incident_description of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 Gets the incident_location_descriptor of this EdFiDisciplineIncident.  # noqa: E501          Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501          :return: The incident_location_descriptor of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the incident_location_descriptor of this EdFiDisciplineIncident.          Identifies where the DisciplineIncident occurred and whether or not it occurred on school, for example:         On school         Administrative offices area         Cafeteria area         Classroom         Hallway or stairs         ...  # noqa: E501          :param incident_location_descriptor: The incident_location_descriptor of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 Gets the incident_time of this EdFiDisciplineIncident.  # noqa: E501          An indication of the time of day the incident took place.  # noqa: E501          :return: The incident_time of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the incident_time of this EdFiDisciplineIncident.          An indication of the time of day the incident took place.  # noqa: E501          :param incident_time: The incident_time of this EdFiDisciplineIncident.  # noqa: E501         :type: str Gets the reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501          Indicator of whether the incident was reported to law enforcement.  # noqa: E501          :return: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501         :rtype: bool Sets the reported_to_law_enforcement of this EdFiDisciplineIncident.          Indicator of whether the incident was reported to law enforcement.  # noqa: E501          :param reported_to_law_enforcement: The reported_to_law_enforcement of this EdFiDisciplineIncident.  # noqa: E501         :type: bool Gets the reporter_description_descriptor of this EdFiDisciplineIncident.  # noqa: E501          Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501          :return: The reporter_description_descriptor of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the reporter_description_descriptor of this EdFiDisciplineIncident.          Information on the type of individual who reported the DisciplineIncident. When known and/or if useful, use a more specific option code (e.g., \"Counselor\" rather than \"Professional Staff\"); for example:         Student         Parent/guardian         Law enforcement officer         Nonschool personnel         Representative of visiting school         ...  # noqa: E501          :param reporter_description_descriptor: The reporter_description_descriptor of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 Gets the reporter_name of this EdFiDisciplineIncident.  # noqa: E501          Identifies the reporter of the DisciplineIncident by name.  # noqa: E501          :return: The reporter_name of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the reporter_name of this EdFiDisciplineIncident.          Identifies the reporter of the DisciplineIncident by name.  # noqa: E501          :param reporter_name: The reporter_name of this EdFiDisciplineIncident.  # noqa: E501         :type: str # noqa: E501 Gets the weapons of this EdFiDisciplineIncident.  # noqa: E501          An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501          :return: The weapons of this EdFiDisciplineIncident.  # noqa: E501         :rtype: list[EdFiDisciplineIncidentWeapon] Sets the weapons of this EdFiDisciplineIncident.          An unordered collection of disciplineIncidentWeapons. Identifies the type of weapon used during an incident. The Federal Gun-Free Schools Act requires states to report the number of students expelled for bringing firearms to school by type of firearm.  # noqa: E501          :param weapons: The weapons of this EdFiDisciplineIncident.  # noqa: E501         :type: list[EdFiDisciplineIncidentWeapon] Gets the etag of this EdFiDisciplineIncident.  # noqa: E501          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :return: The etag of this EdFiDisciplineIncident.  # noqa: E501         :rtype: str Sets the etag of this EdFiDisciplineIncident.          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :param etag: The etag of this EdFiDisciplineIncident.  # noqa: E501         :type: str 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