<reponame>xmarcosx/edfi-notebook<filename>src/v5.3/resources/swagger_client/models/ed_fi_report_card.py
# 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 EdFiReportCard(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',
        'education_organization_reference': 'EdFiEducationOrganizationReference',
        'grading_period_reference': 'EdFiGradingPeriodReference',
        'student_reference': 'EdFiStudentReference',
        'gpa_cumulative': 'float',
        'gpa_given_grading_period': 'float',
        'grade_point_averages': 'list[EdFiReportCardGradePointAverage]',
        'grades': 'list[EdFiReportCardGrade]',
        'number_of_days_absent': 'float',
        'number_of_days_in_attendance': 'float',
        'number_of_days_tardy': 'int',
        'student_competency_objectives': 'list[EdFiReportCardStudentCompetencyObjective]',
        'student_learning_objectives': 'list[EdFiReportCardStudentLearningObjective]',
        'etag': 'str'
    }

    attribute_map = {
        'id': 'id',
        'education_organization_reference': 'educationOrganizationReference',
        'grading_period_reference': 'gradingPeriodReference',
        'student_reference': 'studentReference',
        'gpa_cumulative': 'gpaCumulative',
        'gpa_given_grading_period': 'gpaGivenGradingPeriod',
        'grade_point_averages': 'gradePointAverages',
        'grades': 'grades',
        'number_of_days_absent': 'numberOfDaysAbsent',
        'number_of_days_in_attendance': 'numberOfDaysInAttendance',
        'number_of_days_tardy': 'numberOfDaysTardy',
        'student_competency_objectives': 'studentCompetencyObjectives',
        'student_learning_objectives': 'studentLearningObjectives',
        'etag': '_etag'
    }

    def __init__(self, id=None, education_organization_reference=None, grading_period_reference=None, student_reference=None, gpa_cumulative=None, gpa_given_grading_period=None, grade_point_averages=None, grades=None, number_of_days_absent=None, number_of_days_in_attendance=None, number_of_days_tardy=None, student_competency_objectives=None, student_learning_objectives=None, etag=None, _configuration=None):  # noqa: E501
        """EdFiReportCard - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._education_organization_reference = None
        self._grading_period_reference = None
        self._student_reference = None
        self._gpa_cumulative = None
        self._gpa_given_grading_period = None
        self._grade_point_averages = None
        self._grades = None
        self._number_of_days_absent = None
        self._number_of_days_in_attendance = None
        self._number_of_days_tardy = None
        self._student_competency_objectives = None
        self._student_learning_objectives = None
        self._etag = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.education_organization_reference = education_organization_reference
        self.grading_period_reference = grading_period_reference
        self.student_reference = student_reference
        if gpa_cumulative is not None:
            self.gpa_cumulative = gpa_cumulative
        if gpa_given_grading_period is not None:
            self.gpa_given_grading_period = gpa_given_grading_period
        if grade_point_averages is not None:
            self.grade_point_averages = grade_point_averages
        if grades is not None:
            self.grades = grades
        if number_of_days_absent is not None:
            self.number_of_days_absent = number_of_days_absent
        if number_of_days_in_attendance is not None:
            self.number_of_days_in_attendance = number_of_days_in_attendance
        if number_of_days_tardy is not None:
            self.number_of_days_tardy = number_of_days_tardy
        if student_competency_objectives is not None:
            self.student_competency_objectives = student_competency_objectives
        if student_learning_objectives is not None:
            self.student_learning_objectives = student_learning_objectives
        if etag is not None:
            self.etag = etag

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

          # noqa: E501

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

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

          # noqa: E501

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

        self._id = id

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


        :return: The education_organization_reference of this EdFiReportCard.  # noqa: E501
        :rtype: EdFiEducationOrganizationReference
        """
        return self._education_organization_reference

    @education_organization_reference.setter
    def education_organization_reference(self, education_organization_reference):
        """Sets the education_organization_reference of this EdFiReportCard.


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

        self._education_organization_reference = education_organization_reference

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


        :return: The grading_period_reference of this EdFiReportCard.  # noqa: E501
        :rtype: EdFiGradingPeriodReference
        """
        return self._grading_period_reference

    @grading_period_reference.setter
    def grading_period_reference(self, grading_period_reference):
        """Sets the grading_period_reference of this EdFiReportCard.


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

        self._grading_period_reference = grading_period_reference

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


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

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


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

        self._student_reference = student_reference

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

        A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501

        :return: The gpa_cumulative of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._gpa_cumulative

    @gpa_cumulative.setter
    def gpa_cumulative(self, gpa_cumulative):
        """Sets the gpa_cumulative of this EdFiReportCard.

        A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501

        :param gpa_cumulative: The gpa_cumulative of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._gpa_cumulative = gpa_cumulative

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

        A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501

        :return: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._gpa_given_grading_period

    @gpa_given_grading_period.setter
    def gpa_given_grading_period(self, gpa_given_grading_period):
        """Sets the gpa_given_grading_period of this EdFiReportCard.

        A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501

        :param gpa_given_grading_period: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._gpa_given_grading_period = gpa_given_grading_period

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

        An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501

        :return: The grade_point_averages of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardGradePointAverage]
        """
        return self._grade_point_averages

    @grade_point_averages.setter
    def grade_point_averages(self, grade_point_averages):
        """Sets the grade_point_averages of this EdFiReportCard.

        An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501

        :param grade_point_averages: The grade_point_averages of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardGradePointAverage]
        """

        self._grade_point_averages = grade_point_averages

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

        An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501

        :return: The grades of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardGrade]
        """
        return self._grades

    @grades.setter
    def grades(self, grades):
        """Sets the grades of this EdFiReportCard.

        An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501

        :param grades: The grades of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardGrade]
        """

        self._grades = grades

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

        The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501

        :return: The number_of_days_absent of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._number_of_days_absent

    @number_of_days_absent.setter
    def number_of_days_absent(self, number_of_days_absent):
        """Sets the number_of_days_absent of this EdFiReportCard.

        The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501

        :param number_of_days_absent: The number_of_days_absent of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._number_of_days_absent = number_of_days_absent

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

        The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501

        :return: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._number_of_days_in_attendance

    @number_of_days_in_attendance.setter
    def number_of_days_in_attendance(self, number_of_days_in_attendance):
        """Sets the number_of_days_in_attendance of this EdFiReportCard.

        The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501

        :param number_of_days_in_attendance: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._number_of_days_in_attendance = number_of_days_in_attendance

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

        The number of days an individual is tardy during a given reporting period.  # noqa: E501

        :return: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501
        :rtype: int
        """
        return self._number_of_days_tardy

    @number_of_days_tardy.setter
    def number_of_days_tardy(self, number_of_days_tardy):
        """Sets the number_of_days_tardy of this EdFiReportCard.

        The number of days an individual is tardy during a given reporting period.  # noqa: E501

        :param number_of_days_tardy: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501
        :type: int
        """

        self._number_of_days_tardy = number_of_days_tardy

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

        An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501

        :return: The student_competency_objectives of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardStudentCompetencyObjective]
        """
        return self._student_competency_objectives

    @student_competency_objectives.setter
    def student_competency_objectives(self, student_competency_objectives):
        """Sets the student_competency_objectives of this EdFiReportCard.

        An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501

        :param student_competency_objectives: The student_competency_objectives of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardStudentCompetencyObjective]
        """

        self._student_competency_objectives = student_competency_objectives

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

        An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501

        :return: The student_learning_objectives of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardStudentLearningObjective]
        """
        return self._student_learning_objectives

    @student_learning_objectives.setter
    def student_learning_objectives(self, student_learning_objectives):
        """Sets the student_learning_objectives of this EdFiReportCard.

        An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501

        :param student_learning_objectives: The student_learning_objectives of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardStudentLearningObjective]
        """

        self._student_learning_objectives = student_learning_objectives

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

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

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

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

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

        :param etag: The etag of this EdFiReportCard.  # 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(EdFiReportCard, 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, EdFiReportCard):
            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, EdFiReportCard):
            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 EdFiReportCard(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',
        'education_organization_reference': 'EdFiEducationOrganizationReference',
        'grading_period_reference': 'EdFiGradingPeriodReference',
        'student_reference': 'EdFiStudentReference',
        'gpa_cumulative': 'float',
        'gpa_given_grading_period': 'float',
        'grade_point_averages': 'list[EdFiReportCardGradePointAverage]',
        'grades': 'list[EdFiReportCardGrade]',
        'number_of_days_absent': 'float',
        'number_of_days_in_attendance': 'float',
        'number_of_days_tardy': 'int',
        'student_competency_objectives': 'list[EdFiReportCardStudentCompetencyObjective]',
        'student_learning_objectives': 'list[EdFiReportCardStudentLearningObjective]',
        'etag': 'str'
    }

    attribute_map = {
        'id': 'id',
        'education_organization_reference': 'educationOrganizationReference',
        'grading_period_reference': 'gradingPeriodReference',
        'student_reference': 'studentReference',
        'gpa_cumulative': 'gpaCumulative',
        'gpa_given_grading_period': 'gpaGivenGradingPeriod',
        'grade_point_averages': 'gradePointAverages',
        'grades': 'grades',
        'number_of_days_absent': 'numberOfDaysAbsent',
        'number_of_days_in_attendance': 'numberOfDaysInAttendance',
        'number_of_days_tardy': 'numberOfDaysTardy',
        'student_competency_objectives': 'studentCompetencyObjectives',
        'student_learning_objectives': 'studentLearningObjectives',
        'etag': '_etag'
    }

    def __init__(self, id=None, education_organization_reference=None, grading_period_reference=None, student_reference=None, gpa_cumulative=None, gpa_given_grading_period=None, grade_point_averages=None, grades=None, number_of_days_absent=None, number_of_days_in_attendance=None, number_of_days_tardy=None, student_competency_objectives=None, student_learning_objectives=None, etag=None, _configuration=None):  # noqa: E501
        """EdFiReportCard - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._id = None
        self._education_organization_reference = None
        self._grading_period_reference = None
        self._student_reference = None
        self._gpa_cumulative = None
        self._gpa_given_grading_period = None
        self._grade_point_averages = None
        self._grades = None
        self._number_of_days_absent = None
        self._number_of_days_in_attendance = None
        self._number_of_days_tardy = None
        self._student_competency_objectives = None
        self._student_learning_objectives = None
        self._etag = None
        self.discriminator = None

        if id is not None:
            self.id = id
        self.education_organization_reference = education_organization_reference
        self.grading_period_reference = grading_period_reference
        self.student_reference = student_reference
        if gpa_cumulative is not None:
            self.gpa_cumulative = gpa_cumulative
        if gpa_given_grading_period is not None:
            self.gpa_given_grading_period = gpa_given_grading_period
        if grade_point_averages is not None:
            self.grade_point_averages = grade_point_averages
        if grades is not None:
            self.grades = grades
        if number_of_days_absent is not None:
            self.number_of_days_absent = number_of_days_absent
        if number_of_days_in_attendance is not None:
            self.number_of_days_in_attendance = number_of_days_in_attendance
        if number_of_days_tardy is not None:
            self.number_of_days_tardy = number_of_days_tardy
        if student_competency_objectives is not None:
            self.student_competency_objectives = student_competency_objectives
        if student_learning_objectives is not None:
            self.student_learning_objectives = student_learning_objectives
        if etag is not None:
            self.etag = etag

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

          # noqa: E501

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

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

          # noqa: E501

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

        self._id = id

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


        :return: The education_organization_reference of this EdFiReportCard.  # noqa: E501
        :rtype: EdFiEducationOrganizationReference
        """
        return self._education_organization_reference

    @education_organization_reference.setter
    def education_organization_reference(self, education_organization_reference):
        """Sets the education_organization_reference of this EdFiReportCard.


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

        self._education_organization_reference = education_organization_reference

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


        :return: The grading_period_reference of this EdFiReportCard.  # noqa: E501
        :rtype: EdFiGradingPeriodReference
        """
        return self._grading_period_reference

    @grading_period_reference.setter
    def grading_period_reference(self, grading_period_reference):
        """Sets the grading_period_reference of this EdFiReportCard.


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

        self._grading_period_reference = grading_period_reference

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


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

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


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

        self._student_reference = student_reference

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

        A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501

        :return: The gpa_cumulative of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._gpa_cumulative

    @gpa_cumulative.setter
    def gpa_cumulative(self, gpa_cumulative):
        """Sets the gpa_cumulative of this EdFiReportCard.

        A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501

        :param gpa_cumulative: The gpa_cumulative of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._gpa_cumulative = gpa_cumulative

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

        A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501

        :return: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._gpa_given_grading_period

    @gpa_given_grading_period.setter
    def gpa_given_grading_period(self, gpa_given_grading_period):
        """Sets the gpa_given_grading_period of this EdFiReportCard.

        A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501

        :param gpa_given_grading_period: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._gpa_given_grading_period = gpa_given_grading_period

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

        An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501

        :return: The grade_point_averages of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardGradePointAverage]
        """
        return self._grade_point_averages

    @grade_point_averages.setter
    def grade_point_averages(self, grade_point_averages):
        """Sets the grade_point_averages of this EdFiReportCard.

        An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501

        :param grade_point_averages: The grade_point_averages of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardGradePointAverage]
        """

        self._grade_point_averages = grade_point_averages

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

        An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501

        :return: The grades of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardGrade]
        """
        return self._grades

    @grades.setter
    def grades(self, grades):
        """Sets the grades of this EdFiReportCard.

        An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501

        :param grades: The grades of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardGrade]
        """

        self._grades = grades

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

        The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501

        :return: The number_of_days_absent of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._number_of_days_absent

    @number_of_days_absent.setter
    def number_of_days_absent(self, number_of_days_absent):
        """Sets the number_of_days_absent of this EdFiReportCard.

        The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501

        :param number_of_days_absent: The number_of_days_absent of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._number_of_days_absent = number_of_days_absent

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

        The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501

        :return: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501
        :rtype: float
        """
        return self._number_of_days_in_attendance

    @number_of_days_in_attendance.setter
    def number_of_days_in_attendance(self, number_of_days_in_attendance):
        """Sets the number_of_days_in_attendance of this EdFiReportCard.

        The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501

        :param number_of_days_in_attendance: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501
        :type: float
        """

        self._number_of_days_in_attendance = number_of_days_in_attendance

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

        The number of days an individual is tardy during a given reporting period.  # noqa: E501

        :return: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501
        :rtype: int
        """
        return self._number_of_days_tardy

    @number_of_days_tardy.setter
    def number_of_days_tardy(self, number_of_days_tardy):
        """Sets the number_of_days_tardy of this EdFiReportCard.

        The number of days an individual is tardy during a given reporting period.  # noqa: E501

        :param number_of_days_tardy: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501
        :type: int
        """

        self._number_of_days_tardy = number_of_days_tardy

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

        An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501

        :return: The student_competency_objectives of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardStudentCompetencyObjective]
        """
        return self._student_competency_objectives

    @student_competency_objectives.setter
    def student_competency_objectives(self, student_competency_objectives):
        """Sets the student_competency_objectives of this EdFiReportCard.

        An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501

        :param student_competency_objectives: The student_competency_objectives of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardStudentCompetencyObjective]
        """

        self._student_competency_objectives = student_competency_objectives

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

        An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501

        :return: The student_learning_objectives of this EdFiReportCard.  # noqa: E501
        :rtype: list[EdFiReportCardStudentLearningObjective]
        """
        return self._student_learning_objectives

    @student_learning_objectives.setter
    def student_learning_objectives(self, student_learning_objectives):
        """Sets the student_learning_objectives of this EdFiReportCard.

        An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501

        :param student_learning_objectives: The student_learning_objectives of this EdFiReportCard.  # noqa: E501
        :type: list[EdFiReportCardStudentLearningObjective]
        """

        self._student_learning_objectives = student_learning_objectives

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

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

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

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

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

        :param etag: The etag of this EdFiReportCard.  # 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(EdFiReportCard, 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, EdFiReportCard):
            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, EdFiReportCard):
            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 EdFiReportCard - a model defined in Swagger # noqa: E501 Gets the id of this EdFiReportCard.  # noqa: E501            # noqa: E501          :return: The id of this EdFiReportCard.  # noqa: E501         :rtype: str Sets the id of this EdFiReportCard.            # noqa: E501          :param id: The id of this EdFiReportCard.  # noqa: E501         :type: str Gets the education_organization_reference of this EdFiReportCard.  # noqa: E501           :return: The education_organization_reference of this EdFiReportCard.  # noqa: E501         :rtype: EdFiEducationOrganizationReference Sets the education_organization_reference of this EdFiReportCard.           :param education_organization_reference: The education_organization_reference of this EdFiReportCard.  # noqa: E501         :type: EdFiEducationOrganizationReference # noqa: E501 Gets the grading_period_reference of this EdFiReportCard.  # noqa: E501           :return: The grading_period_reference of this EdFiReportCard.  # noqa: E501         :rtype: EdFiGradingPeriodReference Sets the grading_period_reference of this EdFiReportCard.           :param grading_period_reference: The grading_period_reference of this EdFiReportCard.  # noqa: E501         :type: EdFiGradingPeriodReference # noqa: E501 Gets the student_reference of this EdFiReportCard.  # noqa: E501           :return: The student_reference of this EdFiReportCard.  # noqa: E501         :rtype: EdFiStudentReference Sets the student_reference of this EdFiReportCard.           :param student_reference: The student_reference of this EdFiReportCard.  # noqa: E501         :type: EdFiStudentReference # noqa: E501 Gets the gpa_cumulative of this EdFiReportCard.  # noqa: E501          A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501          :return: The gpa_cumulative of this EdFiReportCard.  # noqa: E501         :rtype: float Sets the gpa_cumulative of this EdFiReportCard.          A measure of cumulative average performance in all courses taken by an individual from the beginning of the school year through the current grading period.  # noqa: E501          :param gpa_cumulative: The gpa_cumulative of this EdFiReportCard.  # noqa: E501         :type: float Gets the gpa_given_grading_period of this EdFiReportCard.  # noqa: E501          A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501          :return: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501         :rtype: float Sets the gpa_given_grading_period of this EdFiReportCard.          A measure of average performance in all courses taken by an individual for the current grading period.  # noqa: E501          :param gpa_given_grading_period: The gpa_given_grading_period of this EdFiReportCard.  # noqa: E501         :type: float Gets the grade_point_averages of this EdFiReportCard.  # noqa: E501          An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501          :return: The grade_point_averages of this EdFiReportCard.  # noqa: E501         :rtype: list[EdFiReportCardGradePointAverage] Sets the grade_point_averages of this EdFiReportCard.          An unordered collection of reportCardGradePointAverages. A measure of average performance for courses taken by an individual.  # noqa: E501          :param grade_point_averages: The grade_point_averages of this EdFiReportCard.  # noqa: E501         :type: list[EdFiReportCardGradePointAverage] Gets the grades of this EdFiReportCard.  # noqa: E501          An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501          :return: The grades of this EdFiReportCard.  # noqa: E501         :rtype: list[EdFiReportCardGrade] Sets the grades of this EdFiReportCard.          An unordered collection of reportCardGrades. Grades for the classes attended by the Student for this grading period.  # noqa: E501          :param grades: The grades of this EdFiReportCard.  # noqa: E501         :type: list[EdFiReportCardGrade] Gets the number_of_days_absent of this EdFiReportCard.  # noqa: E501          The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501          :return: The number_of_days_absent of this EdFiReportCard.  # noqa: E501         :rtype: float Sets the number_of_days_absent of this EdFiReportCard.          The number of days an individual is absent when school is in session during a given reporting period.  # noqa: E501          :param number_of_days_absent: The number_of_days_absent of this EdFiReportCard.  # noqa: E501         :type: float Gets the number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501          The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501          :return: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501         :rtype: float Sets the number_of_days_in_attendance of this EdFiReportCard.          The number of days an individual is present when school is in session during a given reporting period.  # noqa: E501          :param number_of_days_in_attendance: The number_of_days_in_attendance of this EdFiReportCard.  # noqa: E501         :type: float Gets the number_of_days_tardy of this EdFiReportCard.  # noqa: E501          The number of days an individual is tardy during a given reporting period.  # noqa: E501          :return: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501         :rtype: int Sets the number_of_days_tardy of this EdFiReportCard.          The number of days an individual is tardy during a given reporting period.  # noqa: E501          :param number_of_days_tardy: The number_of_days_tardy of this EdFiReportCard.  # noqa: E501         :type: int Gets the student_competency_objectives of this EdFiReportCard.  # noqa: E501          An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501          :return: The student_competency_objectives of this EdFiReportCard.  # noqa: E501         :rtype: list[EdFiReportCardStudentCompetencyObjective] Sets the student_competency_objectives of this EdFiReportCard.          An unordered collection of reportCardStudentCompetencyObjectives. The Student competency evaluations associated for this grading period.  # noqa: E501          :param student_competency_objectives: The student_competency_objectives of this EdFiReportCard.  # noqa: E501         :type: list[EdFiReportCardStudentCompetencyObjective] Gets the student_learning_objectives of this EdFiReportCard.  # noqa: E501          An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501          :return: The student_learning_objectives of this EdFiReportCard.  # noqa: E501         :rtype: list[EdFiReportCardStudentLearningObjective] Sets the student_learning_objectives of this EdFiReportCard.          An unordered collection of reportCardStudentLearningObjectives. The StudentLearningObjective evaluations associated for this grading period.  # noqa: E501          :param student_learning_objectives: The student_learning_objectives of this EdFiReportCard.  # noqa: E501         :type: list[EdFiReportCardStudentLearningObjective] Gets the etag of this EdFiReportCard.  # noqa: E501          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :return: The etag of this EdFiReportCard.  # noqa: E501         :rtype: str Sets the etag of this EdFiReportCard.          A unique system-generated value that identifies the version of the resource.  # noqa: E501          :param etag: The etag of this EdFiReportCard.  # 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