<?php
/**
 * FortnoxLonEmployeeSinglePayloadItem
 *
 * PHP version 8.1
 *
 * @category Class
 * @package  Fortnox
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 */

/**
 * Fortnox API
 *
 * # Documentation   The Fortnox API is organized around REST. This means that we’ve designed it to have resource-oriented URLs and be as predictable as possible for you as developer.  It also means that we use HTTP status codes when something goes wrong and HTTP verbs understod by many API clients around the web.  We use a modified version of OAuth2 for authentication to offer a secure way for both you and our users to interact.  The API is generally built to support both XML and JSON but in this documentation all the examples will be in JSON.  We encourage you to read all the articles in the [Guides & Good to Know section](https://www.fortnox.se/developer/guides-and-good-to-know/)</a> first, before going forward and learning about the different resources.  This to ensure you get an understanding of some of the shared components of the API such as parameters and error handling.  ## Rate limits  The limit per access-token is 25 requests per 5 seconds. This equals to 300 requests per minute.  [Read more about this here.](https://www.fortnox.se/developer/guides-and-good-to-know/rate-limits-for-fortnox-api/)  ## Query parameters  Use query parameters with the ?-character and separate parameters with the &-character.   **Example:**  GET - https://api.fortnox.se/3/invoices?accountnumberfrom=3000&accountnumberto=4000 Read more about our parameters [here](https://www.fortnox.se/developer/guides-and-good-to-know/parameters/)   Search the documentation using the search field in the top left corner.
 *
 * The version of the OpenAPI document: 
 * Generated by: https://openapi-generator.tech
 * Generator version: 7.19.0
 */

/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

namespace Fortnox\Model;

use \ArrayAccess;
use \Fortnox\ObjectSerializer;

/**
 * FortnoxLonEmployeeSinglePayloadItem Class Doc Comment
 *
 * @category Class
 * @package  Fortnox
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 * @implements \ArrayAccess<string, mixed>
 */
class FortnoxLonEmployeeSinglePayloadItem implements ModelInterface, ArrayAccess, \JsonSerializable
{
    public const DISCRIMINATOR = null;

