package AsposeTasksCloud::Object::CalendarException;

require 5.6.0;
use strict;
use warnings;
use utf8;
use JSON qw(decode_json);
use Data::Dumper;
use Module::Runtime qw(use_module);
use Log::Any qw($log);
use Date::Parse;
use DateTime;

use base "AsposeTasksCloud::Object::BaseObject";

#
#
#
#NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
#

my $swagger_types = {
    'EnteredByOccurrences' => 'boolean',
    'FromDate' => 'string',
    'ToDate' => 'string',
    'Occurrences' => 'int',
    'Name' => 'string',
    'Type' => 'CalendarExceptionType',
    'Period' => 'int',
    'DaysOfWeek' => 'ARRAY[DayType]',
    'MonthItem' => 'MonthItemType',
    'MonthPosition' => 'MonthPosition',
    'Month' => 'Month',
    'MonthDay' => 'int',
    'DayWorking' => 'boolean',
    'WorkingTimes' => 'ARRAY[WorkingTime]'
};

my $attribute_map = {
    'EnteredByOccurrences' => 'EnteredByOccurrences',
    'FromDate' => 'FromDate',
    'ToDate' => 'ToDate',
    'Occurrences' => 'Occurrences',
    'Name' => 'Name',
    'Type' => 'Type',
    'Period' => 'Period',
    'DaysOfWeek' => 'DaysOfWeek',
    'MonthItem' => 'MonthItem',
    'MonthPosition' => 'MonthPosition',
    'Month' => 'Month',
    'MonthDay' => 'MonthDay',
    'DayWorking' => 'DayWorking',
    'WorkingTimes' => 'WorkingTimes'
};

# new object
sub new { 
    my ($class, %args) = @_; 
    my $self = { 
        #
        'EnteredByOccurrences' => $args{'EnteredByOccurrences'}, 
        #
        'FromDate' => $args{'FromDate'}, 
        #
        'ToDate' => $args{'ToDate'}, 
        #
        'Occurrences' => $args{'Occurrences'}, 
        #
        'Name' => $args{'Name'}, 
        #
        'Type' => $args{'Type'}, 
        #
        'Period' => $args{'Period'}, 
        #
        'DaysOfWeek' => $args{'DaysOfWeek'}, 
        #
        'MonthItem' => $args{'MonthItem'}, 
        #
        'MonthPosition' => $args{'MonthPosition'}, 
        #
        'Month' => $args{'Month'}, 
        #
        'MonthDay' => $args{'MonthDay'}, 
        #
        'DayWorking' => $args{'DayWorking'}, 
        #
        'WorkingTimes' => $args{'WorkingTimes'}
    }; 

    return bless $self, $class; 
}  

# get swagger type of the attribute
sub get_swagger_types {
    return $swagger_types;
}

# get attribute mappping
sub get_attribute_map {
    return $attribute_map;
}

1;
