package AsposeCellsCloud::Object::ProtectSheetParameter;

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

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

my $swagger_types = {
    'ProtectionType' => 'string',
    'Password' => 'string',
    'AllowEditArea' => 'ARRAY[string]',
    'AllowDeletingColumn' => 'string',
    'AllowDeletingRow' => 'string',
    'AllowFiltering' => 'string',
    'AllowFormattingCell' => 'string',
    'AllowFormattingColumn' => 'string',
    'AllowFormattingRow' => 'string',
    'AllowInsertingColumn' => 'string',
    'AllowInsertingHyperlink' => 'string',
    'AllowInsertingRow' => 'string',
    'AllowSelectingLockedCell' => 'string',
    'AllowSelectingUnlockedCell' => 'string',
    'AllowSorting' => 'string',
    'AllowUsingPivotTable' => 'string'
};

my $attribute_map = {
    'ProtectionType' => 'ProtectionType',
    'Password' => 'Password',
    'AllowEditArea' => 'AllowEditArea',
    'AllowDeletingColumn' => 'AllowDeletingColumn',
    'AllowDeletingRow' => 'AllowDeletingRow',
    'AllowFiltering' => 'AllowFiltering',
    'AllowFormattingCell' => 'AllowFormattingCell',
    'AllowFormattingColumn' => 'AllowFormattingColumn',
    'AllowFormattingRow' => 'AllowFormattingRow',
    'AllowInsertingColumn' => 'AllowInsertingColumn',
    'AllowInsertingHyperlink' => 'AllowInsertingHyperlink',
    'AllowInsertingRow' => 'AllowInsertingRow',
    'AllowSelectingLockedCell' => 'AllowSelectingLockedCell',
    'AllowSelectingUnlockedCell' => 'AllowSelectingUnlockedCell',
    'AllowSorting' => 'AllowSorting',
    'AllowUsingPivotTable' => 'AllowUsingPivotTable'
};

# new object
sub new { 
    my ($class, %args) = @_; 
    my $self = { 
        #
        'ProtectionType' => $args{'ProtectionType'}, 
        #
        'Password' => $args{'Password'}, 
        #
        'AllowEditArea' => $args{'AllowEditArea'}, 
        #
        'AllowDeletingColumn' => $args{'AllowDeletingColumn'}, 
        #
        'AllowDeletingRow' => $args{'AllowDeletingRow'}, 
        #
        'AllowFiltering' => $args{'AllowFiltering'}, 
        #
        'AllowFormattingCell' => $args{'AllowFormattingCell'}, 
        #
        'AllowFormattingColumn' => $args{'AllowFormattingColumn'}, 
        #
        'AllowFormattingRow' => $args{'AllowFormattingRow'}, 
        #
        'AllowInsertingColumn' => $args{'AllowInsertingColumn'}, 
        #
        'AllowInsertingHyperlink' => $args{'AllowInsertingHyperlink'}, 
        #
        'AllowInsertingRow' => $args{'AllowInsertingRow'}, 
        #
        'AllowSelectingLockedCell' => $args{'AllowSelectingLockedCell'}, 
        #
        'AllowSelectingUnlockedCell' => $args{'AllowSelectingUnlockedCell'}, 
        #
        'AllowSorting' => $args{'AllowSorting'}, 
        #
        'AllowUsingPivotTable' => $args{'AllowUsingPivotTable'}
    }; 

    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;