    /**
      * The original name of the model.
      *
      * @var string
      */
    protected static $openAPIModelName = 'fortnox_Lon_EmployeeSinglePayloadItem';

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $openAPITypes = [
        'atf_value' => 'float',
        'atk_value' => 'float',
        'absence_hours_non_vacation_based' => 'float',
        'absence_hours_vacation_based' => 'float',
        'absence_workdays_non_vacation_based' => 'float',
        'absence_workdays_vacation_based' => 'float',
        'address1' => 'string',
        'address2' => 'string',
        'auto_non_recurring_tax' => 'bool',
        'average_hourly_wage' => 'string',
        'average_weekly_hours' => 'string',
        'bank_account_no' => 'string',
        'city' => 'string',
        'clearing_no' => 'string',
        'cost_center' => 'string',
        'country' => 'string',
        'current_comp_balance' => 'float',
        'current_flex_balance' => 'float',
        'dated_salary_supplements' => '\Fortnox\Model\FortnoxLonDatedSalarySupplementListPayloadItem[]',
        'dated_schedules' => '\Fortnox\Model\FortnoxLonDatedScheduleListPayloadItem[]',
        'dated_wages' => '\Fortnox\Model\FortnoxLonDatedWageListPayloadItem[]',
        'email' => 'string',
        'employed_to' => '\DateTime',
        'employee_children' => '\Fortnox\Model\FortnoxLonEmployeeChildListPayloadItem[]',
        'employee_id' => 'string',
        'employment_date' => '\DateTime',
        'employment_form' => 'string',
        'first_name' => 'string',
        'fora_type' => 'string',
        'full_name' => 'string',
        'full_time_equivalent' => 'float',
        'hourly_pay' => 'string',
        'inactive' => 'bool',
        'ingoing_sick_leave' => '\Fortnox\Model\FortnoxLonIngoingSickLeaveListItem[]',
        'ingoing_used_holiday_supplement' => 'float',
        'ingoing_used_vacation_days' => 'float',
        'initial_comp' => 'float',
        'initial_flex' => 'float',
        'job_title' => 'string',
        'last_name' => 'string',
        'monthly_salary' => 'string',
        'non_recurring_tax' => 'string',
        'non_vacation_based_calendar_days_partial' => 'float',
        'non_vacation_based_calendar_days_whole' => 'float',
        'opening_salaries' => '\Fortnox\Model\FortnoxLonOpeningSalaryListPayloadItem[]',
        'payslip_type' => 'string',
        'personal_identity_number' => 'string',
        'personel_type' => 'string',
        'phone1' => 'string',
        'phone2' => 'string',
        'post_code' => 'string',
        'preliminary_tax_deducted' => 'float',
        'project' => 'string',
        'salary_form' => 'string',
        'schedule_id' => 'string',
        'tax_allowance' => 'string',
        'tax_column' => 'int',
        'tax_table' => 'string',
        'vacation_based_attendance_days' => 'float',
        'vacation_based_attendance_hours' => 'float',
        'vacation_based_calendar_days_whole' => 'float',
        'vacation_based_salary_total' => 'float',
        'vacation_based_salary_variable_addition' => 'float',
        'vacation_based_salary_worked_time' => 'float',
        'vacation_calculation_advance_vacation_debt' => 'float',
        'vacation_calculation_include_in_calculation' => 'bool',
        'vacation_calculation_same_wage_percent' => 'bool',
        'vacation_calculation_sole_custody' => 'bool',
        'vacation_calculation_sum_only_no_days' => 'bool',
        'vacation_calculation_total_vacation_salary_sum' => 'float',
        'vacation_calculation_vacation_entitlement' => 'float',
        'vacation_calculation_variable_addition_sum' => 'float',
        'vacation_days_paid' => 'float',
        'vacation_days_pending_paid' => 'float',
        'vacation_days_pending_prepaid' => 'float',
        'vacation_days_pending_saved' => 'float',
        'vacation_days_pending_saved_year1' => 'float',
        'vacation_days_pending_saved_year2' => 'float',
        'vacation_days_pending_saved_year3' => 'float',
        'vacation_days_pending_saved_year4' => 'float',
        'vacation_days_pending_saved_year5' => 'float',
        'vacation_days_pending_saved_year6_plus' => 'float',
        'vacation_days_pending_unpaid' => 'float',
        'vacation_days_prepaid' => 'float',
        'vacation_days_registered_paid' => 'float',
        'vacation_days_registered_prepaid' => 'float',
        'vacation_days_registered_saved' => 'float',
        'vacation_days_registered_saved_year1' => 'float',
        'vacation_days_registered_saved_year2' => 'float',
        'vacation_days_registered_saved_year3' => 'float',
        'vacation_days_registered_saved_year4' => 'float',
        'vacation_days_registered_saved_year5' => 'float',
        'vacation_days_registered_saved_year6_plus' => 'float',
        'vacation_days_registered_unpaid' => 'float',
        'vacation_days_saved' => 'float',
        'vacation_days_saved_employment_rate_year1' => 'float',
        'vacation_days_saved_employment_rate_year2' => 'float',
        'vacation_days_saved_employment_rate_year3' => 'float',
        'vacation_days_saved_employment_rate_year4' => 'float',
        'vacation_days_saved_employment_rate_year5' => 'float',
        'vacation_days_saved_employment_rate_year6_plus' => 'float',
        'vacation_days_saved_year1' => 'float',
        'vacation_days_saved_year2' => 'float',
        'vacation_days_saved_year3' => 'float',
        'vacation_days_saved_year4' => 'float',
        'vacation_days_saved_year5' => 'float',
        'vacation_days_saved_year6_plus' => 'float',
        'vacation_days_unpaid' => 'float',
        'working_time_enumeration' => 'string'
    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      * @phpstan-var array<string, string|null>
      * @psalm-var array<string, string|null>
      */
    protected static $openAPIFormats = [
        'atf_value' => 'float',
        'atk_value' => 'float',
        'absence_hours_non_vacation_based' => 'float',
        'absence_hours_vacation_based' => 'float',
        'absence_workdays_non_vacation_based' => 'float',
        'absence_workdays_vacation_based' => 'float',
        'address1' => null,
        'address2' => null,
        'auto_non_recurring_tax' => null,
        'average_hourly_wage' => null,
        'average_weekly_hours' => null,
        'bank_account_no' => null,
        'city' => null,
        'clearing_no' => null,
        'cost_center' => null,
        'country' => null,
        'current_comp_balance' => 'float',
        'current_flex_balance' => 'float',
        'dated_salary_supplements' => null,
        'dated_schedules' => null,
        'dated_wages' => null,
        'email' => null,
        'employed_to' => 'date',
        'employee_children' => null,
        'employee_id' => null,
        'employment_date' => 'date',
        'employment_form' => null,
        'first_name' => null,
        'fora_type' => null,
        'full_name' => null,
        'full_time_equivalent' => 'float',
        'hourly_pay' => null,
        'inactive' => null,
        'ingoing_sick_leave' => null,
        'ingoing_used_holiday_supplement' => 'float',
        'ingoing_used_vacation_days' => 'float',
        'initial_comp' => 'float',
        'initial_flex' => 'float',
        'job_title' => null,
        'last_name' => null,
        'monthly_salary' => null,
        'non_recurring_tax' => null,
        'non_vacation_based_calendar_days_partial' => 'float',
        'non_vacation_based_calendar_days_whole' => 'float',
        'opening_salaries' => null,
        'payslip_type' => null,
        'personal_identity_number' => null,
        'personel_type' => null,
        'phone1' => null,
        'phone2' => null,
        'post_code' => null,
        'preliminary_tax_deducted' => 'float',
        'project' => null,
        'salary_form' => null,
        'schedule_id' => null,
        'tax_allowance' => null,
        'tax_column' => 'int32',
        'tax_table' => null,
        'vacation_based_attendance_days' => 'float',
        'vacation_based_attendance_hours' => 'float',
        'vacation_based_calendar_days_whole' => 'float',
        'vacation_based_salary_total' => 'float',
        'vacation_based_salary_variable_addition' => 'float',
        'vacation_based_salary_worked_time' => 'float',
        'vacation_calculation_advance_vacation_debt' => 'float',
        'vacation_calculation_include_in_calculation' => null,
        'vacation_calculation_same_wage_percent' => null,
        'vacation_calculation_sole_custody' => null,
        'vacation_calculation_sum_only_no_days' => null,
        'vacation_calculation_total_vacation_salary_sum' => 'float',
        'vacation_calculation_vacation_entitlement' => 'float',
        'vacation_calculation_variable_addition_sum' => 'float',
        'vacation_days_paid' => 'float',
        'vacation_days_pending_paid' => 'float',
        'vacation_days_pending_prepaid' => 'float',
        'vacation_days_pending_saved' => 'float',
        'vacation_days_pending_saved_year1' => 'float',
        'vacation_days_pending_saved_year2' => 'float',
        'vacation_days_pending_saved_year3' => 'float',
        'vacation_days_pending_saved_year4' => 'float',
        'vacation_days_pending_saved_year5' => 'float',
        'vacation_days_pending_saved_year6_plus' => 'float',
        'vacation_days_pending_unpaid' => 'float',
        'vacation_days_prepaid' => 'float',
        'vacation_days_registered_paid' => 'float',
        'vacation_days_registered_prepaid' => 'float',
        'vacation_days_registered_saved' => 'float',
        'vacation_days_registered_saved_year1' => 'float',
        'vacation_days_registered_saved_year2' => 'float',
        'vacation_days_registered_saved_year3' => 'float',
        'vacation_days_registered_saved_year4' => 'float',
        'vacation_days_registered_saved_year5' => 'float',
        'vacation_days_registered_saved_year6_plus' => 'float',
        'vacation_days_registered_unpaid' => 'float',
        'vacation_days_saved' => 'float',
        'vacation_days_saved_employment_rate_year1' => 'float',
        'vacation_days_saved_employment_rate_year2' => 'float',
        'vacation_days_saved_employment_rate_year3' => 'float',
        'vacation_days_saved_employment_rate_year4' => 'float',
        'vacation_days_saved_employment_rate_year5' => 'float',
        'vacation_days_saved_employment_rate_year6_plus' => 'float',
        'vacation_days_saved_year1' => 'float',
        'vacation_days_saved_year2' => 'float',
        'vacation_days_saved_year3' => 'float',
        'vacation_days_saved_year4' => 'float',
        'vacation_days_saved_year5' => 'float',
        'vacation_days_saved_year6_plus' => 'float',
        'vacation_days_unpaid' => 'float',
        'working_time_enumeration' => null
    ];

    /**
      * Array of nullable properties. Used for (de)serialization
      *
      * @var boolean[]
      */
    protected static array $openAPINullables = [
        'atf_value' => false,
        'atk_value' => false,
        'absence_hours_non_vacation_based' => false,
        'absence_hours_vacation_based' => false,
        'absence_workdays_non_vacation_based' => false,
        'absence_workdays_vacation_based' => false,
        'address1' => false,
        'address2' => false,
        'auto_non_recurring_tax' => false,
        'average_hourly_wage' => false,
        'average_weekly_hours' => false,
        'bank_account_no' => false,
        'city' => false,
        'clearing_no' => false,
        'cost_center' => false,
        'country' => false,
        'current_comp_balance' => false,
        'current_flex_balance' => false,
        'dated_salary_supplements' => false,
        'dated_schedules' => false,
        'dated_wages' => false,
        'email' => false,
        'employed_to' => false,
        'employee_children' => false,
        'employee_id' => false,
        'employment_date' => false,
        'employment_form' => false,
        'first_name' => false,
        'fora_type' => false,
        'full_name' => false,
        'full_time_equivalent' => false,
        'hourly_pay' => false,
        'inactive' => false,
        'ingoing_sick_leave' => false,
        'ingoing_used_holiday_supplement' => false,
        'ingoing_used_vacation_days' => false,
        'initial_comp' => false,
        'initial_flex' => false,
        'job_title' => false,
        'last_name' => false,
        'monthly_salary' => false,
        'non_recurring_tax' => false,
        'non_vacation_based_calendar_days_partial' => false,
        'non_vacation_based_calendar_days_whole' => false,
        'opening_salaries' => false,
        'payslip_type' => false,
        'personal_identity_number' => false,
        'personel_type' => false,
        'phone1' => false,
        'phone2' => false,
        'post_code' => false,
        'preliminary_tax_deducted' => false,
        'project' => false,
        'salary_form' => false,
        'schedule_id' => false,
        'tax_allowance' => false,
        'tax_column' => false,
        'tax_table' => false,
        'vacation_based_attendance_days' => false,
        'vacation_based_attendance_hours' => false,
        'vacation_based_calendar_days_whole' => false,
        'vacation_based_salary_total' => false,
        'vacation_based_salary_variable_addition' => false,
        'vacation_based_salary_worked_time' => false,
        'vacation_calculation_advance_vacation_debt' => false,
        'vacation_calculation_include_in_calculation' => false,
        'vacation_calculation_same_wage_percent' => false,
        'vacation_calculation_sole_custody' => false,
        'vacation_calculation_sum_only_no_days' => false,
        'vacation_calculation_total_vacation_salary_sum' => false,
        'vacation_calculation_vacation_entitlement' => false,
        'vacation_calculation_variable_addition_sum' => false,
        'vacation_days_paid' => false,
        'vacation_days_pending_paid' => false,
        'vacation_days_pending_prepaid' => false,
        'vacation_days_pending_saved' => false,
        'vacation_days_pending_saved_year1' => false,
        'vacation_days_pending_saved_year2' => false,
        'vacation_days_pending_saved_year3' => false,
        'vacation_days_pending_saved_year4' => false,
        'vacation_days_pending_saved_year5' => false,
        'vacation_days_pending_saved_year6_plus' => false,
        'vacation_days_pending_unpaid' => false,
        'vacation_days_prepaid' => false,
        'vacation_days_registered_paid' => false,
        'vacation_days_registered_prepaid' => false,
        'vacation_days_registered_saved' => false,
        'vacation_days_registered_saved_year1' => false,
        'vacation_days_registered_saved_year2' => false,
        'vacation_days_registered_saved_year3' => false,
        'vacation_days_registered_saved_year4' => false,
        'vacation_days_registered_saved_year5' => false,
        'vacation_days_registered_saved_year6_plus' => false,
        'vacation_days_registered_unpaid' => false,
        'vacation_days_saved' => false,
        'vacation_days_saved_employment_rate_year1' => false,
        'vacation_days_saved_employment_rate_year2' => false,
        'vacation_days_saved_employment_rate_year3' => false,
        'vacation_days_saved_employment_rate_year4' => false,
        'vacation_days_saved_employment_rate_year5' => false,
        'vacation_days_saved_employment_rate_year6_plus' => false,
        'vacation_days_saved_year1' => false,
        'vacation_days_saved_year2' => false,
        'vacation_days_saved_year3' => false,
        'vacation_days_saved_year4' => false,
        'vacation_days_saved_year5' => false,
        'vacation_days_saved_year6_plus' => false,
        'vacation_days_unpaid' => false,
        'working_time_enumeration' => false
    ];

    /**
      * If a nullable field gets set to null, insert it here
      *
      * @var boolean[]
      */
    protected array $openAPINullablesSetToNull = [];

    /**
     * Array of property to type mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPITypes()
    {
        return self::$openAPITypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPIFormats()
    {
        return self::$openAPIFormats;
    }

    /**
     * Array of nullable properties
     *
     * @return array
     */
    protected static function openAPINullables(): array
    {
        return self::$openAPINullables;
    }

    /**
     * Array of nullable field names deliberately set to null
     *
     * @return boolean[]
     */
    private function getOpenAPINullablesSetToNull(): array
    {
        return $this->openAPINullablesSetToNull;
    }

    /**
     * Setter - Array of nullable field names deliberately set to null
     *
     * @param boolean[] $openAPINullablesSetToNull
     */
    private function setOpenAPINullablesSetToNull(array $openAPINullablesSetToNull): void
    {
        $this->openAPINullablesSetToNull = $openAPINullablesSetToNull;
    }

    /**
     * Checks if a property is nullable
     *
     * @param string $property
     * @return bool
     */
    public static function isNullable(string $property): bool
    {
        return self::openAPINullables()[$property] ?? false;
    }

    /**
     * Checks if a nullable property is set to null.
     *
     * @param string $property
     * @return bool
     */
    public function isNullableSetToNull(string $property): bool
    {
        return in_array($property, $this->getOpenAPINullablesSetToNull(), true);
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'atf_value' => 'ATFValue',
        'atk_value' => 'ATKValue',
        'absence_hours_non_vacation_based' => 'AbsenceHoursNonVacationBased',
        'absence_hours_vacation_based' => 'AbsenceHoursVacationBased',
        'absence_workdays_non_vacation_based' => 'AbsenceWorkdaysNonVacationBased',
        'absence_workdays_vacation_based' => 'AbsenceWorkdaysVacationBased',
        'address1' => 'Address1',
        'address2' => 'Address2',
        'auto_non_recurring_tax' => 'AutoNonRecurringTax',
        'average_hourly_wage' => 'AverageHourlyWage',
        'average_weekly_hours' => 'AverageWeeklyHours',
        'bank_account_no' => 'BankAccountNo',
        'city' => 'City',
        'clearing_no' => 'ClearingNo',
        'cost_center' => 'CostCenter',
        'country' => 'Country',
        'current_comp_balance' => 'CurrentCompBalance',
        'current_flex_balance' => 'CurrentFlexBalance',
        'dated_salary_supplements' => 'DatedSalarySupplements',
        'dated_schedules' => 'DatedSchedules',
        'dated_wages' => 'DatedWages',
        'email' => 'Email',
        'employed_to' => 'EmployedTo',
        'employee_children' => 'EmployeeChildren',
        'employee_id' => 'EmployeeId',
        'employment_date' => 'EmploymentDate',
        'employment_form' => 'EmploymentForm',
        'first_name' => 'FirstName',
        'fora_type' => 'ForaType',
        'full_name' => 'FullName',
        'full_time_equivalent' => 'FullTimeEquivalent',
        'hourly_pay' => 'HourlyPay',
        'inactive' => 'Inactive',
        'ingoing_sick_leave' => 'IngoingSickLeave',
        'ingoing_used_holiday_supplement' => 'IngoingUsedHolidaySupplement',
        'ingoing_used_vacation_days' => 'IngoingUsedVacationDays',
        'initial_comp' => 'InitialComp',
        'initial_flex' => 'InitialFlex',
        'job_title' => 'JobTitle',
        'last_name' => 'LastName',
        'monthly_salary' => 'MonthlySalary',
        'non_recurring_tax' => 'NonRecurringTax',
        'non_vacation_based_calendar_days_partial' => 'NonVacationBasedCalendarDaysPartial',
        'non_vacation_based_calendar_days_whole' => 'NonVacationBasedCalendarDaysWhole',
        'opening_salaries' => 'OpeningSalaries',
        'payslip_type' => 'PayslipType',
        'personal_identity_number' => 'PersonalIdentityNumber',
        'personel_type' => 'PersonelType',
        'phone1' => 'Phone1',
        'phone2' => 'Phone2',
        'post_code' => 'PostCode',
        'preliminary_tax_deducted' => 'PreliminaryTaxDeducted',
        'project' => 'Project',
        'salary_form' => 'SalaryForm',
        'schedule_id' => 'ScheduleId',
        'tax_allowance' => 'TaxAllowance',
        'tax_column' => 'TaxColumn',
        'tax_table' => 'TaxTable',
        'vacation_based_attendance_days' => 'VacationBasedAttendanceDays',
        'vacation_based_attendance_hours' => 'VacationBasedAttendanceHours',
        'vacation_based_calendar_days_whole' => 'VacationBasedCalendarDaysWhole',
        'vacation_based_salary_total' => 'VacationBasedSalaryTotal',
        'vacation_based_salary_variable_addition' => 'VacationBasedSalaryVariableAddition',
        'vacation_based_salary_worked_time' => 'VacationBasedSalaryWorkedTime',
        'vacation_calculation_advance_vacation_debt' => 'VacationCalculationAdvanceVacationDebt',
        'vacation_calculation_include_in_calculation' => 'VacationCalculationIncludeInCalculation',
        'vacation_calculation_same_wage_percent' => 'VacationCalculationSameWagePercent',
        'vacation_calculation_sole_custody' => 'VacationCalculationSoleCustody',
        'vacation_calculation_sum_only_no_days' => 'VacationCalculationSumOnlyNoDays',
        'vacation_calculation_total_vacation_salary_sum' => 'VacationCalculationTotalVacationSalarySum',
        'vacation_calculation_vacation_entitlement' => 'VacationCalculationVacationEntitlement',
        'vacation_calculation_variable_addition_sum' => 'VacationCalculationVariableAdditionSum',
        'vacation_days_paid' => 'VacationDaysPaid',
        'vacation_days_pending_paid' => 'VacationDaysPendingPaid',
        'vacation_days_pending_prepaid' => 'VacationDaysPendingPrepaid',
        'vacation_days_pending_saved' => 'VacationDaysPendingSaved',
        'vacation_days_pending_saved_year1' => 'VacationDaysPendingSavedYear1',
        'vacation_days_pending_saved_year2' => 'VacationDaysPendingSavedYear2',
        'vacation_days_pending_saved_year3' => 'VacationDaysPendingSavedYear3',
        'vacation_days_pending_saved_year4' => 'VacationDaysPendingSavedYear4',
        'vacation_days_pending_saved_year5' => 'VacationDaysPendingSavedYear5',
        'vacation_days_pending_saved_year6_plus' => 'VacationDaysPendingSavedYear6Plus',
        'vacation_days_pending_unpaid' => 'VacationDaysPendingUnpaid',
        'vacation_days_prepaid' => 'VacationDaysPrepaid',
        'vacation_days_registered_paid' => 'VacationDaysRegisteredPaid',
        'vacation_days_registered_prepaid' => 'VacationDaysRegisteredPrepaid',
        'vacation_days_registered_saved' => 'VacationDaysRegisteredSaved',
        'vacation_days_registered_saved_year1' => 'VacationDaysRegisteredSavedYear1',
        'vacation_days_registered_saved_year2' => 'VacationDaysRegisteredSavedYear2',
        'vacation_days_registered_saved_year3' => 'VacationDaysRegisteredSavedYear3',
        'vacation_days_registered_saved_year4' => 'VacationDaysRegisteredSavedYear4',
        'vacation_days_registered_saved_year5' => 'VacationDaysRegisteredSavedYear5',
        'vacation_days_registered_saved_year6_plus' => 'VacationDaysRegisteredSavedYear6Plus',
        'vacation_days_registered_unpaid' => 'VacationDaysRegisteredUnpaid',
        'vacation_days_saved' => 'VacationDaysSaved',
        'vacation_days_saved_employment_rate_year1' => 'VacationDaysSavedEmploymentRateYear1',
        'vacation_days_saved_employment_rate_year2' => 'VacationDaysSavedEmploymentRateYear2',
        'vacation_days_saved_employment_rate_year3' => 'VacationDaysSavedEmploymentRateYear3',
        'vacation_days_saved_employment_rate_year4' => 'VacationDaysSavedEmploymentRateYear4',
        'vacation_days_saved_employment_rate_year5' => 'VacationDaysSavedEmploymentRateYear5',
        'vacation_days_saved_employment_rate_year6_plus' => 'VacationDaysSavedEmploymentRateYear6Plus',
        'vacation_days_saved_year1' => 'VacationDaysSavedYear1',
        'vacation_days_saved_year2' => 'VacationDaysSavedYear2',
        'vacation_days_saved_year3' => 'VacationDaysSavedYear3',
        'vacation_days_saved_year4' => 'VacationDaysSavedYear4',
        'vacation_days_saved_year5' => 'VacationDaysSavedYear5',
        'vacation_days_saved_year6_plus' => 'VacationDaysSavedYear6Plus',
        'vacation_days_unpaid' => 'VacationDaysUnpaid',
        'working_time_enumeration' => 'WorkingTimeEnumeration'
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'atf_value' => 'setAtfValue',
        'atk_value' => 'setAtkValue',
        'absence_hours_non_vacation_based' => 'setAbsenceHoursNonVacationBased',
        'absence_hours_vacation_based' => 'setAbsenceHoursVacationBased',
        'absence_workdays_non_vacation_based' => 'setAbsenceWorkdaysNonVacationBased',
        'absence_workdays_vacation_based' => 'setAbsenceWorkdaysVacationBased',
        'address1' => 'setAddress1',
        'address2' => 'setAddress2',
        'auto_non_recurring_tax' => 'setAutoNonRecurringTax',
        'average_hourly_wage' => 'setAverageHourlyWage',
        'average_weekly_hours' => 'setAverageWeeklyHours',
        'bank_account_no' => 'setBankAccountNo',
        'city' => 'setCity',
        'clearing_no' => 'setClearingNo',
        'cost_center' => 'setCostCenter',
        'country' => 'setCountry',
        'current_comp_balance' => 'setCurrentCompBalance',
        'current_flex_balance' => 'setCurrentFlexBalance',
        'dated_salary_supplements' => 'setDatedSalarySupplements',
        'dated_schedules' => 'setDatedSchedules',
        'dated_wages' => 'setDatedWages',
        'email' => 'setEmail',
        'employed_to' => 'setEmployedTo',
        'employee_children' => 'setEmployeeChildren',
        'employee_id' => 'setEmployeeId',
        'employment_date' => 'setEmploymentDate',
        'employment_form' => 'setEmploymentForm',
        'first_name' => 'setFirstName',
        'fora_type' => 'setForaType',
        'full_name' => 'setFullName',
        'full_time_equivalent' => 'setFullTimeEquivalent',
        'hourly_pay' => 'setHourlyPay',
        'inactive' => 'setInactive',
        'ingoing_sick_leave' => 'setIngoingSickLeave',
        'ingoing_used_holiday_supplement' => 'setIngoingUsedHolidaySupplement',
        'ingoing_used_vacation_days' => 'setIngoingUsedVacationDays',
        'initial_comp' => 'setInitialComp',
        'initial_flex' => 'setInitialFlex',
        'job_title' => 'setJobTitle',
        'last_name' => 'setLastName',
        'monthly_salary' => 'setMonthlySalary',
        'non_recurring_tax' => 'setNonRecurringTax',
        'non_vacation_based_calendar_days_partial' => 'setNonVacationBasedCalendarDaysPartial',
        'non_vacation_based_calendar_days_whole' => 'setNonVacationBasedCalendarDaysWhole',
        'opening_salaries' => 'setOpeningSalaries',
        'payslip_type' => 'setPayslipType',
        'personal_identity_number' => 'setPersonalIdentityNumber',
        'personel_type' => 'setPersonelType',
        'phone1' => 'setPhone1',
        'phone2' => 'setPhone2',
        'post_code' => 'setPostCode',
        'preliminary_tax_deducted' => 'setPreliminaryTaxDeducted',
        'project' => 'setProject',
        'salary_form' => 'setSalaryForm',
        'schedule_id' => 'setScheduleId',
        'tax_allowance' => 'setTaxAllowance',
        'tax_column' => 'setTaxColumn',
        'tax_table' => 'setTaxTable',
        'vacation_based_attendance_days' => 'setVacationBasedAttendanceDays',
        'vacation_based_attendance_hours' => 'setVacationBasedAttendanceHours',
        'vacation_based_calendar_days_whole' => 'setVacationBasedCalendarDaysWhole',
        'vacation_based_salary_total' => 'setVacationBasedSalaryTotal',
        'vacation_based_salary_variable_addition' => 'setVacationBasedSalaryVariableAddition',
        'vacation_based_salary_worked_time' => 'setVacationBasedSalaryWorkedTime',
        'vacation_calculation_advance_vacation_debt' => 'setVacationCalculationAdvanceVacationDebt',
        'vacation_calculation_include_in_calculation' => 'setVacationCalculationIncludeInCalculation',
        'vacation_calculation_same_wage_percent' => 'setVacationCalculationSameWagePercent',
        'vacation_calculation_sole_custody' => 'setVacationCalculationSoleCustody',
        'vacation_calculation_sum_only_no_days' => 'setVacationCalculationSumOnlyNoDays',
        'vacation_calculation_total_vacation_salary_sum' => 'setVacationCalculationTotalVacationSalarySum',
        'vacation_calculation_vacation_entitlement' => 'setVacationCalculationVacationEntitlement',
        'vacation_calculation_variable_addition_sum' => 'setVacationCalculationVariableAdditionSum',
        'vacation_days_paid' => 'setVacationDaysPaid',
        'vacation_days_pending_paid' => 'setVacationDaysPendingPaid',
        'vacation_days_pending_prepaid' => 'setVacationDaysPendingPrepaid',
        'vacation_days_pending_saved' => 'setVacationDaysPendingSaved',
        'vacation_days_pending_saved_year1' => 'setVacationDaysPendingSavedYear1',
        'vacation_days_pending_saved_year2' => 'setVacationDaysPendingSavedYear2',
        'vacation_days_pending_saved_year3' => 'setVacationDaysPendingSavedYear3',
        'vacation_days_pending_saved_year4' => 'setVacationDaysPendingSavedYear4',
        'vacation_days_pending_saved_year5' => 'setVacationDaysPendingSavedYear5',
        'vacation_days_pending_saved_year6_plus' => 'setVacationDaysPendingSavedYear6Plus',
        'vacation_days_pending_unpaid' => 'setVacationDaysPendingUnpaid',
        'vacation_days_prepaid' => 'setVacationDaysPrepaid',
        'vacation_days_registered_paid' => 'setVacationDaysRegisteredPaid',
        'vacation_days_registered_prepaid' => 'setVacationDaysRegisteredPrepaid',
        'vacation_days_registered_saved' => 'setVacationDaysRegisteredSaved',
        'vacation_days_registered_saved_year1' => 'setVacationDaysRegisteredSavedYear1',
        'vacation_days_registered_saved_year2' => 'setVacationDaysRegisteredSavedYear2',
        'vacation_days_registered_saved_year3' => 'setVacationDaysRegisteredSavedYear3',
        'vacation_days_registered_saved_year4' => 'setVacationDaysRegisteredSavedYear4',
        'vacation_days_registered_saved_year5' => 'setVacationDaysRegisteredSavedYear5',
        'vacation_days_registered_saved_year6_plus' => 'setVacationDaysRegisteredSavedYear6Plus',
        'vacation_days_registered_unpaid' => 'setVacationDaysRegisteredUnpaid',
        'vacation_days_saved' => 'setVacationDaysSaved',
        'vacation_days_saved_employment_rate_year1' => 'setVacationDaysSavedEmploymentRateYear1',
        'vacation_days_saved_employment_rate_year2' => 'setVacationDaysSavedEmploymentRateYear2',
        'vacation_days_saved_employment_rate_year3' => 'setVacationDaysSavedEmploymentRateYear3',
        'vacation_days_saved_employment_rate_year4' => 'setVacationDaysSavedEmploymentRateYear4',
        'vacation_days_saved_employment_rate_year5' => 'setVacationDaysSavedEmploymentRateYear5',
        'vacation_days_saved_employment_rate_year6_plus' => 'setVacationDaysSavedEmploymentRateYear6Plus',
        'vacation_days_saved_year1' => 'setVacationDaysSavedYear1',
        'vacation_days_saved_year2' => 'setVacationDaysSavedYear2',
        'vacation_days_saved_year3' => 'setVacationDaysSavedYear3',
        'vacation_days_saved_year4' => 'setVacationDaysSavedYear4',
        'vacation_days_saved_year5' => 'setVacationDaysSavedYear5',
        'vacation_days_saved_year6_plus' => 'setVacationDaysSavedYear6Plus',
        'vacation_days_unpaid' => 'setVacationDaysUnpaid',
        'working_time_enumeration' => 'setWorkingTimeEnumeration'
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'atf_value' => 'getAtfValue',
        'atk_value' => 'getAtkValue',
        'absence_hours_non_vacation_based' => 'getAbsenceHoursNonVacationBased',
        'absence_hours_vacation_based' => 'getAbsenceHoursVacationBased',
        'absence_workdays_non_vacation_based' => 'getAbsenceWorkdaysNonVacationBased',
        'absence_workdays_vacation_based' => 'getAbsenceWorkdaysVacationBased',
        'address1' => 'getAddress1',
        'address2' => 'getAddress2',
        'auto_non_recurring_tax' => 'getAutoNonRecurringTax',
        'average_hourly_wage' => 'getAverageHourlyWage',
        'average_weekly_hours' => 'getAverageWeeklyHours',
        'bank_account_no' => 'getBankAccountNo',
        'city' => 'getCity',
        'clearing_no' => 'getClearingNo',
        'cost_center' => 'getCostCenter',
        'country' => 'getCountry',
        'current_comp_balance' => 'getCurrentCompBalance',
        'current_flex_balance' => 'getCurrentFlexBalance',
        'dated_salary_supplements' => 'getDatedSalarySupplements',
        'dated_schedules' => 'getDatedSchedules',
        'dated_wages' => 'getDatedWages',
        'email' => 'getEmail',
        'employed_to' => 'getEmployedTo',
        'employee_children' => 'getEmployeeChildren',
        'employee_id' => 'getEmployeeId',
        'employment_date' => 'getEmploymentDate',
        'employment_form' => 'getEmploymentForm',
        'first_name' => 'getFirstName',
        'fora_type' => 'getForaType',
        'full_name' => 'getFullName',
        'full_time_equivalent' => 'getFullTimeEquivalent',
        'hourly_pay' => 'getHourlyPay',
        'inactive' => 'getInactive',
        'ingoing_sick_leave' => 'getIngoingSickLeave',
        'ingoing_used_holiday_supplement' => 'getIngoingUsedHolidaySupplement',
        'ingoing_used_vacation_days' => 'getIngoingUsedVacationDays',
        'initial_comp' => 'getInitialComp',
        'initial_flex' => 'getInitialFlex',
        'job_title' => 'getJobTitle',
        'last_name' => 'getLastName',
        'monthly_salary' => 'getMonthlySalary',
        'non_recurring_tax' => 'getNonRecurringTax',
        'non_vacation_based_calendar_days_partial' => 'getNonVacationBasedCalendarDaysPartial',
        'non_vacation_based_calendar_days_whole' => 'getNonVacationBasedCalendarDaysWhole',
        'opening_salaries' => 'getOpeningSalaries',
        'payslip_type' => 'getPayslipType',
        'personal_identity_number' => 'getPersonalIdentityNumber',
        'personel_type' => 'getPersonelType',
        'phone1' => 'getPhone1',
        'phone2' => 'getPhone2',
        'post_code' => 'getPostCode',
        'preliminary_tax_deducted' => 'getPreliminaryTaxDeducted',
        'project' => 'getProject',
        'salary_form' => 'getSalaryForm',
        'schedule_id' => 'getScheduleId',
        'tax_allowance' => 'getTaxAllowance',
        'tax_column' => 'getTaxColumn',
        'tax_table' => 'getTaxTable',
        'vacation_based_attendance_days' => 'getVacationBasedAttendanceDays',
        'vacation_based_attendance_hours' => 'getVacationBasedAttendanceHours',
        'vacation_based_calendar_days_whole' => 'getVacationBasedCalendarDaysWhole',
        'vacation_based_salary_total' => 'getVacationBasedSalaryTotal',
        'vacation_based_salary_variable_addition' => 'getVacationBasedSalaryVariableAddition',
        'vacation_based_salary_worked_time' => 'getVacationBasedSalaryWorkedTime',
        'vacation_calculation_advance_vacation_debt' => 'getVacationCalculationAdvanceVacationDebt',
        'vacation_calculation_include_in_calculation' => 'getVacationCalculationIncludeInCalculation',
        'vacation_calculation_same_wage_percent' => 'getVacationCalculationSameWagePercent',
        'vacation_calculation_sole_custody' => 'getVacationCalculationSoleCustody',
        'vacation_calculation_sum_only_no_days' => 'getVacationCalculationSumOnlyNoDays',
        'vacation_calculation_total_vacation_salary_sum' => 'getVacationCalculationTotalVacationSalarySum',
        'vacation_calculation_vacation_entitlement' => 'getVacationCalculationVacationEntitlement',
        'vacation_calculation_variable_addition_sum' => 'getVacationCalculationVariableAdditionSum',
        'vacation_days_paid' => 'getVacationDaysPaid',
        'vacation_days_pending_paid' => 'getVacationDaysPendingPaid',
        'vacation_days_pending_prepaid' => 'getVacationDaysPendingPrepaid',
        'vacation_days_pending_saved' => 'getVacationDaysPendingSaved',
        'vacation_days_pending_saved_year1' => 'getVacationDaysPendingSavedYear1',
        'vacation_days_pending_saved_year2' => 'getVacationDaysPendingSavedYear2',
        'vacation_days_pending_saved_year3' => 'getVacationDaysPendingSavedYear3',
        'vacation_days_pending_saved_year4' => 'getVacationDaysPendingSavedYear4',
        'vacation_days_pending_saved_year5' => 'getVacationDaysPendingSavedYear5',
        'vacation_days_pending_saved_year6_plus' => 'getVacationDaysPendingSavedYear6Plus',
        'vacation_days_pending_unpaid' => 'getVacationDaysPendingUnpaid',
        'vacation_days_prepaid' => 'getVacationDaysPrepaid',
        'vacation_days_registered_paid' => 'getVacationDaysRegisteredPaid',
        'vacation_days_registered_prepaid' => 'getVacationDaysRegisteredPrepaid',
        'vacation_days_registered_saved' => 'getVacationDaysRegisteredSaved',
        'vacation_days_registered_saved_year1' => 'getVacationDaysRegisteredSavedYear1',
        'vacation_days_registered_saved_year2' => 'getVacationDaysRegisteredSavedYear2',
        'vacation_days_registered_saved_year3' => 'getVacationDaysRegisteredSavedYear3',
        'vacation_days_registered_saved_year4' => 'getVacationDaysRegisteredSavedYear4',
        'vacation_days_registered_saved_year5' => 'getVacationDaysRegisteredSavedYear5',
        'vacation_days_registered_saved_year6_plus' => 'getVacationDaysRegisteredSavedYear6Plus',
        'vacation_days_registered_unpaid' => 'getVacationDaysRegisteredUnpaid',
        'vacation_days_saved' => 'getVacationDaysSaved',
        'vacation_days_saved_employment_rate_year1' => 'getVacationDaysSavedEmploymentRateYear1',
        'vacation_days_saved_employment_rate_year2' => 'getVacationDaysSavedEmploymentRateYear2',
        'vacation_days_saved_employment_rate_year3' => 'getVacationDaysSavedEmploymentRateYear3',
        'vacation_days_saved_employment_rate_year4' => 'getVacationDaysSavedEmploymentRateYear4',
        'vacation_days_saved_employment_rate_year5' => 'getVacationDaysSavedEmploymentRateYear5',
        'vacation_days_saved_employment_rate_year6_plus' => 'getVacationDaysSavedEmploymentRateYear6Plus',
        'vacation_days_saved_year1' => 'getVacationDaysSavedYear1',
        'vacation_days_saved_year2' => 'getVacationDaysSavedYear2',
        'vacation_days_saved_year3' => 'getVacationDaysSavedYear3',
        'vacation_days_saved_year4' => 'getVacationDaysSavedYear4',
        'vacation_days_saved_year5' => 'getVacationDaysSavedYear5',
        'vacation_days_saved_year6_plus' => 'getVacationDaysSavedYear6Plus',
        'vacation_days_unpaid' => 'getVacationDaysUnpaid',
        'working_time_enumeration' => 'getWorkingTimeEnumeration'
    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$openAPIModelName;
    }

    public const EMPLOYMENT_FORM_TV = 'TV';
    public const EMPLOYMENT_FORM_PRO = 'PRO';
    public const EMPLOYMENT_FORM_TID = 'TID';
    public const EMPLOYMENT_FORM_SVT = 'SVT';
    public const EMPLOYMENT_FORM_VIK = 'VIK';
    public const EMPLOYMENT_FORM_PRJ = 'PRJ';
    public const EMPLOYMENT_FORM_PRA = 'PRA';
    public const EMPLOYMENT_FORM_FER = 'FER';
    public const EMPLOYMENT_FORM_SES = 'SES';
    public const EMPLOYMENT_FORM_NEJ = 'NEJ';
    public const FORA_TYPE_A = 'A';
    public const FORA_TYPE_A51 = 'A51';
    public const FORA_TYPE_A52 = 'A52';
    public const FORA_TYPE_A53 = 'A53';
    public const FORA_TYPE_A54 = 'A54';
    public const FORA_TYPE_A55 = 'A55';
    public const FORA_TYPE_A56 = 'A56';
    public const FORA_TYPE_A57 = 'A57';
    public const FORA_TYPE_A58 = 'A58';
    public const FORA_TYPE_A59 = 'A59';
    public const FORA_TYPE_A60 = 'A60';
    public const FORA_TYPE_A61 = 'A61';
    public const FORA_TYPE_A62 = 'A62';
    public const FORA_TYPE_A63 = 'A63';
    public const FORA_TYPE_A64 = 'A64';
    public const FORA_TYPE_A65 = 'A65';
    public const FORA_TYPE_A66 = 'A66';
    public const FORA_TYPE_A67 = 'A67';
    public const FORA_TYPE_A68 = 'A68';
    public const FORA_TYPE_A69 = 'A69';
    public const FORA_TYPE_A70 = 'A70';
    public const FORA_TYPE_A71 = 'A71';
    public const FORA_TYPE_A72 = 'A72';
    public const FORA_TYPE_A73 = 'A73';
    public const FORA_TYPE_A74 = 'A74';
    public const FORA_TYPE_A75 = 'A75';
    public const FORA_TYPE_A76 = 'A76';
    public const FORA_TYPE_A77 = 'A77';
    public const FORA_TYPE_A78 = 'A78';
    public const FORA_TYPE_A79 = 'A79';
    public const FORA_TYPE_A80 = 'A80';
    public const FORA_TYPE_A81 = 'A81';
    public const FORA_TYPE_A82 = 'A82';
    public const FORA_TYPE_A83 = 'A83';
    public const FORA_TYPE_A84 = 'A84';
    public const FORA_TYPE_A85 = 'A85';
    public const FORA_TYPE_A86 = 'A86';
    public const FORA_TYPE_A3 = 'A3';
    public const FORA_TYPE_A91 = 'A91';
    public const FORA_TYPE_A92 = 'A92';
    public const FORA_TYPE_A93 = 'A93';
    public const FORA_TYPE_A11 = 'A11';
    public const FORA_TYPE_A12 = 'A12';
    public const FORA_TYPE_A13 = 'A13';
    public const FORA_TYPE_A14 = 'A14';
    public const FORA_TYPE_A15 = 'A15';
    public const FORA_TYPE_A16 = 'A16';
    public const FORA_TYPE_A17 = 'A17';
    public const FORA_TYPE_A18 = 'A18';
    public const FORA_TYPE_A19 = 'A19';
    public const FORA_TYPE_A20 = 'A20';
    public const FORA_TYPE_A21 = 'A21';
    public const FORA_TYPE_A22 = 'A22';
    public const FORA_TYPE_A23 = 'A23';
    public const FORA_TYPE_A24 = 'A24';
    public const FORA_TYPE_A25 = 'A25';
    public const FORA_TYPE_A26 = 'A26';
    public const FORA_TYPE_A27 = 'A27';
    public const FORA_TYPE_A28 = 'A28';
    public const FORA_TYPE_A29 = 'A29';
    public const FORA_TYPE_A30 = 'A30';
    public const FORA_TYPE_A41 = 'A41';
    public const FORA_TYPE_A42 = 'A42';
    public const FORA_TYPE_A43 = 'A43';
    public const FORA_TYPE_A44 = 'A44';
    public const FORA_TYPE_A45 = 'A45';
    public const FORA_TYPE_A46 = 'A46';
    public const FORA_TYPE_A47 = 'A47';
    public const FORA_TYPE_A48 = 'A48';
    public const FORA_TYPE_T = 'T';
    public const FORA_TYPE_T6 = 'T6';
    public const FORA_TYPE_MINUS = '-';
    public const PAYSLIP_TYPE_PDF = 'pdf';
    public const PAYSLIP_TYPE_DIGITAL = 'digital';
    public const PAYSLIP_TYPE_KIVRA = 'kivra';
    public const PERSONEL_TYPE_TJM = 'TJM';
    public const PERSONEL_TYPE_ARB = 'ARB';
    public const SALARY_FORM_MAN = 'MAN';
    public const SALARY_FORM_TIM = 'TIM';
    public const TAX_ALLOWANCE_HUV = 'HUV';
    public const TAX_ALLOWANCE_EXT = 'EXT';
    public const TAX_ALLOWANCE_TMP = 'TMP';
    public const TAX_ALLOWANCE_STU = 'STU';
    public const TAX_ALLOWANCE_EJ = 'EJ';
    public const TAX_ALLOWANCE_ = '???';

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getEmploymentFormAllowableValues()
    {
        return [
            self::EMPLOYMENT_FORM_TV,
            self::EMPLOYMENT_FORM_PRO,
            self::EMPLOYMENT_FORM_TID,
            self::EMPLOYMENT_FORM_SVT,
            self::EMPLOYMENT_FORM_VIK,
            self::EMPLOYMENT_FORM_PRJ,
            self::EMPLOYMENT_FORM_PRA,
            self::EMPLOYMENT_FORM_FER,
            self::EMPLOYMENT_FORM_SES,
            self::EMPLOYMENT_FORM_NEJ,
        ];
    }

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getForaTypeAllowableValues()
    {
        return [
            self::FORA_TYPE_A,
            self::FORA_TYPE_A51,
            self::FORA_TYPE_A52,
            self::FORA_TYPE_A53,
            self::FORA_TYPE_A54,
            self::FORA_TYPE_A55,
            self::FORA_TYPE_A56,
            self::FORA_TYPE_A57,
            self::FORA_TYPE_A58,
            self::FORA_TYPE_A59,
            self::FORA_TYPE_A60,
            self::FORA_TYPE_A61,
            self::FORA_TYPE_A62,
            self::FORA_TYPE_A63,
            self::FORA_TYPE_A64,
            self::FORA_TYPE_A65,
            self::FORA_TYPE_A66,
            self::FORA_TYPE_A67,
            self::FORA_TYPE_A68,
            self::FORA_TYPE_A69,
            self::FORA_TYPE_A70,
            self::FORA_TYPE_A71,
            self::FORA_TYPE_A72,
            self::FORA_TYPE_A73,
            self::FORA_TYPE_A74,
            self::FORA_TYPE_A75,
            self::FORA_TYPE_A76,
            self::FORA_TYPE_A77,
            self::FORA_TYPE_A78,
            self::FORA_TYPE_A79,
            self::FORA_TYPE_A80,
            self::FORA_TYPE_A81,
            self::FORA_TYPE_A82,
            self::FORA_TYPE_A83,
            self::FORA_TYPE_A84,
            self::FORA_TYPE_A85,
            self::FORA_TYPE_A86,
            self::FORA_TYPE_A3,
            self::FORA_TYPE_A91,
            self::FORA_TYPE_A92,
            self::FORA_TYPE_A93,
            self::FORA_TYPE_A11,
            self::FORA_TYPE_A12,
            self::FORA_TYPE_A13,
            self::FORA_TYPE_A14,
            self::FORA_TYPE_A15,
            self::FORA_TYPE_A16,
            self::FORA_TYPE_A17,
            self::FORA_TYPE_A18,
            self::FORA_TYPE_A19,
            self::FORA_TYPE_A20,
            self::FORA_TYPE_A21,
            self::FORA_TYPE_A22,
            self::FORA_TYPE_A23,
            self::FORA_TYPE_A24,
            self::FORA_TYPE_A25,
            self::FORA_TYPE_A26,
            self::FORA_TYPE_A27,
            self::FORA_TYPE_A28,
            self::FORA_TYPE_A29,
            self::FORA_TYPE_A30,
            self::FORA_TYPE_A41,
            self::FORA_TYPE_A42,
            self::FORA_TYPE_A43,
            self::FORA_TYPE_A44,
            self::FORA_TYPE_A45,
            self::FORA_TYPE_A46,
            self::FORA_TYPE_A47,
            self::FORA_TYPE_A48,
            self::FORA_TYPE_T,
            self::FORA_TYPE_T6,
            self::FORA_TYPE_MINUS,
        ];
    }

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getPayslipTypeAllowableValues()
    {
        return [
            self::PAYSLIP_TYPE_PDF,
            self::PAYSLIP_TYPE_DIGITAL,
            self::PAYSLIP_TYPE_KIVRA,
        ];
    }

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getPersonelTypeAllowableValues()
    {
        return [
            self::PERSONEL_TYPE_TJM,
            self::PERSONEL_TYPE_ARB,
        ];
    }

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getSalaryFormAllowableValues()
    {
        return [
            self::SALARY_FORM_MAN,
            self::SALARY_FORM_TIM,
        ];
    }

    /**
     * Gets allowable values of the enum
     *
     * @return string[]
     */
    public function getTaxAllowanceAllowableValues()
    {
        return [
            self::TAX_ALLOWANCE_HUV,
            self::TAX_ALLOWANCE_EXT,
            self::TAX_ALLOWANCE_TMP,
            self::TAX_ALLOWANCE_STU,
            self::TAX_ALLOWANCE_EJ,
            self::TAX_ALLOWANCE_,
        ];
    }

    /**
     * Associative array for storing property values
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor
     *
     * @param mixed[]|null $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(?array $data = null)
    {
        $this->setIfExists('atf_value', $data ?? [], null);
        $this->setIfExists('atk_value', $data ?? [], null);
        $this->setIfExists('absence_hours_non_vacation_based', $data ?? [], null);
        $this->setIfExists('absence_hours_vacation_based', $data ?? [], null);
        $this->setIfExists('absence_workdays_non_vacation_based', $data ?? [], null);
        $this->setIfExists('absence_workdays_vacation_based', $data ?? [], null);
        $this->setIfExists('address1', $data ?? [], null);
        $this->setIfExists('address2', $data ?? [], null);
        $this->setIfExists('auto_non_recurring_tax', $data ?? [], null);
        $this->setIfExists('average_hourly_wage', $data ?? [], null);
        $this->setIfExists('average_weekly_hours', $data ?? [], null);
        $this->setIfExists('bank_account_no', $data ?? [], null);
        $this->setIfExists('city', $data ?? [], null);
        $this->setIfExists('clearing_no', $data ?? [], null);
        $this->setIfExists('cost_center', $data ?? [], null);
        $this->setIfExists('country', $data ?? [], null);
        $this->setIfExists('current_comp_balance', $data ?? [], null);
        $this->setIfExists('current_flex_balance', $data ?? [], null);
        $this->setIfExists('dated_salary_supplements', $data ?? [], null);
        $this->setIfExists('dated_schedules', $data ?? [], null);
        $this->setIfExists('dated_wages', $data ?? [], null);
        $this->setIfExists('email', $data ?? [], null);
        $this->setIfExists('employed_to', $data ?? [], null);
        $this->setIfExists('employee_children', $data ?? [], null);
        $this->setIfExists('employee_id', $data ?? [], null);
        $this->setIfExists('employment_date', $data ?? [], null);
        $this->setIfExists('employment_form', $data ?? [], null);
        $this->setIfExists('first_name', $data ?? [], null);
        $this->setIfExists('fora_type', $data ?? [], null);
        $this->setIfExists('full_name', $data ?? [], null);
        $this->setIfExists('full_time_equivalent', $data ?? [], null);
        $this->setIfExists('hourly_pay', $data ?? [], null);
        $this->setIfExists('inactive', $data ?? [], null);
        $this->setIfExists('ingoing_sick_leave', $data ?? [], null);
        $this->setIfExists('ingoing_used_holiday_supplement', $data ?? [], null);
        $this->setIfExists('ingoing_used_vacation_days', $data ?? [], null);
        $this->setIfExists('initial_comp', $data ?? [], null);
        $this->setIfExists('initial_flex', $data ?? [], null);
        $this->setIfExists('job_title', $data ?? [], null);
        $this->setIfExists('last_name', $data ?? [], null);
        $this->setIfExists('monthly_salary', $data ?? [], null);
        $this->setIfExists('non_recurring_tax', $data ?? [], null);
        $this->setIfExists('non_vacation_based_calendar_days_partial', $data ?? [], null);
        $this->setIfExists('non_vacation_based_calendar_days_whole', $data ?? [], null);
        $this->setIfExists('opening_salaries', $data ?? [], null);
        $this->setIfExists('payslip_type', $data ?? [], null);
        $this->setIfExists('personal_identity_number', $data ?? [], null);
        $this->setIfExists('personel_type', $data ?? [], null);
        $this->setIfExists('phone1', $data ?? [], null);
        $this->setIfExists('phone2', $data ?? [], null);
        $this->setIfExists('post_code', $data ?? [], null);
        $this->setIfExists('preliminary_tax_deducted', $data ?? [], null);
        $this->setIfExists('project', $data ?? [], null);
        $this->setIfExists('salary_form', $data ?? [], null);
        $this->setIfExists('schedule_id', $data ?? [], null);
        $this->setIfExists('tax_allowance', $data ?? [], null);
        $this->setIfExists('tax_column', $data ?? [], null);
        $this->setIfExists('tax_table', $data ?? [], null);
        $this->setIfExists('vacation_based_attendance_days', $data ?? [], null);
        $this->setIfExists('vacation_based_attendance_hours', $data ?? [], null);
        $this->setIfExists('vacation_based_calendar_days_whole', $data ?? [], null);
        $this->setIfExists('vacation_based_salary_total', $data ?? [], null);
        $this->setIfExists('vacation_based_salary_variable_addition', $data ?? [], null);
        $this->setIfExists('vacation_based_salary_worked_time', $data ?? [], null);
        $this->setIfExists('vacation_calculation_advance_vacation_debt', $data ?? [], null);
        $this->setIfExists('vacation_calculation_include_in_calculation', $data ?? [], null);
        $this->setIfExists('vacation_calculation_same_wage_percent', $data ?? [], null);
        $this->setIfExists('vacation_calculation_sole_custody', $data ?? [], null);
        $this->setIfExists('vacation_calculation_sum_only_no_days', $data ?? [], null);
        $this->setIfExists('vacation_calculation_total_vacation_salary_sum', $data ?? [], null);
        $this->setIfExists('vacation_calculation_vacation_entitlement', $data ?? [], null);
        $this->setIfExists('vacation_calculation_variable_addition_sum', $data ?? [], null);
        $this->setIfExists('vacation_days_paid', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_paid', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_prepaid', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year1', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year2', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year3', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year4', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year5', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_saved_year6_plus', $data ?? [], null);
        $this->setIfExists('vacation_days_pending_unpaid', $data ?? [], null);
        $this->setIfExists('vacation_days_prepaid', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_paid', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_prepaid', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year1', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year2', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year3', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year4', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year5', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_saved_year6_plus', $data ?? [], null);
        $this->setIfExists('vacation_days_registered_unpaid', $data ?? [], null);
        $this->setIfExists('vacation_days_saved', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year1', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year2', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year3', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year4', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year5', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_employment_rate_year6_plus', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year1', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year2', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year3', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year4', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year5', $data ?? [], null);
        $this->setIfExists('vacation_days_saved_year6_plus', $data ?? [], null);
        $this->setIfExists('vacation_days_unpaid', $data ?? [], null);
        $this->setIfExists('working_time_enumeration', $data ?? [], null);
    }

    /**
    * Sets $this->container[$variableName] to the given data or to the given default Value; if $variableName
    * is nullable and its value is set to null in the $fields array, then mark it as "set to null" in the
    * $this->openAPINullablesSetToNull array
    *
    * @param string $variableName
    * @param array  $fields
    * @param mixed  $defaultValue
    */
    private function setIfExists(string $variableName, array $fields, $defaultValue): void
    {
        if (self::isNullable($variableName) && array_key_exists($variableName, $fields) && is_null($fields[$variableName])) {
            $this->openAPINullablesSetToNull[] = $variableName;
        }

        $this->container[$variableName] = $fields[$variableName] ?? $defaultValue;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        if ($this->container['email'] === null) {
            $invalidProperties[] = "'email' can't be null";
        }
        if (!is_null($this->container['employee_id']) && (mb_strlen($this->container['employee_id']) > 15)) {
            $invalidProperties[] = "invalid value for 'employee_id', the character length must be smaller than or equal to 15.";
        }

        if (!is_null($this->container['employee_id']) && (mb_strlen($this->container['employee_id']) < 1)) {
            $invalidProperties[] = "invalid value for 'employee_id', the character length must be bigger than or equal to 1.";
        }

        $allowedValues = $this->getEmploymentFormAllowableValues();
        if (!is_null($this->container['employment_form']) && !in_array($this->container['employment_form'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'employment_form', must be one of '%s'",
                $this->container['employment_form'],
                implode("', '", $allowedValues)
            );
        }

        if ($this->container['first_name'] === null) {
            $invalidProperties[] = "'first_name' can't be null";
        }
        $allowedValues = $this->getForaTypeAllowableValues();
        if (!is_null($this->container['fora_type']) && !in_array($this->container['fora_type'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'fora_type', must be one of '%s'",
                $this->container['fora_type'],
                implode("', '", $allowedValues)
            );
        }

        if (!is_null($this->container['job_title']) && (mb_strlen($this->container['job_title']) > 30)) {
            $invalidProperties[] = "invalid value for 'job_title', the character length must be smaller than or equal to 30.";
        }

        if ($this->container['last_name'] === null) {
            $invalidProperties[] = "'last_name' can't be null";
        }
        $allowedValues = $this->getPayslipTypeAllowableValues();
        if (!is_null($this->container['payslip_type']) && !in_array($this->container['payslip_type'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'payslip_type', must be one of '%s'",
                $this->container['payslip_type'],
                implode("', '", $allowedValues)
            );
        }

        $allowedValues = $this->getPersonelTypeAllowableValues();
        if (!is_null($this->container['personel_type']) && !in_array($this->container['personel_type'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'personel_type', must be one of '%s'",
                $this->container['personel_type'],
                implode("', '", $allowedValues)
            );
        }

        $allowedValues = $this->getSalaryFormAllowableValues();
        if (!is_null($this->container['salary_form']) && !in_array($this->container['salary_form'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'salary_form', must be one of '%s'",
                $this->container['salary_form'],
                implode("', '", $allowedValues)
            );
        }

        $allowedValues = $this->getTaxAllowanceAllowableValues();
        if (!is_null($this->container['tax_allowance']) && !in_array($this->container['tax_allowance'], $allowedValues, true)) {
            $invalidProperties[] = sprintf(
                "invalid value '%s' for 'tax_allowance', must be one of '%s'",
                $this->container['tax_allowance'],
                implode("', '", $allowedValues)
            );
        }

        if (!is_null($this->container['tax_column']) && ($this->container['tax_column'] > 6)) {
            $invalidProperties[] = "invalid value for 'tax_column', must be smaller than or equal to 6.";
        }

        if (!is_null($this->container['tax_column']) && ($this->container['tax_column'] < 1)) {
            $invalidProperties[] = "invalid value for 'tax_column', must be bigger than or equal to 1.";
        }

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }


    /**
     * Gets atf_value
     *
     * @return float|null
     */
    public function getAtfValue()
    {
        return $this->container['atf_value'];
    }

    /**
     * Sets atf_value
     *
     * @param float|null $atf_value atf_value
     *
     * @return self
     */
    public function setAtfValue($atf_value)
    {
        if (is_null($atf_value)) {
            throw new \InvalidArgumentException('non-nullable atf_value cannot be null');
        }
        $this->container['atf_value'] = $atf_value;

        return $this;
    }

    /**
     * Gets atk_value
     *
     * @return float|null
     */
    public function getAtkValue()
    {
        return $this->container['atk_value'];
    }

    /**
     * Sets atk_value
     *
     * @param float|null $atk_value atk_value
     *
     * @return self
     */
    public function setAtkValue($atk_value)
    {
        if (is_null($atk_value)) {
            throw new \InvalidArgumentException('non-nullable atk_value cannot be null');
        }
        $this->container['atk_value'] = $atk_value;

        return $this;
    }

    /**
     * Gets absence_hours_non_vacation_based
     *
     * @return float|null
     */
    public function getAbsenceHoursNonVacationBased()
    {
        return $this->container['absence_hours_non_vacation_based'];
    }

    /**
     * Sets absence_hours_non_vacation_based
     *
     * @param float|null $absence_hours_non_vacation_based absence_hours_non_vacation_based
     *
     * @return self
     */
    public function setAbsenceHoursNonVacationBased($absence_hours_non_vacation_based)
    {
        if (is_null($absence_hours_non_vacation_based)) {
            throw new \InvalidArgumentException('non-nullable absence_hours_non_vacation_based cannot be null');
        }
        $this->container['absence_hours_non_vacation_based'] = $absence_hours_non_vacation_based;

        return $this;
    }

    /**
     * Gets absence_hours_vacation_based
     *
     * @return float|null
     */
    public function getAbsenceHoursVacationBased()
    {
        return $this->container['absence_hours_vacation_based'];
    }

    /**
     * Sets absence_hours_vacation_based
     *
     * @param float|null $absence_hours_vacation_based absence_hours_vacation_based
     *
     * @return self
     */
    public function setAbsenceHoursVacationBased($absence_hours_vacation_based)
    {
        if (is_null($absence_hours_vacation_based)) {
            throw new \InvalidArgumentException('non-nullable absence_hours_vacation_based cannot be null');
        }
        $this->container['absence_hours_vacation_based'] = $absence_hours_vacation_based;

        return $this;
    }

    /**
     * Gets absence_workdays_non_vacation_based
     *
     * @return float|null
     */
    public function getAbsenceWorkdaysNonVacationBased()
    {
        return $this->container['absence_workdays_non_vacation_based'];
    }

    /**
     * Sets absence_workdays_non_vacation_based
     *
     * @param float|null $absence_workdays_non_vacation_based absence_workdays_non_vacation_based
     *
     * @return self
     */
    public function setAbsenceWorkdaysNonVacationBased($absence_workdays_non_vacation_based)
    {
        if (is_null($absence_workdays_non_vacation_based)) {
            throw new \InvalidArgumentException('non-nullable absence_workdays_non_vacation_based cannot be null');
        }
        $this->container['absence_workdays_non_vacation_based'] = $absence_workdays_non_vacation_based;

        return $this;
    }

    /**
     * Gets absence_workdays_vacation_based
     *
     * @return float|null
     */
    public function getAbsenceWorkdaysVacationBased()
    {
        return $this->container['absence_workdays_vacation_based'];
    }

    /**
     * Sets absence_workdays_vacation_based
     *
     * @param float|null $absence_workdays_vacation_based absence_workdays_vacation_based
     *
     * @return self
     */
    public function setAbsenceWorkdaysVacationBased($absence_workdays_vacation_based)
    {
        if (is_null($absence_workdays_vacation_based)) {
            throw new \InvalidArgumentException('non-nullable absence_workdays_vacation_based cannot be null');
        }
        $this->container['absence_workdays_vacation_based'] = $absence_workdays_vacation_based;

        return $this;
    }

    /**
     * Gets address1
     *
     * @return string|null
     */
    public function getAddress1()
    {
        return $this->container['address1'];
    }

    /**
     * Sets address1
     *
     * @param string|null $address1 address1
     *
     * @return self
     */
    public function setAddress1($address1)
    {
        if (is_null($address1)) {
            throw new \InvalidArgumentException('non-nullable address1 cannot be null');
        }
        $this->container['address1'] = $address1;

        return $this;
    }

    /**
     * Gets address2
     *
     * @return string|null
     */
    public function getAddress2()
    {
        return $this->container['address2'];
    }

    /**
     * Sets address2
     *
     * @param string|null $address2 address2
     *
     * @return self
     */
    public function setAddress2($address2)
    {
        if (is_null($address2)) {
            throw new \InvalidArgumentException('non-nullable address2 cannot be null');
        }
        $this->container['address2'] = $address2;

        return $this;
    }

    /**
     * Gets auto_non_recurring_tax
     *
     * @return bool|null
     */
    public function getAutoNonRecurringTax()
    {
        return $this->container['auto_non_recurring_tax'];
    }

    /**
     * Sets auto_non_recurring_tax
     *
     * @param bool|null $auto_non_recurring_tax auto_non_recurring_tax
     *
     * @return self
     */
    public function setAutoNonRecurringTax($auto_non_recurring_tax)
    {
        if (is_null($auto_non_recurring_tax)) {
            throw new \InvalidArgumentException('non-nullable auto_non_recurring_tax cannot be null');
        }
        $this->container['auto_non_recurring_tax'] = $auto_non_recurring_tax;

        return $this;
    }

    /**
     * Gets average_hourly_wage
     *
     * @return string|null
     */
    public function getAverageHourlyWage()
    {
        return $this->container['average_hourly_wage'];
    }

    /**
     * Sets average_hourly_wage
     *
     * @param string|null $average_hourly_wage average_hourly_wage
     *
     * @return self
     */
    public function setAverageHourlyWage($average_hourly_wage)
    {
        if (is_null($average_hourly_wage)) {
            throw new \InvalidArgumentException('non-nullable average_hourly_wage cannot be null');
        }
        $this->container['average_hourly_wage'] = $average_hourly_wage;

        return $this;
    }

    /**
     * Gets average_weekly_hours
     *
     * @return string|null
     */
    public function getAverageWeeklyHours()
    {
        return $this->container['average_weekly_hours'];
    }

    /**
     * Sets average_weekly_hours
     *
     * @param string|null $average_weekly_hours average_weekly_hours
     *
     * @return self
     */
    public function setAverageWeeklyHours($average_weekly_hours)
    {
        if (is_null($average_weekly_hours)) {
            throw new \InvalidArgumentException('non-nullable average_weekly_hours cannot be null');
        }
        $this->container['average_weekly_hours'] = $average_weekly_hours;

        return $this;
    }

    /**
     * Gets bank_account_no
     *
     * @return string|null
     */
    public function getBankAccountNo()
    {
        return $this->container['bank_account_no'];
    }

    /**
     * Sets bank_account_no
     *
     * @param string|null $bank_account_no bank_account_no
     *
     * @return self
     */
    public function setBankAccountNo($bank_account_no)
    {
        if (is_null($bank_account_no)) {
            throw new \InvalidArgumentException('non-nullable bank_account_no cannot be null');
        }
        $this->container['bank_account_no'] = $bank_account_no;

        return $this;
    }

    /**
     * Gets city
     *
     * @return string|null
     */
    public function getCity()
    {
        return $this->container['city'];
    }

    /**
     * Sets city
     *
     * @param string|null $city city
     *
     * @return self
     */
    public function setCity($city)
    {
        if (is_null($city)) {
            throw new \InvalidArgumentException('non-nullable city cannot be null');
        }
        $this->container['city'] = $city;

        return $this;
    }

    /**
     * Gets clearing_no
     *
     * @return string|null
     */
    public function getClearingNo()
    {
        return $this->container['clearing_no'];
    }

    /**
     * Sets clearing_no
     *
     * @param string|null $clearing_no clearing_no
     *
     * @return self
     */
    public function setClearingNo($clearing_no)
    {
        if (is_null($clearing_no)) {
            throw new \InvalidArgumentException('non-nullable clearing_no cannot be null');
        }
        $this->container['clearing_no'] = $clearing_no;

        return $this;
    }

    /**
     * Gets cost_center
     *
     * @return string|null
     */
    public function getCostCenter()
    {
        return $this->container['cost_center'];
    }

    /**
     * Sets cost_center
     *
     * @param string|null $cost_center cost_center
     *
     * @return self
     */
    public function setCostCenter($cost_center)
    {
        if (is_null($cost_center)) {
            throw new \InvalidArgumentException('non-nullable cost_center cannot be null');
        }
        $this->container['cost_center'] = $cost_center;

        return $this;
    }

    /**
     * Gets country
     *
     * @return string|null
     */
    public function getCountry()
    {
        return $this->container['country'];
    }

    /**
     * Sets country
     *
     * @param string|null $country country
     *
     * @return self
     */
    public function setCountry($country)
    {
        if (is_null($country)) {
            throw new \InvalidArgumentException('non-nullable country cannot be null');
        }
        $this->container['country'] = $country;

        return $this;
    }

    /**
     * Gets current_comp_balance
     *
     * @return float|null
     */
    public function getCurrentCompBalance()
    {
        return $this->container['current_comp_balance'];
    }

    /**
     * Sets current_comp_balance
     *
     * @param float|null $current_comp_balance current_comp_balance
     *
     * @return self
     */
    public function setCurrentCompBalance($current_comp_balance)
    {
        if (is_null($current_comp_balance)) {
            throw new \InvalidArgumentException('non-nullable current_comp_balance cannot be null');
        }
        $this->container['current_comp_balance'] = $current_comp_balance;

        return $this;
    }

    /**
     * Gets current_flex_balance
     *
     * @return float|null
     */
    public function getCurrentFlexBalance()
    {
        return $this->container['current_flex_balance'];
    }

    /**
     * Sets current_flex_balance
     *
     * @param float|null $current_flex_balance current_flex_balance
     *
     * @return self
     */
    public function setCurrentFlexBalance($current_flex_balance)
    {
        if (is_null($current_flex_balance)) {
            throw new \InvalidArgumentException('non-nullable current_flex_balance cannot be null');
        }
        $this->container['current_flex_balance'] = $current_flex_balance;

        return $this;
    }

    /**
     * Gets dated_salary_supplements
     *
     * @return \Fortnox\Model\FortnoxLonDatedSalarySupplementListPayloadItem[]|null
     */
    public function getDatedSalarySupplements()
    {
        return $this->container['dated_salary_supplements'];
    }

    /**
     * Sets dated_salary_supplements
     *
     * @param \Fortnox\Model\FortnoxLonDatedSalarySupplementListPayloadItem[]|null $dated_salary_supplements dated_salary_supplements
     *
     * @return self
     */
    public function setDatedSalarySupplements($dated_salary_supplements)
    {
        if (is_null($dated_salary_supplements)) {
            throw new \InvalidArgumentException('non-nullable dated_salary_supplements cannot be null');
        }
        $this->container['dated_salary_supplements'] = $dated_salary_supplements;

        return $this;
    }

    /**
     * Gets dated_schedules
     *
     * @return \Fortnox\Model\FortnoxLonDatedScheduleListPayloadItem[]|null
     */
    public function getDatedSchedules()
    {
        return $this->container['dated_schedules'];
    }

    /**
     * Sets dated_schedules
     *
     * @param \Fortnox\Model\FortnoxLonDatedScheduleListPayloadItem[]|null $dated_schedules dated_schedules
     *
     * @return self
     */
    public function setDatedSchedules($dated_schedules)
    {
        if (is_null($dated_schedules)) {
            throw new \InvalidArgumentException('non-nullable dated_schedules cannot be null');
        }
        $this->container['dated_schedules'] = $dated_schedules;

        return $this;
    }

    /**
     * Gets dated_wages
     *
     * @return \Fortnox\Model\FortnoxLonDatedWageListPayloadItem[]|null
     */
    public function getDatedWages()
    {
        return $this->container['dated_wages'];
    }

    /**
     * Sets dated_wages
     *
     * @param \Fortnox\Model\FortnoxLonDatedWageListPayloadItem[]|null $dated_wages dated_wages
     *
     * @return self
     */
    public function setDatedWages($dated_wages)
    {
        if (is_null($dated_wages)) {
            throw new \InvalidArgumentException('non-nullable dated_wages cannot be null');
        }
        $this->container['dated_wages'] = $dated_wages;

        return $this;
    }

    /**
     * Gets email
     *
     * @return string
     */
    public function getEmail()
    {
        return $this->container['email'];
    }

    /**
     * Sets email
     *
     * @param string $email email
     *
     * @return self
     */
    public function setEmail($email)
    {
        if (is_null($email)) {
            throw new \InvalidArgumentException('non-nullable email cannot be null');
        }
        $this->container['email'] = $email;

        return $this;
    }

    /**
     * Gets employed_to
     *
     * @return \DateTime|null
     */
    public function getEmployedTo()
    {
        return $this->container['employed_to'];
    }

    /**
     * Sets employed_to
     *
     * @param \DateTime|null $employed_to employed_to
     *
     * @return self
     */
    public function setEmployedTo($employed_to)
    {
        if (is_null($employed_to)) {
            throw new \InvalidArgumentException('non-nullable employed_to cannot be null');
        }
        $this->container['employed_to'] = $employed_to;

        return $this;
    }

    /**
     * Gets employee_children
     *
     * @return \Fortnox\Model\FortnoxLonEmployeeChildListPayloadItem[]|null
     */
    public function getEmployeeChildren()
    {
        return $this->container['employee_children'];
    }

    /**
     * Sets employee_children
     *
     * @param \Fortnox\Model\FortnoxLonEmployeeChildListPayloadItem[]|null $employee_children employee_children
     *
     * @return self
     */
    public function setEmployeeChildren($employee_children)
    {
        if (is_null($employee_children)) {
            throw new \InvalidArgumentException('non-nullable employee_children cannot be null');
        }
        $this->container['employee_children'] = $employee_children;

        return $this;
    }

    /**
     * Gets employee_id
     *
     * @return string|null
     */
    public function getEmployeeId()
    {
        return $this->container['employee_id'];
    }

    /**
     * Sets employee_id
     *
     * @param string|null $employee_id employee_id
     *
     * @return self
     */
    public function setEmployeeId($employee_id)
    {
        if (is_null($employee_id)) {
            throw new \InvalidArgumentException('non-nullable employee_id cannot be null');
        }
        if ((mb_strlen($employee_id) > 15)) {
            throw new \InvalidArgumentException('invalid length for $employee_id when calling FortnoxLonEmployeeSinglePayloadItem., must be smaller than or equal to 15.');
        }
        if ((mb_strlen($employee_id) < 1)) {
            throw new \InvalidArgumentException('invalid length for $employee_id when calling FortnoxLonEmployeeSinglePayloadItem., must be bigger than or equal to 1.');
        }

        $this->container['employee_id'] = $employee_id;

        return $this;
    }

    /**
     * Gets employment_date
     *
     * @return \DateTime|null
     */
    public function getEmploymentDate()
    {
        return $this->container['employment_date'];
    }

    /**
     * Sets employment_date
     *
     * @param \DateTime|null $employment_date employment_date
     *
     * @return self
     */
    public function setEmploymentDate($employment_date)
    {
        if (is_null($employment_date)) {
            throw new \InvalidArgumentException('non-nullable employment_date cannot be null');
        }
        $this->container['employment_date'] = $employment_date;

        return $this;
    }

    /**
     * Gets employment_form
     *
     * @return string|null
     */
    public function getEmploymentForm()
    {
        return $this->container['employment_form'];
    }

    /**
     * Sets employment_form
     *
     * @param string|null $employment_form employment_form
     *
     * @return self
     */
    public function setEmploymentForm($employment_form)
    {
        if (is_null($employment_form)) {
            throw new \InvalidArgumentException('non-nullable employment_form cannot be null');
        }
        $allowedValues = $this->getEmploymentFormAllowableValues();
        if (!in_array($employment_form, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'employment_form', must be one of '%s'",
                    $employment_form,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['employment_form'] = $employment_form;

        return $this;
    }

    /**
     * Gets first_name
     *
     * @return string
     */
    public function getFirstName()
    {
        return $this->container['first_name'];
    }

    /**
     * Sets first_name
     *
     * @param string $first_name first_name
     *
     * @return self
     */
    public function setFirstName($first_name)
    {
        if (is_null($first_name)) {
            throw new \InvalidArgumentException('non-nullable first_name cannot be null');
        }
        $this->container['first_name'] = $first_name;

        return $this;
    }

    /**
     * Gets fora_type
     *
     * @return string|null
     */
    public function getForaType()
    {
        return $this->container['fora_type'];
    }

    /**
     * Sets fora_type
     *
     * @param string|null $fora_type fora_type
     *
     * @return self
     */
    public function setForaType($fora_type)
    {
        if (is_null($fora_type)) {
            throw new \InvalidArgumentException('non-nullable fora_type cannot be null');
        }
        $allowedValues = $this->getForaTypeAllowableValues();
        if (!in_array($fora_type, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'fora_type', must be one of '%s'",
                    $fora_type,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['fora_type'] = $fora_type;

        return $this;
    }

    /**
     * Gets full_name
     *
     * @return string|null
     */
    public function getFullName()
    {
        return $this->container['full_name'];
    }

    /**
     * Sets full_name
     *
     * @param string|null $full_name full_name
     *
     * @return self
     */
    public function setFullName($full_name)
    {
        if (is_null($full_name)) {
            throw new \InvalidArgumentException('non-nullable full_name cannot be null');
        }
        $this->container['full_name'] = $full_name;

        return $this;
    }

    /**
     * Gets full_time_equivalent
     *
     * @return float|null
     */
    public function getFullTimeEquivalent()
    {
        return $this->container['full_time_equivalent'];
    }

    /**
     * Sets full_time_equivalent
     *
     * @param float|null $full_time_equivalent full_time_equivalent
     *
     * @return self
     */
    public function setFullTimeEquivalent($full_time_equivalent)
    {
        if (is_null($full_time_equivalent)) {
            throw new \InvalidArgumentException('non-nullable full_time_equivalent cannot be null');
        }
        $this->container['full_time_equivalent'] = $full_time_equivalent;

        return $this;
    }

    /**
     * Gets hourly_pay
     *
     * @return string|null
     */
    public function getHourlyPay()
    {
        return $this->container['hourly_pay'];
    }

    /**
     * Sets hourly_pay
     *
     * @param string|null $hourly_pay hourly_pay
     *
     * @return self
     */
    public function setHourlyPay($hourly_pay)
    {
        if (is_null($hourly_pay)) {
            throw new \InvalidArgumentException('non-nullable hourly_pay cannot be null');
        }
        $this->container['hourly_pay'] = $hourly_pay;

        return $this;
    }

    /**
     * Gets inactive
     *
     * @return bool|null
     */
    public function getInactive()
    {
        return $this->container['inactive'];
    }

    /**
     * Sets inactive
     *
     * @param bool|null $inactive inactive
     *
     * @return self
     */
    public function setInactive($inactive)
    {
        if (is_null($inactive)) {
            throw new \InvalidArgumentException('non-nullable inactive cannot be null');
        }
        $this->container['inactive'] = $inactive;

        return $this;
    }

    /**
     * Gets ingoing_sick_leave
     *
     * @return \Fortnox\Model\FortnoxLonIngoingSickLeaveListItem[]|null
     */
    public function getIngoingSickLeave()
    {
        return $this->container['ingoing_sick_leave'];
    }

    /**
     * Sets ingoing_sick_leave
     *
     * @param \Fortnox\Model\FortnoxLonIngoingSickLeaveListItem[]|null $ingoing_sick_leave ingoing_sick_leave
     *
     * @return self
     */
    public function setIngoingSickLeave($ingoing_sick_leave)
    {
        if (is_null($ingoing_sick_leave)) {
            throw new \InvalidArgumentException('non-nullable ingoing_sick_leave cannot be null');
        }
        $this->container['ingoing_sick_leave'] = $ingoing_sick_leave;

        return $this;
    }

    /**
     * Gets ingoing_used_holiday_supplement
     *
     * @return float|null
     */
    public function getIngoingUsedHolidaySupplement()
    {
        return $this->container['ingoing_used_holiday_supplement'];
    }

    /**
     * Sets ingoing_used_holiday_supplement
     *
     * @param float|null $ingoing_used_holiday_supplement ingoing_used_holiday_supplement
     *
     * @return self
     */
    public function setIngoingUsedHolidaySupplement($ingoing_used_holiday_supplement)
    {
        if (is_null($ingoing_used_holiday_supplement)) {
            throw new \InvalidArgumentException('non-nullable ingoing_used_holiday_supplement cannot be null');
        }
        $this->container['ingoing_used_holiday_supplement'] = $ingoing_used_holiday_supplement;

        return $this;
    }

    /**
     * Gets ingoing_used_vacation_days
     *
     * @return float|null
     */
    public function getIngoingUsedVacationDays()
    {
        return $this->container['ingoing_used_vacation_days'];
    }

    /**
     * Sets ingoing_used_vacation_days
     *
     * @param float|null $ingoing_used_vacation_days ingoing_used_vacation_days
     *
     * @return self
     */
    public function setIngoingUsedVacationDays($ingoing_used_vacation_days)
    {
        if (is_null($ingoing_used_vacation_days)) {
            throw new \InvalidArgumentException('non-nullable ingoing_used_vacation_days cannot be null');
        }
        $this->container['ingoing_used_vacation_days'] = $ingoing_used_vacation_days;

        return $this;
    }

    /**
     * Gets initial_comp
     *
     * @return float|null
     */
    public function getInitialComp()
    {
        return $this->container['initial_comp'];
    }

    /**
     * Sets initial_comp
     *
     * @param float|null $initial_comp initial_comp
     *
     * @return self
     */
    public function setInitialComp($initial_comp)
    {
        if (is_null($initial_comp)) {
            throw new \InvalidArgumentException('non-nullable initial_comp cannot be null');
        }
        $this->container['initial_comp'] = $initial_comp;

        return $this;
    }

    /**
     * Gets initial_flex
     *
     * @return float|null
     */
    public function getInitialFlex()
    {
        return $this->container['initial_flex'];
    }

    /**
     * Sets initial_flex
     *
     * @param float|null $initial_flex initial_flex
     *
     * @return self
     */
    public function setInitialFlex($initial_flex)
    {
        if (is_null($initial_flex)) {
            throw new \InvalidArgumentException('non-nullable initial_flex cannot be null');
        }
        $this->container['initial_flex'] = $initial_flex;

        return $this;
    }

    /**
     * Gets job_title
     *
     * @return string|null
     */
    public function getJobTitle()
    {
        return $this->container['job_title'];
    }

    /**
     * Sets job_title
     *
     * @param string|null $job_title job_title
     *
     * @return self
     */
    public function setJobTitle($job_title)
    {
        if (is_null($job_title)) {
            throw new \InvalidArgumentException('non-nullable job_title cannot be null');
        }
        if ((mb_strlen($job_title) > 30)) {
            throw new \InvalidArgumentException('invalid length for $job_title when calling FortnoxLonEmployeeSinglePayloadItem., must be smaller than or equal to 30.');
        }

        $this->container['job_title'] = $job_title;

        return $this;
    }

    /**
     * Gets last_name
     *
     * @return string
     */
    public function getLastName()
    {
        return $this->container['last_name'];
    }

    /**
     * Sets last_name
     *
     * @param string $last_name last_name
     *
     * @return self
     */
    public function setLastName($last_name)
    {
        if (is_null($last_name)) {
            throw new \InvalidArgumentException('non-nullable last_name cannot be null');
        }
        $this->container['last_name'] = $last_name;

        return $this;
    }

    /**
     * Gets monthly_salary
     *
     * @return string|null
     */
    public function getMonthlySalary()
    {
        return $this->container['monthly_salary'];
    }

    /**
     * Sets monthly_salary
     *
     * @param string|null $monthly_salary monthly_salary
     *
     * @return self
     */
    public function setMonthlySalary($monthly_salary)
    {
        if (is_null($monthly_salary)) {
            throw new \InvalidArgumentException('non-nullable monthly_salary cannot be null');
        }
        $this->container['monthly_salary'] = $monthly_salary;

        return $this;
    }

    /**
     * Gets non_recurring_tax
     *
     * @return string|null
     */
    public function getNonRecurringTax()
    {
        return $this->container['non_recurring_tax'];
    }

    /**
     * Sets non_recurring_tax
     *
     * @param string|null $non_recurring_tax non_recurring_tax
     *
     * @return self
     */
    public function setNonRecurringTax($non_recurring_tax)
    {
        if (is_null($non_recurring_tax)) {
            throw new \InvalidArgumentException('non-nullable non_recurring_tax cannot be null');
        }
        $this->container['non_recurring_tax'] = $non_recurring_tax;

        return $this;
    }

    /**
     * Gets non_vacation_based_calendar_days_partial
     *
     * @return float|null
     */
    public function getNonVacationBasedCalendarDaysPartial()
    {
        return $this->container['non_vacation_based_calendar_days_partial'];
    }

    /**
     * Sets non_vacation_based_calendar_days_partial
     *
     * @param float|null $non_vacation_based_calendar_days_partial non_vacation_based_calendar_days_partial
     *
     * @return self
     */
    public function setNonVacationBasedCalendarDaysPartial($non_vacation_based_calendar_days_partial)
    {
        if (is_null($non_vacation_based_calendar_days_partial)) {
            throw new \InvalidArgumentException('non-nullable non_vacation_based_calendar_days_partial cannot be null');
        }
        $this->container['non_vacation_based_calendar_days_partial'] = $non_vacation_based_calendar_days_partial;

        return $this;
    }

    /**
     * Gets non_vacation_based_calendar_days_whole
     *
     * @return float|null
     */
    public function getNonVacationBasedCalendarDaysWhole()
    {
        return $this->container['non_vacation_based_calendar_days_whole'];
    }

    /**
     * Sets non_vacation_based_calendar_days_whole
     *
     * @param float|null $non_vacation_based_calendar_days_whole non_vacation_based_calendar_days_whole
     *
     * @return self
     */
    public function setNonVacationBasedCalendarDaysWhole($non_vacation_based_calendar_days_whole)
    {
        if (is_null($non_vacation_based_calendar_days_whole)) {
            throw new \InvalidArgumentException('non-nullable non_vacation_based_calendar_days_whole cannot be null');
        }
        $this->container['non_vacation_based_calendar_days_whole'] = $non_vacation_based_calendar_days_whole;

        return $this;
    }

    /**
     * Gets opening_salaries
     *
     * @return \Fortnox\Model\FortnoxLonOpeningSalaryListPayloadItem[]|null
     */
    public function getOpeningSalaries()
    {
        return $this->container['opening_salaries'];
    }

    /**
     * Sets opening_salaries
     *
     * @param \Fortnox\Model\FortnoxLonOpeningSalaryListPayloadItem[]|null $opening_salaries opening_salaries
     *
     * @return self
     */
    public function setOpeningSalaries($opening_salaries)
    {
        if (is_null($opening_salaries)) {
            throw new \InvalidArgumentException('non-nullable opening_salaries cannot be null');
        }
        $this->container['opening_salaries'] = $opening_salaries;

        return $this;
    }

    /**
     * Gets payslip_type
     *
     * @return string|null
     */
    public function getPayslipType()
    {
        return $this->container['payslip_type'];
    }

    /**
     * Sets payslip_type
     *
     * @param string|null $payslip_type payslip_type
     *
     * @return self
     */
    public function setPayslipType($payslip_type)
    {
        if (is_null($payslip_type)) {
            throw new \InvalidArgumentException('non-nullable payslip_type cannot be null');
        }
        $allowedValues = $this->getPayslipTypeAllowableValues();
        if (!in_array($payslip_type, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'payslip_type', must be one of '%s'",
                    $payslip_type,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['payslip_type'] = $payslip_type;

        return $this;
    }

    /**
     * Gets personal_identity_number
     *
     * @return string|null
     */
    public function getPersonalIdentityNumber()
    {
        return $this->container['personal_identity_number'];
    }

    /**
     * Sets personal_identity_number
     *
     * @param string|null $personal_identity_number personal_identity_number
     *
     * @return self
     */
    public function setPersonalIdentityNumber($personal_identity_number)
    {
        if (is_null($personal_identity_number)) {
            throw new \InvalidArgumentException('non-nullable personal_identity_number cannot be null');
        }
        $this->container['personal_identity_number'] = $personal_identity_number;

        return $this;
    }

    /**
     * Gets personel_type
     *
     * @return string|null
     */
    public function getPersonelType()
    {
        return $this->container['personel_type'];
    }

    /**
     * Sets personel_type
     *
     * @param string|null $personel_type personel_type
     *
     * @return self
     */
    public function setPersonelType($personel_type)
    {
        if (is_null($personel_type)) {
            throw new \InvalidArgumentException('non-nullable personel_type cannot be null');
        }
        $allowedValues = $this->getPersonelTypeAllowableValues();
        if (!in_array($personel_type, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'personel_type', must be one of '%s'",
                    $personel_type,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['personel_type'] = $personel_type;

        return $this;
    }

    /**
     * Gets phone1
     *
     * @return string|null
     */
    public function getPhone1()
    {
        return $this->container['phone1'];
    }

    /**
     * Sets phone1
     *
     * @param string|null $phone1 phone1
     *
     * @return self
     */
    public function setPhone1($phone1)
    {
        if (is_null($phone1)) {
            throw new \InvalidArgumentException('non-nullable phone1 cannot be null');
        }
        $this->container['phone1'] = $phone1;

        return $this;
    }

    /**
     * Gets phone2
     *
     * @return string|null
     */
    public function getPhone2()
    {
        return $this->container['phone2'];
    }

    /**
     * Sets phone2
     *
     * @param string|null $phone2 phone2
     *
     * @return self
     */
    public function setPhone2($phone2)
    {
        if (is_null($phone2)) {
            throw new \InvalidArgumentException('non-nullable phone2 cannot be null');
        }
        $this->container['phone2'] = $phone2;

        return $this;
    }

    /**
     * Gets post_code
     *
     * @return string|null
     */
    public function getPostCode()
    {
        return $this->container['post_code'];
    }

    /**
     * Sets post_code
     *
     * @param string|null $post_code post_code
     *
     * @return self
     */
    public function setPostCode($post_code)
    {
        if (is_null($post_code)) {
            throw new \InvalidArgumentException('non-nullable post_code cannot be null');
        }
        $this->container['post_code'] = $post_code;

        return $this;
    }

    /**
     * Gets preliminary_tax_deducted
     *
     * @return float|null
     */
    public function getPreliminaryTaxDeducted()
    {
        return $this->container['preliminary_tax_deducted'];
    }

    /**
     * Sets preliminary_tax_deducted
     *
     * @param float|null $preliminary_tax_deducted preliminary_tax_deducted
     *
     * @return self
     */
    public function setPreliminaryTaxDeducted($preliminary_tax_deducted)
    {
        if (is_null($preliminary_tax_deducted)) {
            throw new \InvalidArgumentException('non-nullable preliminary_tax_deducted cannot be null');
        }
        $this->container['preliminary_tax_deducted'] = $preliminary_tax_deducted;

        return $this;
    }

    /**
     * Gets project
     *
     * @return string|null
     */
    public function getProject()
    {
        return $this->container['project'];
    }

    /**
     * Sets project
     *
     * @param string|null $project project
     *
     * @return self
     */
    public function setProject($project)
    {
        if (is_null($project)) {
            throw new \InvalidArgumentException('non-nullable project cannot be null');
        }
        $this->container['project'] = $project;

        return $this;
    }

    /**
     * Gets salary_form
     *
     * @return string|null
     */
    public function getSalaryForm()
    {
        return $this->container['salary_form'];
    }

    /**
     * Sets salary_form
     *
     * @param string|null $salary_form salary_form
     *
     * @return self
     */
    public function setSalaryForm($salary_form)
    {
        if (is_null($salary_form)) {
            throw new \InvalidArgumentException('non-nullable salary_form cannot be null');
        }
        $allowedValues = $this->getSalaryFormAllowableValues();
        if (!in_array($salary_form, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'salary_form', must be one of '%s'",
                    $salary_form,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['salary_form'] = $salary_form;

        return $this;
    }

    /**
     * Gets schedule_id
     *
     * @return string|null
     */
    public function getScheduleId()
    {
        return $this->container['schedule_id'];
    }

    /**
     * Sets schedule_id
     *
     * @param string|null $schedule_id schedule_id
     *
     * @return self
     */
    public function setScheduleId($schedule_id)
    {
        if (is_null($schedule_id)) {
            throw new \InvalidArgumentException('non-nullable schedule_id cannot be null');
        }
        $this->container['schedule_id'] = $schedule_id;

        return $this;
    }

    /**
     * Gets tax_allowance
     *
     * @return string|null
     */
    public function getTaxAllowance()
    {
        return $this->container['tax_allowance'];
    }

    /**
     * Sets tax_allowance
     *
     * @param string|null $tax_allowance tax_allowance
     *
     * @return self
     */
    public function setTaxAllowance($tax_allowance)
    {
        if (is_null($tax_allowance)) {
            throw new \InvalidArgumentException('non-nullable tax_allowance cannot be null');
        }
        $allowedValues = $this->getTaxAllowanceAllowableValues();
        if (!in_array($tax_allowance, $allowedValues, true)) {
            throw new \InvalidArgumentException(
                sprintf(
                    "Invalid value '%s' for 'tax_allowance', must be one of '%s'",
                    $tax_allowance,
                    implode("', '", $allowedValues)
                )
            );
        }
        $this->container['tax_allowance'] = $tax_allowance;

        return $this;
    }

    /**
     * Gets tax_column
     *
     * @return int|null
     */
    public function getTaxColumn()
    {
        return $this->container['tax_column'];
    }

    /**
     * Sets tax_column
     *
     * @param int|null $tax_column tax_column
     *
     * @return self
     */
    public function setTaxColumn($tax_column)
    {
        if (is_null($tax_column)) {
            throw new \InvalidArgumentException('non-nullable tax_column cannot be null');
        }

        if (($tax_column > 6)) {
            throw new \InvalidArgumentException('invalid value for $tax_column when calling FortnoxLonEmployeeSinglePayloadItem., must be smaller than or equal to 6.');
        }
        if (($tax_column < 1)) {
            throw new \InvalidArgumentException('invalid value for $tax_column when calling FortnoxLonEmployeeSinglePayloadItem., must be bigger than or equal to 1.');
        }

        $this->container['tax_column'] = $tax_column;

        return $this;
    }

    /**
     * Gets tax_table
     *
     * @return string|null
     */
    public function getTaxTable()
    {
        return $this->container['tax_table'];
    }

    /**
     * Sets tax_table
     *
     * @param string|null $tax_table tax_table
     *
     * @return self
     */
    public function setTaxTable($tax_table)
    {
        if (is_null($tax_table)) {
            throw new \InvalidArgumentException('non-nullable tax_table cannot be null');
        }
        $this->container['tax_table'] = $tax_table;

        return $this;
    }

    /**
     * Gets vacation_based_attendance_days
     *
     * @return float|null
     */
    public function getVacationBasedAttendanceDays()
    {
        return $this->container['vacation_based_attendance_days'];
    }

    /**
     * Sets vacation_based_attendance_days
     *
     * @param float|null $vacation_based_attendance_days vacation_based_attendance_days
     *
     * @return self
     */
    public function setVacationBasedAttendanceDays($vacation_based_attendance_days)
    {
        if (is_null($vacation_based_attendance_days)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_attendance_days cannot be null');
        }
        $this->container['vacation_based_attendance_days'] = $vacation_based_attendance_days;

        return $this;
    }

    /**
     * Gets vacation_based_attendance_hours
     *
     * @return float|null
     */
    public function getVacationBasedAttendanceHours()
    {
        return $this->container['vacation_based_attendance_hours'];
    }

    /**
     * Sets vacation_based_attendance_hours
     *
     * @param float|null $vacation_based_attendance_hours vacation_based_attendance_hours
     *
     * @return self
     */
    public function setVacationBasedAttendanceHours($vacation_based_attendance_hours)
    {
        if (is_null($vacation_based_attendance_hours)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_attendance_hours cannot be null');
        }
        $this->container['vacation_based_attendance_hours'] = $vacation_based_attendance_hours;

        return $this;
    }

    /**
     * Gets vacation_based_calendar_days_whole
     *
     * @return float|null
     */
    public function getVacationBasedCalendarDaysWhole()
    {
        return $this->container['vacation_based_calendar_days_whole'];
    }

    /**
     * Sets vacation_based_calendar_days_whole
     *
     * @param float|null $vacation_based_calendar_days_whole vacation_based_calendar_days_whole
     *
     * @return self
     */
    public function setVacationBasedCalendarDaysWhole($vacation_based_calendar_days_whole)
    {
        if (is_null($vacation_based_calendar_days_whole)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_calendar_days_whole cannot be null');
        }
        $this->container['vacation_based_calendar_days_whole'] = $vacation_based_calendar_days_whole;

        return $this;
    }

    /**
     * Gets vacation_based_salary_total
     *
     * @return float|null
     */
    public function getVacationBasedSalaryTotal()
    {
        return $this->container['vacation_based_salary_total'];
    }

    /**
     * Sets vacation_based_salary_total
     *
     * @param float|null $vacation_based_salary_total vacation_based_salary_total
     *
     * @return self
     */
    public function setVacationBasedSalaryTotal($vacation_based_salary_total)
    {
        if (is_null($vacation_based_salary_total)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_salary_total cannot be null');
        }
        $this->container['vacation_based_salary_total'] = $vacation_based_salary_total;

        return $this;
    }

    /**
     * Gets vacation_based_salary_variable_addition
     *
     * @return float|null
     */
    public function getVacationBasedSalaryVariableAddition()
    {
        return $this->container['vacation_based_salary_variable_addition'];
    }

    /**
     * Sets vacation_based_salary_variable_addition
     *
     * @param float|null $vacation_based_salary_variable_addition vacation_based_salary_variable_addition
     *
     * @return self
     */
    public function setVacationBasedSalaryVariableAddition($vacation_based_salary_variable_addition)
    {
        if (is_null($vacation_based_salary_variable_addition)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_salary_variable_addition cannot be null');
        }
        $this->container['vacation_based_salary_variable_addition'] = $vacation_based_salary_variable_addition;

        return $this;
    }

    /**
     * Gets vacation_based_salary_worked_time
     *
     * @return float|null
     */
    public function getVacationBasedSalaryWorkedTime()
    {
        return $this->container['vacation_based_salary_worked_time'];
    }

    /**
     * Sets vacation_based_salary_worked_time
     *
     * @param float|null $vacation_based_salary_worked_time vacation_based_salary_worked_time
     *
     * @return self
     */
    public function setVacationBasedSalaryWorkedTime($vacation_based_salary_worked_time)
    {
        if (is_null($vacation_based_salary_worked_time)) {
            throw new \InvalidArgumentException('non-nullable vacation_based_salary_worked_time cannot be null');
        }
        $this->container['vacation_based_salary_worked_time'] = $vacation_based_salary_worked_time;

        return $this;
    }

    /**
     * Gets vacation_calculation_advance_vacation_debt
     *
     * @return float|null
     */
    public function getVacationCalculationAdvanceVacationDebt()
    {
        return $this->container['vacation_calculation_advance_vacation_debt'];
    }

    /**
     * Sets vacation_calculation_advance_vacation_debt
     *
     * @param float|null $vacation_calculation_advance_vacation_debt vacation_calculation_advance_vacation_debt
     *
     * @return self
     */
    public function setVacationCalculationAdvanceVacationDebt($vacation_calculation_advance_vacation_debt)
    {
        if (is_null($vacation_calculation_advance_vacation_debt)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_advance_vacation_debt cannot be null');
        }
        $this->container['vacation_calculation_advance_vacation_debt'] = $vacation_calculation_advance_vacation_debt;

        return $this;
    }

    /**
     * Gets vacation_calculation_include_in_calculation
     *
     * @return bool|null
     */
    public function getVacationCalculationIncludeInCalculation()
    {
        return $this->container['vacation_calculation_include_in_calculation'];
    }

    /**
     * Sets vacation_calculation_include_in_calculation
     *
     * @param bool|null $vacation_calculation_include_in_calculation vacation_calculation_include_in_calculation
     *
     * @return self
     */
    public function setVacationCalculationIncludeInCalculation($vacation_calculation_include_in_calculation)
    {
        if (is_null($vacation_calculation_include_in_calculation)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_include_in_calculation cannot be null');
        }
        $this->container['vacation_calculation_include_in_calculation'] = $vacation_calculation_include_in_calculation;

        return $this;
    }

    /**
     * Gets vacation_calculation_same_wage_percent
     *
     * @return bool|null
     */
    public function getVacationCalculationSameWagePercent()
    {
        return $this->container['vacation_calculation_same_wage_percent'];
    }

    /**
     * Sets vacation_calculation_same_wage_percent
     *
     * @param bool|null $vacation_calculation_same_wage_percent vacation_calculation_same_wage_percent
     *
     * @return self
     */
    public function setVacationCalculationSameWagePercent($vacation_calculation_same_wage_percent)
    {
        if (is_null($vacation_calculation_same_wage_percent)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_same_wage_percent cannot be null');
        }
        $this->container['vacation_calculation_same_wage_percent'] = $vacation_calculation_same_wage_percent;

        return $this;
    }

    /**
     * Gets vacation_calculation_sole_custody
     *
     * @return bool|null
     */
    public function getVacationCalculationSoleCustody()
    {
        return $this->container['vacation_calculation_sole_custody'];
    }

    /**
     * Sets vacation_calculation_sole_custody
     *
     * @param bool|null $vacation_calculation_sole_custody vacation_calculation_sole_custody
     *
     * @return self
     */
    public function setVacationCalculationSoleCustody($vacation_calculation_sole_custody)
    {
        if (is_null($vacation_calculation_sole_custody)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_sole_custody cannot be null');
        }
        $this->container['vacation_calculation_sole_custody'] = $vacation_calculation_sole_custody;

        return $this;
    }

    /**
     * Gets vacation_calculation_sum_only_no_days
     *
     * @return bool|null
     */
    public function getVacationCalculationSumOnlyNoDays()
    {
        return $this->container['vacation_calculation_sum_only_no_days'];
    }

    /**
     * Sets vacation_calculation_sum_only_no_days
     *
     * @param bool|null $vacation_calculation_sum_only_no_days vacation_calculation_sum_only_no_days
     *
     * @return self
     */
    public function setVacationCalculationSumOnlyNoDays($vacation_calculation_sum_only_no_days)
    {
        if (is_null($vacation_calculation_sum_only_no_days)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_sum_only_no_days cannot be null');
        }
        $this->container['vacation_calculation_sum_only_no_days'] = $vacation_calculation_sum_only_no_days;

        return $this;
    }

    /**
     * Gets vacation_calculation_total_vacation_salary_sum
     *
     * @return float|null
     */
    public function getVacationCalculationTotalVacationSalarySum()
    {
        return $this->container['vacation_calculation_total_vacation_salary_sum'];
    }

    /**
     * Sets vacation_calculation_total_vacation_salary_sum
     *
     * @param float|null $vacation_calculation_total_vacation_salary_sum vacation_calculation_total_vacation_salary_sum
     *
     * @return self
     */
    public function setVacationCalculationTotalVacationSalarySum($vacation_calculation_total_vacation_salary_sum)
    {
        if (is_null($vacation_calculation_total_vacation_salary_sum)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_total_vacation_salary_sum cannot be null');
        }
        $this->container['vacation_calculation_total_vacation_salary_sum'] = $vacation_calculation_total_vacation_salary_sum;

        return $this;
    }

    /**
     * Gets vacation_calculation_vacation_entitlement
     *
     * @return float|null
     */
    public function getVacationCalculationVacationEntitlement()
    {
        return $this->container['vacation_calculation_vacation_entitlement'];
    }

    /**
     * Sets vacation_calculation_vacation_entitlement
     *
     * @param float|null $vacation_calculation_vacation_entitlement vacation_calculation_vacation_entitlement
     *
     * @return self
     */
    public function setVacationCalculationVacationEntitlement($vacation_calculation_vacation_entitlement)
    {
        if (is_null($vacation_calculation_vacation_entitlement)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_vacation_entitlement cannot be null');
        }
        $this->container['vacation_calculation_vacation_entitlement'] = $vacation_calculation_vacation_entitlement;

        return $this;
    }

    /**
     * Gets vacation_calculation_variable_addition_sum
     *
     * @return float|null
     */
    public function getVacationCalculationVariableAdditionSum()
    {
        return $this->container['vacation_calculation_variable_addition_sum'];
    }

    /**
     * Sets vacation_calculation_variable_addition_sum
     *
     * @param float|null $vacation_calculation_variable_addition_sum vacation_calculation_variable_addition_sum
     *
     * @return self
     */
    public function setVacationCalculationVariableAdditionSum($vacation_calculation_variable_addition_sum)
    {
        if (is_null($vacation_calculation_variable_addition_sum)) {
            throw new \InvalidArgumentException('non-nullable vacation_calculation_variable_addition_sum cannot be null');
        }
        $this->container['vacation_calculation_variable_addition_sum'] = $vacation_calculation_variable_addition_sum;

        return $this;
    }

    /**
     * Gets vacation_days_paid
     *
     * @return float|null
     */
    public function getVacationDaysPaid()
    {
        return $this->container['vacation_days_paid'];
    }

    /**
     * Sets vacation_days_paid
     *
     * @param float|null $vacation_days_paid vacation_days_paid
     *
     * @return self
     */
    public function setVacationDaysPaid($vacation_days_paid)
    {
        if (is_null($vacation_days_paid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_paid cannot be null');
        }
        $this->container['vacation_days_paid'] = $vacation_days_paid;

        return $this;
    }

    /**
     * Gets vacation_days_pending_paid
     *
     * @return float|null
     */
    public function getVacationDaysPendingPaid()
    {
        return $this->container['vacation_days_pending_paid'];
    }

    /**
     * Sets vacation_days_pending_paid
     *
     * @param float|null $vacation_days_pending_paid vacation_days_pending_paid
     *
     * @return self
     */
    public function setVacationDaysPendingPaid($vacation_days_pending_paid)
    {
        if (is_null($vacation_days_pending_paid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_paid cannot be null');
        }
        $this->container['vacation_days_pending_paid'] = $vacation_days_pending_paid;

        return $this;
    }

    /**
     * Gets vacation_days_pending_prepaid
     *
     * @return float|null
     */
    public function getVacationDaysPendingPrepaid()
    {
        return $this->container['vacation_days_pending_prepaid'];
    }

    /**
     * Sets vacation_days_pending_prepaid
     *
     * @param float|null $vacation_days_pending_prepaid vacation_days_pending_prepaid
     *
     * @return self
     */
    public function setVacationDaysPendingPrepaid($vacation_days_pending_prepaid)
    {
        if (is_null($vacation_days_pending_prepaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_prepaid cannot be null');
        }
        $this->container['vacation_days_pending_prepaid'] = $vacation_days_pending_prepaid;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved
     *
     * @return float|null
     */
    public function getVacationDaysPendingSaved()
    {
        return $this->container['vacation_days_pending_saved'];
    }

    /**
     * Sets vacation_days_pending_saved
     *
     * @param float|null $vacation_days_pending_saved vacation_days_pending_saved
     *
     * @return self
     */
    public function setVacationDaysPendingSaved($vacation_days_pending_saved)
    {
        if (is_null($vacation_days_pending_saved)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved cannot be null');
        }
        $this->container['vacation_days_pending_saved'] = $vacation_days_pending_saved;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year1
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear1()
    {
        return $this->container['vacation_days_pending_saved_year1'];
    }

    /**
     * Sets vacation_days_pending_saved_year1
     *
     * @param float|null $vacation_days_pending_saved_year1 vacation_days_pending_saved_year1
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear1($vacation_days_pending_saved_year1)
    {
        if (is_null($vacation_days_pending_saved_year1)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year1 cannot be null');
        }
        $this->container['vacation_days_pending_saved_year1'] = $vacation_days_pending_saved_year1;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year2
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear2()
    {
        return $this->container['vacation_days_pending_saved_year2'];
    }

    /**
     * Sets vacation_days_pending_saved_year2
     *
     * @param float|null $vacation_days_pending_saved_year2 vacation_days_pending_saved_year2
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear2($vacation_days_pending_saved_year2)
    {
        if (is_null($vacation_days_pending_saved_year2)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year2 cannot be null');
        }
        $this->container['vacation_days_pending_saved_year2'] = $vacation_days_pending_saved_year2;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year3
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear3()
    {
        return $this->container['vacation_days_pending_saved_year3'];
    }

    /**
     * Sets vacation_days_pending_saved_year3
     *
     * @param float|null $vacation_days_pending_saved_year3 vacation_days_pending_saved_year3
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear3($vacation_days_pending_saved_year3)
    {
        if (is_null($vacation_days_pending_saved_year3)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year3 cannot be null');
        }
        $this->container['vacation_days_pending_saved_year3'] = $vacation_days_pending_saved_year3;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year4
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear4()
    {
        return $this->container['vacation_days_pending_saved_year4'];
    }

    /**
     * Sets vacation_days_pending_saved_year4
     *
     * @param float|null $vacation_days_pending_saved_year4 vacation_days_pending_saved_year4
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear4($vacation_days_pending_saved_year4)
    {
        if (is_null($vacation_days_pending_saved_year4)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year4 cannot be null');
        }
        $this->container['vacation_days_pending_saved_year4'] = $vacation_days_pending_saved_year4;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year5
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear5()
    {
        return $this->container['vacation_days_pending_saved_year5'];
    }

    /**
     * Sets vacation_days_pending_saved_year5
     *
     * @param float|null $vacation_days_pending_saved_year5 vacation_days_pending_saved_year5
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear5($vacation_days_pending_saved_year5)
    {
        if (is_null($vacation_days_pending_saved_year5)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year5 cannot be null');
        }
        $this->container['vacation_days_pending_saved_year5'] = $vacation_days_pending_saved_year5;

        return $this;
    }

    /**
     * Gets vacation_days_pending_saved_year6_plus
     *
     * @return float|null
     */
    public function getVacationDaysPendingSavedYear6Plus()
    {
        return $this->container['vacation_days_pending_saved_year6_plus'];
    }

    /**
     * Sets vacation_days_pending_saved_year6_plus
     *
     * @param float|null $vacation_days_pending_saved_year6_plus vacation_days_pending_saved_year6_plus
     *
     * @return self
     */
    public function setVacationDaysPendingSavedYear6Plus($vacation_days_pending_saved_year6_plus)
    {
        if (is_null($vacation_days_pending_saved_year6_plus)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_saved_year6_plus cannot be null');
        }
        $this->container['vacation_days_pending_saved_year6_plus'] = $vacation_days_pending_saved_year6_plus;

        return $this;
    }

    /**
     * Gets vacation_days_pending_unpaid
     *
     * @return float|null
     */
    public function getVacationDaysPendingUnpaid()
    {
        return $this->container['vacation_days_pending_unpaid'];
    }

    /**
     * Sets vacation_days_pending_unpaid
     *
     * @param float|null $vacation_days_pending_unpaid vacation_days_pending_unpaid
     *
     * @return self
     */
    public function setVacationDaysPendingUnpaid($vacation_days_pending_unpaid)
    {
        if (is_null($vacation_days_pending_unpaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_pending_unpaid cannot be null');
        }
        $this->container['vacation_days_pending_unpaid'] = $vacation_days_pending_unpaid;

        return $this;
    }

    /**
     * Gets vacation_days_prepaid
     *
     * @return float|null
     */
    public function getVacationDaysPrepaid()
    {
        return $this->container['vacation_days_prepaid'];
    }

    /**
     * Sets vacation_days_prepaid
     *
     * @param float|null $vacation_days_prepaid vacation_days_prepaid
     *
     * @return self
     */
    public function setVacationDaysPrepaid($vacation_days_prepaid)
    {
        if (is_null($vacation_days_prepaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_prepaid cannot be null');
        }
        $this->container['vacation_days_prepaid'] = $vacation_days_prepaid;

        return $this;
    }

    /**
     * Gets vacation_days_registered_paid
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredPaid()
    {
        return $this->container['vacation_days_registered_paid'];
    }

    /**
     * Sets vacation_days_registered_paid
     *
     * @param float|null $vacation_days_registered_paid vacation_days_registered_paid
     *
     * @return self
     */
    public function setVacationDaysRegisteredPaid($vacation_days_registered_paid)
    {
        if (is_null($vacation_days_registered_paid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_paid cannot be null');
        }
        $this->container['vacation_days_registered_paid'] = $vacation_days_registered_paid;

        return $this;
    }

    /**
     * Gets vacation_days_registered_prepaid
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredPrepaid()
    {
        return $this->container['vacation_days_registered_prepaid'];
    }

    /**
     * Sets vacation_days_registered_prepaid
     *
     * @param float|null $vacation_days_registered_prepaid vacation_days_registered_prepaid
     *
     * @return self
     */
    public function setVacationDaysRegisteredPrepaid($vacation_days_registered_prepaid)
    {
        if (is_null($vacation_days_registered_prepaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_prepaid cannot be null');
        }
        $this->container['vacation_days_registered_prepaid'] = $vacation_days_registered_prepaid;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSaved()
    {
        return $this->container['vacation_days_registered_saved'];
    }

    /**
     * Sets vacation_days_registered_saved
     *
     * @param float|null $vacation_days_registered_saved vacation_days_registered_saved
     *
     * @return self
     */
    public function setVacationDaysRegisteredSaved($vacation_days_registered_saved)
    {
        if (is_null($vacation_days_registered_saved)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved cannot be null');
        }
        $this->container['vacation_days_registered_saved'] = $vacation_days_registered_saved;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year1
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear1()
    {
        return $this->container['vacation_days_registered_saved_year1'];
    }

    /**
     * Sets vacation_days_registered_saved_year1
     *
     * @param float|null $vacation_days_registered_saved_year1 vacation_days_registered_saved_year1
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear1($vacation_days_registered_saved_year1)
    {
        if (is_null($vacation_days_registered_saved_year1)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year1 cannot be null');
        }
        $this->container['vacation_days_registered_saved_year1'] = $vacation_days_registered_saved_year1;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year2
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear2()
    {
        return $this->container['vacation_days_registered_saved_year2'];
    }

    /**
     * Sets vacation_days_registered_saved_year2
     *
     * @param float|null $vacation_days_registered_saved_year2 vacation_days_registered_saved_year2
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear2($vacation_days_registered_saved_year2)
    {
        if (is_null($vacation_days_registered_saved_year2)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year2 cannot be null');
        }
        $this->container['vacation_days_registered_saved_year2'] = $vacation_days_registered_saved_year2;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year3
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear3()
    {
        return $this->container['vacation_days_registered_saved_year3'];
    }

    /**
     * Sets vacation_days_registered_saved_year3
     *
     * @param float|null $vacation_days_registered_saved_year3 vacation_days_registered_saved_year3
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear3($vacation_days_registered_saved_year3)
    {
        if (is_null($vacation_days_registered_saved_year3)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year3 cannot be null');
        }
        $this->container['vacation_days_registered_saved_year3'] = $vacation_days_registered_saved_year3;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year4
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear4()
    {
        return $this->container['vacation_days_registered_saved_year4'];
    }

    /**
     * Sets vacation_days_registered_saved_year4
     *
     * @param float|null $vacation_days_registered_saved_year4 vacation_days_registered_saved_year4
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear4($vacation_days_registered_saved_year4)
    {
        if (is_null($vacation_days_registered_saved_year4)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year4 cannot be null');
        }
        $this->container['vacation_days_registered_saved_year4'] = $vacation_days_registered_saved_year4;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year5
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear5()
    {
        return $this->container['vacation_days_registered_saved_year5'];
    }

    /**
     * Sets vacation_days_registered_saved_year5
     *
     * @param float|null $vacation_days_registered_saved_year5 vacation_days_registered_saved_year5
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear5($vacation_days_registered_saved_year5)
    {
        if (is_null($vacation_days_registered_saved_year5)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year5 cannot be null');
        }
        $this->container['vacation_days_registered_saved_year5'] = $vacation_days_registered_saved_year5;

        return $this;
    }

    /**
     * Gets vacation_days_registered_saved_year6_plus
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredSavedYear6Plus()
    {
        return $this->container['vacation_days_registered_saved_year6_plus'];
    }

    /**
     * Sets vacation_days_registered_saved_year6_plus
     *
     * @param float|null $vacation_days_registered_saved_year6_plus vacation_days_registered_saved_year6_plus
     *
     * @return self
     */
    public function setVacationDaysRegisteredSavedYear6Plus($vacation_days_registered_saved_year6_plus)
    {
        if (is_null($vacation_days_registered_saved_year6_plus)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_saved_year6_plus cannot be null');
        }
        $this->container['vacation_days_registered_saved_year6_plus'] = $vacation_days_registered_saved_year6_plus;

        return $this;
    }

    /**
     * Gets vacation_days_registered_unpaid
     *
     * @return float|null
     */
    public function getVacationDaysRegisteredUnpaid()
    {
        return $this->container['vacation_days_registered_unpaid'];
    }

    /**
     * Sets vacation_days_registered_unpaid
     *
     * @param float|null $vacation_days_registered_unpaid vacation_days_registered_unpaid
     *
     * @return self
     */
    public function setVacationDaysRegisteredUnpaid($vacation_days_registered_unpaid)
    {
        if (is_null($vacation_days_registered_unpaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_registered_unpaid cannot be null');
        }
        $this->container['vacation_days_registered_unpaid'] = $vacation_days_registered_unpaid;

        return $this;
    }

    /**
     * Gets vacation_days_saved
     *
     * @return float|null
     */
    public function getVacationDaysSaved()
    {
        return $this->container['vacation_days_saved'];
    }

    /**
     * Sets vacation_days_saved
     *
     * @param float|null $vacation_days_saved vacation_days_saved
     *
     * @return self
     */
    public function setVacationDaysSaved($vacation_days_saved)
    {
        if (is_null($vacation_days_saved)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved cannot be null');
        }
        $this->container['vacation_days_saved'] = $vacation_days_saved;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year1
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear1()
    {
        return $this->container['vacation_days_saved_employment_rate_year1'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year1
     *
     * @param float|null $vacation_days_saved_employment_rate_year1 vacation_days_saved_employment_rate_year1
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear1($vacation_days_saved_employment_rate_year1)
    {
        if (is_null($vacation_days_saved_employment_rate_year1)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year1 cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year1'] = $vacation_days_saved_employment_rate_year1;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year2
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear2()
    {
        return $this->container['vacation_days_saved_employment_rate_year2'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year2
     *
     * @param float|null $vacation_days_saved_employment_rate_year2 vacation_days_saved_employment_rate_year2
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear2($vacation_days_saved_employment_rate_year2)
    {
        if (is_null($vacation_days_saved_employment_rate_year2)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year2 cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year2'] = $vacation_days_saved_employment_rate_year2;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year3
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear3()
    {
        return $this->container['vacation_days_saved_employment_rate_year3'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year3
     *
     * @param float|null $vacation_days_saved_employment_rate_year3 vacation_days_saved_employment_rate_year3
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear3($vacation_days_saved_employment_rate_year3)
    {
        if (is_null($vacation_days_saved_employment_rate_year3)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year3 cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year3'] = $vacation_days_saved_employment_rate_year3;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year4
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear4()
    {
        return $this->container['vacation_days_saved_employment_rate_year4'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year4
     *
     * @param float|null $vacation_days_saved_employment_rate_year4 vacation_days_saved_employment_rate_year4
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear4($vacation_days_saved_employment_rate_year4)
    {
        if (is_null($vacation_days_saved_employment_rate_year4)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year4 cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year4'] = $vacation_days_saved_employment_rate_year4;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year5
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear5()
    {
        return $this->container['vacation_days_saved_employment_rate_year5'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year5
     *
     * @param float|null $vacation_days_saved_employment_rate_year5 vacation_days_saved_employment_rate_year5
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear5($vacation_days_saved_employment_rate_year5)
    {
        if (is_null($vacation_days_saved_employment_rate_year5)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year5 cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year5'] = $vacation_days_saved_employment_rate_year5;

        return $this;
    }

    /**
     * Gets vacation_days_saved_employment_rate_year6_plus
     *
     * @return float|null
     */
    public function getVacationDaysSavedEmploymentRateYear6Plus()
    {
        return $this->container['vacation_days_saved_employment_rate_year6_plus'];
    }

    /**
     * Sets vacation_days_saved_employment_rate_year6_plus
     *
     * @param float|null $vacation_days_saved_employment_rate_year6_plus vacation_days_saved_employment_rate_year6_plus
     *
     * @return self
     */
    public function setVacationDaysSavedEmploymentRateYear6Plus($vacation_days_saved_employment_rate_year6_plus)
    {
        if (is_null($vacation_days_saved_employment_rate_year6_plus)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_employment_rate_year6_plus cannot be null');
        }
        $this->container['vacation_days_saved_employment_rate_year6_plus'] = $vacation_days_saved_employment_rate_year6_plus;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year1
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear1()
    {
        return $this->container['vacation_days_saved_year1'];
    }

    /**
     * Sets vacation_days_saved_year1
     *
     * @param float|null $vacation_days_saved_year1 vacation_days_saved_year1
     *
     * @return self
     */
    public function setVacationDaysSavedYear1($vacation_days_saved_year1)
    {
        if (is_null($vacation_days_saved_year1)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year1 cannot be null');
        }
        $this->container['vacation_days_saved_year1'] = $vacation_days_saved_year1;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year2
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear2()
    {
        return $this->container['vacation_days_saved_year2'];
    }

    /**
     * Sets vacation_days_saved_year2
     *
     * @param float|null $vacation_days_saved_year2 vacation_days_saved_year2
     *
     * @return self
     */
    public function setVacationDaysSavedYear2($vacation_days_saved_year2)
    {
        if (is_null($vacation_days_saved_year2)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year2 cannot be null');
        }
        $this->container['vacation_days_saved_year2'] = $vacation_days_saved_year2;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year3
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear3()
    {
        return $this->container['vacation_days_saved_year3'];
    }

    /**
     * Sets vacation_days_saved_year3
     *
     * @param float|null $vacation_days_saved_year3 vacation_days_saved_year3
     *
     * @return self
     */
    public function setVacationDaysSavedYear3($vacation_days_saved_year3)
    {
        if (is_null($vacation_days_saved_year3)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year3 cannot be null');
        }
        $this->container['vacation_days_saved_year3'] = $vacation_days_saved_year3;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year4
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear4()
    {
        return $this->container['vacation_days_saved_year4'];
    }

    /**
     * Sets vacation_days_saved_year4
     *
     * @param float|null $vacation_days_saved_year4 vacation_days_saved_year4
     *
     * @return self
     */
    public function setVacationDaysSavedYear4($vacation_days_saved_year4)
    {
        if (is_null($vacation_days_saved_year4)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year4 cannot be null');
        }
        $this->container['vacation_days_saved_year4'] = $vacation_days_saved_year4;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year5
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear5()
    {
        return $this->container['vacation_days_saved_year5'];
    }

    /**
     * Sets vacation_days_saved_year5
     *
     * @param float|null $vacation_days_saved_year5 vacation_days_saved_year5
     *
     * @return self
     */
    public function setVacationDaysSavedYear5($vacation_days_saved_year5)
    {
        if (is_null($vacation_days_saved_year5)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year5 cannot be null');
        }
        $this->container['vacation_days_saved_year5'] = $vacation_days_saved_year5;

        return $this;
    }

    /**
     * Gets vacation_days_saved_year6_plus
     *
     * @return float|null
     */
    public function getVacationDaysSavedYear6Plus()
    {
        return $this->container['vacation_days_saved_year6_plus'];
    }

    /**
     * Sets vacation_days_saved_year6_plus
     *
     * @param float|null $vacation_days_saved_year6_plus vacation_days_saved_year6_plus
     *
     * @return self
     */
    public function setVacationDaysSavedYear6Plus($vacation_days_saved_year6_plus)
    {
        if (is_null($vacation_days_saved_year6_plus)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_saved_year6_plus cannot be null');
        }
        $this->container['vacation_days_saved_year6_plus'] = $vacation_days_saved_year6_plus;

        return $this;
    }

    /**
     * Gets vacation_days_unpaid
     *
     * @return float|null
     */
    public function getVacationDaysUnpaid()
    {
        return $this->container['vacation_days_unpaid'];
    }

    /**
     * Sets vacation_days_unpaid
     *
     * @param float|null $vacation_days_unpaid vacation_days_unpaid
     *
     * @return self
     */
    public function setVacationDaysUnpaid($vacation_days_unpaid)
    {
        if (is_null($vacation_days_unpaid)) {
            throw new \InvalidArgumentException('non-nullable vacation_days_unpaid cannot be null');
        }
        $this->container['vacation_days_unpaid'] = $vacation_days_unpaid;

        return $this;
    }

    /**
     * Gets working_time_enumeration
     *
     * @return string|null
     */
    public function getWorkingTimeEnumeration()
    {
        return $this->container['working_time_enumeration'];
    }

    /**
     * Sets working_time_enumeration
     *
     * @param string|null $working_time_enumeration working_time_enumeration
     *
     * @return self
     */
    public function setWorkingTimeEnumeration($working_time_enumeration)
    {
        if (is_null($working_time_enumeration)) {
            throw new \InvalidArgumentException('non-nullable working_time_enumeration cannot be null');
        }
        $this->container['working_time_enumeration'] = $working_time_enumeration;

        return $this;
    }
    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param integer|string $offset Offset
     *
     * @return boolean
     */
    public function offsetExists(mixed $offset): bool
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param integer|string $offset Offset
     *
     * @return mixed|null
     */
    #[\ReturnTypeWillChange]
    public function offsetGet(mixed $offset)
    {
        return $this->container[$offset] ?? null;
    }

    /**
     * Sets value based on offset.
     *
     * @param int|null $offset Offset
     * @param mixed    $value  Value to be set
     *
     * @return void
     */
    public function offsetSet($offset, $value): void
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param integer|string $offset Offset
     *
     * @return void
     */
    public function offsetUnset(mixed $offset): void
    {
        unset($this->container[$offset]);
    }

    /**
     * Serializes the object to a value that can be serialized natively by json_encode().
     * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php
     *
     * @return mixed Returns data which can be serialized by json_encode(), which is a value
     * of any type other than a resource.
     */
    #[\ReturnTypeWillChange]
    public function jsonSerialize()
    {
       return ObjectSerializer::sanitizeForSerialization($this);
    }

    /**
     * Gets the string presentation of the object
     *
     * @return string
     */
    public function __toString()
    {
        return json_encode(
            ObjectSerializer::sanitizeForSerialization($this),
            JSON_PRETTY_PRINT
        );
    }

    /**
     * Gets a header-safe presentation of the object
     *
     * @return string
     */
    public function toHeaderValue()
    {
        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}


