File Coverage

blib/lib/Net/Amazon/S3/Operation/Bucket/Acl/Set/Request.pm
Criterion Covered Total %
statement 16 16 100.0
branch 4 4 100.0
condition 8 8 100.0
subroutine 5 5 100.0
pod 0 1 0.0
total 33 34 97.0


line stmt bran cond sub pod time code
1             package Net::Amazon::S3::Operation::Bucket::Acl::Set::Request;
2             # ABSTRACT: An internal class to set a bucket's access control
3             $Net::Amazon::S3::Operation::Bucket::Acl::Set::Request::VERSION = '0.99';
4 99     99   802 use Moose 0.85;
  99         2712  
  99         692  
5 99     99   651613 use MooseX::StrictConstructor 0.16;
  99         2184  
  99         856  
6              
7 99     99   331300 use Carp ();
  99         319  
  99         24221  
8              
9             extends 'Net::Amazon::S3::Request::Bucket';
10              
11             with 'Net::Amazon::S3::Request::Role::HTTP::Header::ACL';
12              
13             has 'acl_xml' => (
14             is => 'ro',
15             isa => 'Maybe[Str]',
16             required => 0,
17             );
18              
19             with 'Net::Amazon::S3::Request::Role::Query::Action::Acl';
20             with 'Net::Amazon::S3::Request::Role::HTTP::Method::PUT';
21              
22             __PACKAGE__->meta->make_immutable;
23              
24             sub _request_content {
25 22     22   57 my ($self) = @_;
26              
27 22   100     714 return $self->acl_xml || '';
28             }
29              
30             sub BUILD {
31 24     24 0 20406 my ($self) = @_;
32              
33 24 100 100     945 unless ($self->acl_xml || $self->acl) {
34 1         246 Carp::confess "need either acl_xml or acl";
35             }
36              
37 23 100 100     780 if ($self->acl_xml && $self->acl) {
38 1         113 Carp::confess "can not provide both acl_xml and acl";
39             }
40             }
41              
42             1;
43              
44             __END__
45              
46             =pod
47              
48             =encoding UTF-8
49              
50             =head1 NAME
51              
52             Net::Amazon::S3::Operation::Bucket::Acl::Set::Request - An internal class to set a bucket's access control
53              
54             =head1 VERSION
55              
56             version 0.99
57              
58             =head1 SYNOPSIS
59              
60             my $request = Net::Amazon::S3::Operation::Bucket::Acl::Set::Request->new (
61             s3 => $s3,
62             bucket => $bucket,
63             acl_short => $acl_short,
64             acl_xml => $acl_xml,
65             );
66              
67             =head1 DESCRIPTION
68              
69             Implements operation L<< PutBucketAcl|https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html >>
70              
71             This module sets a bucket's access control.
72              
73             =for test_synopsis no strict 'vars'
74              
75             =head1 METHODS
76              
77             =head2 http_request
78              
79             This method returns a HTTP::Request object.
80              
81             =head1 AUTHOR
82              
83             Branislav Zahradník <barney@cpan.org>
84              
85             =head1 COPYRIGHT AND LICENSE
86              
87             This software is copyright (c) 2021 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover, Branislav Zahradník.
88              
89             This is free software; you can redistribute it and/or modify it under
90             the same terms as the Perl 5 programming language system itself.
91              
92             =cut