package AsposeTasksCloud::Object::ExtendedAttributeDefinition;

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 = {
    'FieldId' => 'string',
    'FieldName' => 'string',
    'CfType' => 'CustomFieldType',
    'Guid' => 'string',
    'ElementType' => 'ElementType',
    'MaxMultiValues' => 'int',
    'UserDef' => 'boolean',
    'Alias' => 'string',
    'SecondaryPid' => 'string',
    'AutoRollDown' => 'boolean',
    'DefaultGuid' => 'string',
    'LookupUid' => 'string',
    'PhoneticsAlias' => 'string',
    'RollupType' => 'RollupType',
    'CalculationType' => 'CalculationType',
    'Formula' => 'string',
    'RestrictValues' => 'boolean',
    'ValuelistSortOrder' => 'int',
    'AppendNewValues' => 'boolean',
    'Default' => 'string',
    'ValueList' => 'ARRAY[Value]',
    'SecondaryGuid' => 'string'
};

my $attribute_map = {
    'FieldId' => 'FieldId',
    'FieldName' => 'FieldName',
    'CfType' => 'CfType',
    'Guid' => 'Guid',
    'ElementType' => 'ElementType',
    'MaxMultiValues' => 'MaxMultiValues',
    'UserDef' => 'UserDef',
    'Alias' => 'Alias',
    'SecondaryPid' => 'SecondaryPid',
    'AutoRollDown' => 'AutoRollDown',
    'DefaultGuid' => 'DefaultGuid',
    'LookupUid' => 'LookupUid',
    'PhoneticsAlias' => 'PhoneticsAlias',
    'RollupType' => 'RollupType',
    'CalculationType' => 'CalculationType',
    'Formula' => 'Formula',
    'RestrictValues' => 'RestrictValues',
    'ValuelistSortOrder' => 'ValuelistSortOrder',
    'AppendNewValues' => 'AppendNewValues',
    'Default' => 'Default',
    'ValueList' => 'ValueList',
    'SecondaryGuid' => 'SecondaryGuid'
};

# new object
sub new { 
    my ($class, %args) = @_; 
    my $self = { 
        #
        'FieldId' => $args{'FieldId'}, 
        #
        'FieldName' => $args{'FieldName'}, 
        #
        'CfType' => $args{'CfType'}, 
        #
        'Guid' => $args{'Guid'}, 
        #
        'ElementType' => $args{'ElementType'}, 
        #
        'MaxMultiValues' => $args{'MaxMultiValues'}, 
        #
        'UserDef' => $args{'UserDef'}, 
        #
        'Alias' => $args{'Alias'}, 
        #
        'SecondaryPid' => $args{'SecondaryPid'}, 
        #
        'AutoRollDown' => $args{'AutoRollDown'}, 
        #
        'DefaultGuid' => $args{'DefaultGuid'}, 
        #
        'LookupUid' => $args{'LookupUid'}, 
        #
        'PhoneticsAlias' => $args{'PhoneticsAlias'}, 
        #
        'RollupType' => $args{'RollupType'}, 
        #
        'CalculationType' => $args{'CalculationType'}, 
        #
        'Formula' => $args{'Formula'}, 
        #
        'RestrictValues' => $args{'RestrictValues'}, 
        #
        'ValuelistSortOrder' => $args{'ValuelistSortOrder'}, 
        #
        'AppendNewValues' => $args{'AppendNewValues'}, 
        #
        'Default' => $args{'Default'}, 
        #
        'ValueList' => $args{'ValueList'}, 
        #
        'SecondaryGuid' => $args{'SecondaryGuid'}
    }; 

    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;
