File Coverage

blib/lib/Net/Amazon/S3/Operation/Object/Acl/Set/Request.pm
Criterion Covered Total %
statement 13 13 100.0
branch 4 4 100.0
condition 8 8 100.0
subroutine 4 4 100.0
pod 0 1 0.0
total 29 30 96.6


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