# coding: utf-8

"""
    Xero Payroll AU API

    This is the Xero Payroll API for orgs in Australia region.  # noqa: E501

    Contact: api@xero.com
    Generated by: https://openapi-generator.tech
"""


import re  # noqa: F401

from xero_python.models import BaseModel


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

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        "earnings_rates": "list[EarningsRate]",
        "deduction_types": "list[DeductionType]",
        "leave_types": "list[LeaveType]",
        "reimbursement_types": "list[ReimbursementType]",
    }

    attribute_map = {
        "earnings_rates": "EarningsRates",
        "deduction_types": "DeductionTypes",
        "leave_types": "LeaveTypes",
        "reimbursement_types": "ReimbursementTypes",
    }

    def __init__(
        self,
        earnings_rates=None,
        deduction_types=None,
        leave_types=None,
        reimbursement_types=None,
    ):  # noqa: E501
        """PayItem - a model defined in OpenAPI"""  # noqa: E501

        self._earnings_rates = None
        self._deduction_types = None
        self._leave_types = None
        self._reimbursement_types = None
        self.discriminator = None

        if earnings_rates is not None:
            self.earnings_rates = earnings_rates
        if deduction_types is not None:
            self.deduction_types = deduction_types
        if leave_types is not None:
            self.leave_types = leave_types
        if reimbursement_types is not None:
            self.reimbursement_types = reimbursement_types

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


        :return: The earnings_rates of this PayItem.  # noqa: E501
        :rtype: list[EarningsRate]
        """
        return self._earnings_rates

    @earnings_rates.setter
    def earnings_rates(self, earnings_rates):
        """Sets the earnings_rates of this PayItem.


        :param earnings_rates: The earnings_rates of this PayItem.  # noqa: E501
        :type: list[EarningsRate]
        """

        self._earnings_rates = earnings_rates

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


        :return: The deduction_types of this PayItem.  # noqa: E501
        :rtype: list[DeductionType]
        """
        return self._deduction_types

    @deduction_types.setter
    def deduction_types(self, deduction_types):
        """Sets the deduction_types of this PayItem.


        :param deduction_types: The deduction_types of this PayItem.  # noqa: E501
        :type: list[DeductionType]
        """

        self._deduction_types = deduction_types

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


        :return: The leave_types of this PayItem.  # noqa: E501
        :rtype: list[LeaveType]
        """
        return self._leave_types

    @leave_types.setter
    def leave_types(self, leave_types):
        """Sets the leave_types of this PayItem.


        :param leave_types: The leave_types of this PayItem.  # noqa: E501
        :type: list[LeaveType]
        """

        self._leave_types = leave_types

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


        :return: The reimbursement_types of this PayItem.  # noqa: E501
        :rtype: list[ReimbursementType]
        """
        return self._reimbursement_types

    @reimbursement_types.setter
    def reimbursement_types(self, reimbursement_types):
        """Sets the reimbursement_types of this PayItem.


        :param reimbursement_types: The reimbursement_types of this PayItem.  # noqa: E501
        :type: list[ReimbursementType]
        """

        self._reimbursement_types = reimbursement_types
