# Number of lines of code in new: 24
sub new {
my ($class, %args) = @_;
$class = ref($class) || $class;
my $validatorList = [];
my $self = $class->SUPER::new('validator_list' => $validatorList, %args);
$self->{backup_password} = $args{'backup_password'};
$self->{location_type} = $args{'location_type'};
$self->{location} = $args{'location'};
$self->{location_user} = $args{'location_user'};
$self->{location_password} = $args{'location_password'};
$self->set_binding_class('binding_class' => 'Com::Vmware::Appliance::Recovery::Restore::RestoreRequest');
$self->set_binding_name('name' => 'com.vmware.appliance.recovery.restore.restore_request');
$self->set_binding_field('key' => 'backup_password', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::SecretType()));
$self->set_binding_field('key' => 'location_type', 'value' => new Com::Vmware::Vapi::Bindings::Type::ReferenceType('module_ctx' => 'Com::Vmware::Appliance::Recovery', 'type_name' => 'Restore::LocationType'));
$self->set_binding_field('key' => 'location', 'value' => new Com::Vmware::Vapi::Bindings::Type::StringType());
$self->set_binding_field('key' => 'location_user', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::StringType()));
$self->set_binding_field('key' => 'location_password', 'value' => new Com::Vmware::Vapi::Bindings::Type::OptionalType('element_type' => new Com::Vmware::Vapi::Bindings::Type::SecretType()));
bless $self, $class;
return $self;
}