AWS-CloudFront
view release on metacpan or search on metacpan
lib/AWS/CloudFront/DistributionConfig.pm view on Meta::CPAN
package AWS::CloudFront::DistributionConfig;
use VSO;
use Data::Validate::Domain 'is_domain';
has 'S3Origin' => (
is => 'ro',
isa => 'AWS::CloudFront::S3Origin',
required => 0,
);
has 'CustomOrigin' => (
is => 'ro',
isa => 'AWS::CloudFront::CustomOrigin',
required => 0,
);
has 'CallerReference' => (
is => 'ro',
isa => 'Str',
required => 1,
);
has 'CNAME' => (
is => 'rw',
isa => 'Str',
required => 0,
where => sub {
is_domain($_, {do_allow_underscore => 1})
}
);
has 'Comment' => (
is => 'rw',
isa => 'Str',
required => 0,
);
has 'Enabled' => (
is => 'rw',
isa => 'Str',
required => 1,
where => sub {
$_ =~ m{^(true|false)$}
}
);
has 'DefaultRootObject' => (
is => 'ro',
isa => 'Str',
required => 0,
where => sub {
(! defined $_) ||
(! length $_) ||
$_ =~ m{^([
a-z
A-Z
0-9
_\-\.\*\$\/\~"'\&
|\&
]+)$}x;
}
);
has 'Logging' => (
is => 'ro',
isa => 'AWS::CloudFront::Logging',
required => 0,
);
has 'TrustedSigners' => (
is => 'ro',
isa => 'AWS::CloudFront::TrustedSigners',
required => 0,
);
has 'RequiredProtocols' => (
is => 'ro',
isa => 'AWS::CloudFront::RequiredProtocols',
required => 0,
);
sub BUILD
{
my $s = shift;
die 'Must specify either an S3Origin or a CustomOrigin.'
unless $s->S3Origin || $s->CustomOrigin;
die 'You cannot use both S3Origin and CustomOrigin in the same distribution.'
if $s->S3Origin && $s->CustomOrigin;
}# end BUILD()
1;# return true:
( run in 0.639 second using v1.01-cache-2.11-cpan-d8267643d1d )