# -*- perl -*-
# !!! DO NOT EDIT !!!
# This file was automatically generated.
package Net::Amazon::Validate::Type::[%--$MODULE_NAME--%];
use 5.006;
use strict;
use warnings;
[%--
for my $params (sort keys %parameters) {
$OUT .= "use constant ".uc($params)."_VALID_VALUES => {\n";
for my $val (sort keys %{$parameters{$params}{value}}) {
$OUT .= " '$val' => '$parameters{$params}{value}{$val}',\n";
}
$OUT .= "};\n\n";
}
--%]
sub new {
my ($class , %options) = @_;
my $self = {
%options,
};
bless $self, $class;
}
sub assert {
my ($self, $value, $name, $href) = @_;
die "Unknown type in Net::Amazon::Request constructor: $value" unless defined $href->{$value};
}
sub validate {
my ($self, $value, $name, $href) = @_;
if ( ref ($value) eq 'ARRAY' ) {
$self->assert($_, $name, $href) for (@$value);
} else {
$self->assert($value, $name, $href);
}
}
[%--
for my $params (sort keys %parameters) {
$OUT .= "sub ".$params. " {\n";
$OUT .= ' my ($self, $value) = @_;'."\n";
$OUT .= ' $self->validate($value, "'.$params.'", ('.uc($params).'_VALID_VALUES));'."\n";
$OUT .= "}\n\n";
}
--%]
1;