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.99';
4 99     99   746 use Moose 0.85;
  99         2510  
  99         748  
5 99     99   668674 use MooseX::StrictConstructor 0.16;
  99         2653  
  99         758  
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   77 my ($self) = @_;
19              
20 23   100     864 return $self->acl_xml || '';
21             }
22              
23             sub BUILD {
24 25     25 0 24572 my ($self) = @_;
25              
26 25 100 100     1074 unless ( $self->acl_xml || $self->acl ) {
27 1         263 confess "need either acl_xml or acl";
28             }
29              
30 24 100 100     935 if ( $self->acl_xml && $self->acl ) {
31 1         114 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.99
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