package AsposeWordsCloud::Object::PageSetup;

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 "AsposeWordsCloud::Object::BaseObject";

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

my $swagger_types = {
    'Bidi' => 'boolean',
    'BorderAlwaysInFront' => 'boolean',
    'BorderAppliesTo' => 'PageBorderAppliesTo',
    'BorderDistanceFrom' => 'PageBorderDistanceFrom',
    'BottomMargin' => 'double',
    'DifferentFirstPageHeaderFooter' => 'boolean',
    'FirstPageTray' => 'int',
    'FooterDistance' => 'double',
    'Gutter' => 'double',
    'HeaderDistance' => 'double',
    'LeftMargin' => 'double',
    'LineNumberCountBy' => 'int',
    'LineNumberDistanceFromText' => 'double',
    'LineNumberRestartMode' => 'LineNumberRestartMode',
    'LineStartingNumber' => 'int',
    'Orientation' => 'Orientation',
    'OtherPagesTray' => 'int',
    'PageHeight' => 'double',
    'PageNumberStyle' => 'NumberStyle',
    'PageStartingNumber' => 'int',
    'PageWidth' => 'double',
    'PaperSize' => 'PaperSize',
    'RestartPageNumbering' => 'boolean',
    'RightMargin' => 'double',
    'RtlGutter' => 'boolean',
    'SectionStart' => 'SectionStart',
    'SuppressEndnotes' => 'boolean',
    'TopMargin' => 'double',
    'VerticalAlignment' => 'PageVerticalAlignment',
    'link' => 'Link'
};

my $attribute_map = {
    'Bidi' => 'Bidi',
    'BorderAlwaysInFront' => 'BorderAlwaysInFront',
    'BorderAppliesTo' => 'BorderAppliesTo',
    'BorderDistanceFrom' => 'BorderDistanceFrom',
    'BottomMargin' => 'BottomMargin',
    'DifferentFirstPageHeaderFooter' => 'DifferentFirstPageHeaderFooter',
    'FirstPageTray' => 'FirstPageTray',
    'FooterDistance' => 'FooterDistance',
    'Gutter' => 'Gutter',
    'HeaderDistance' => 'HeaderDistance',
    'LeftMargin' => 'LeftMargin',
    'LineNumberCountBy' => 'LineNumberCountBy',
    'LineNumberDistanceFromText' => 'LineNumberDistanceFromText',
    'LineNumberRestartMode' => 'LineNumberRestartMode',
    'LineStartingNumber' => 'LineStartingNumber',
    'Orientation' => 'Orientation',
    'OtherPagesTray' => 'OtherPagesTray',
    'PageHeight' => 'PageHeight',
    'PageNumberStyle' => 'PageNumberStyle',
    'PageStartingNumber' => 'PageStartingNumber',
    'PageWidth' => 'PageWidth',
    'PaperSize' => 'PaperSize',
    'RestartPageNumbering' => 'RestartPageNumbering',
    'RightMargin' => 'RightMargin',
    'RtlGutter' => 'RtlGutter',
    'SectionStart' => 'SectionStart',
    'SuppressEndnotes' => 'SuppressEndnotes',
    'TopMargin' => 'TopMargin',
    'VerticalAlignment' => 'VerticalAlignment',
    'link' => 'link'
};

# new object
sub new { 
    my ($class, %args) = @_; 
    my $self = { 
        #
        'Bidi' => $args{'Bidi'}, 
        #
        'BorderAlwaysInFront' => $args{'BorderAlwaysInFront'}, 
        #
        'BorderAppliesTo' => $args{'BorderAppliesTo'}, 
        #
        'BorderDistanceFrom' => $args{'BorderDistanceFrom'}, 
        #
        'BottomMargin' => $args{'BottomMargin'}, 
        #
        'DifferentFirstPageHeaderFooter' => $args{'DifferentFirstPageHeaderFooter'}, 
        #
        'FirstPageTray' => $args{'FirstPageTray'}, 
        #
        'FooterDistance' => $args{'FooterDistance'}, 
        #
        'Gutter' => $args{'Gutter'}, 
        #
        'HeaderDistance' => $args{'HeaderDistance'}, 
        #
        'LeftMargin' => $args{'LeftMargin'}, 
        #
        'LineNumberCountBy' => $args{'LineNumberCountBy'}, 
        #
        'LineNumberDistanceFromText' => $args{'LineNumberDistanceFromText'}, 
        #
        'LineNumberRestartMode' => $args{'LineNumberRestartMode'}, 
        #
        'LineStartingNumber' => $args{'LineStartingNumber'}, 
        #
        'Orientation' => $args{'Orientation'}, 
        #
        'OtherPagesTray' => $args{'OtherPagesTray'}, 
        #
        'PageHeight' => $args{'PageHeight'}, 
        #
        'PageNumberStyle' => $args{'PageNumberStyle'}, 
        #
        'PageStartingNumber' => $args{'PageStartingNumber'}, 
        #
        'PageWidth' => $args{'PageWidth'}, 
        #
        'PaperSize' => $args{'PaperSize'}, 
        #
        'RestartPageNumbering' => $args{'RestartPageNumbering'}, 
        #
        'RightMargin' => $args{'RightMargin'}, 
        #
        'RtlGutter' => $args{'RtlGutter'}, 
        #
        'SectionStart' => $args{'SectionStart'}, 
        #
        'SuppressEndnotes' => $args{'SuppressEndnotes'}, 
        #
        'TopMargin' => $args{'TopMargin'}, 
        #
        'VerticalAlignment' => $args{'VerticalAlignment'}, 
        #
        'link' => $args{'link'}
    }; 

    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;
