File Coverage

blib/lib/WebService/Mattermost/V4/API/Object/Compliance/Report.pm
Criterion Covered Total %
statement 6 24 25.0
branch n/a
condition n/a
subroutine 2 10 20.0
pod 0 1 0.0
total 8 35 22.8


line stmt bran cond sub pod time code
1             package WebService::Mattermost::V4::API::Object::Compliance::Report;
2:

3: # ABSTRACT: A compliance report item. 4:
5: use Moo;
6: use Types::Standard qw(Str InstanceOf Int Maybe);
7:
8: extends 'WebService::Mattermost::V4::API::Object';
9: with qw(
10: WebService::Mattermost::V4::API::Object::Role::APIMethods
11: WebService::Mattermost::V4::API::Object::Role::ID
12: WebService::Mattermost::V4::API::Object::Role::Status
13: WebService::Mattermost::V4::API::Object::Role::CreatedAt
14: WebService::Mattermost::V4::API::Object::Role::BelongingToUser
15: );
16:
17: ################################################################################
18:
19: has [ qw(count start_at end_at) ] => (is => 'ro', isa => Maybe[Int], lazy => 1, builder => 1);
20: has [ qw(desc type keywords emails) ] => (is => 'ro', isa => Maybe[Str], lazy => 1, builder => 1);
21:
22: has [ qw(
23: started_at
24: ended_at
25: ) ] => (is => 'ro', isa => Maybe[InstanceOf['DateTime']], lazy => 1, builder => 1);
26:
27: ################################################################################
28:
29: sub BUILD {
30: my $self = shift;
31:
32: $self->api_resource_name('compliance_report');
33: $self->set_available_api_methods([ 'download' ]);
34:
35: return 1;
36: }
37:
38: ################################################################################
39:
40: sub _build_count {
41: my $self = shift;
42:
43: return $self->raw_data->{count};
44: }
45:
46: sub _build_start_at {
47: my $self = shift;
48:
49: return $self->raw_data->{start_at};
50: }
51:
52: sub _build_end_at {
53: my $self = shift;
54:
55: return $self->raw_data->{end_at};
56: }
57:
58: sub _build_desc {
59: my $self = shift;
60:
61: return $self->raw_data->{desc};
62: }
63:
64: sub _build_type {
65: my $self = shift;
66:
67: return $self->raw_data->{type};
68: }
69:
70: sub _build_keywords {
71: my $self = shift;
72:
73: return $self->raw_data->{keywords};
74: }
75:
76: sub _build_emails {
77: my $self = shift;
78:
79: return $self->raw_data->{emails};
80: }
81:
82: ################################################################################
83:
84: 1;
85:
86: __END__
87:
88: =pod
89:
90: =encoding UTF-8
91:
92: =head1 NAME
93:
94: WebService::Mattermost::V4::API::Object::Compliance::Report - A compliance report item.
95:
96: =head1 VERSION
97:
98: version 0.28
99:
100: =head1 DESCRIPTION
101:
102: See matching methods in L<WebService::Mattermost::V4::API::Resource::Compliance::Report>
103: for full documentation.
104:
105: ID parameters are not required:
106:
107: my $response = $mattermost->api->compliance_report->get('ID-HERE')->item->download();
108:
109: Is the same as:
110:
111: my $response = $mattermost->api->compliance_report->download('ID-HERE');
112:
113: =head2 ATTRIBUTES
114:
115: =over 4
116:
117: =item C<count>
118:
119: =item C<start_at>
120:
121: =item C<end_at>
122:
123: =item C<desc>
124:
125: =item C<type>
126:
127: =item C<keywords>
128:
129: =item C<emails>
130:
131: =item C<started_at>
132:
133: =item C<ended_at>
134:
135: =back
136:
137: =head1 SEE ALSO
138:
139: =over 4
140:
141: =item L<WebService::Mattermost::V4::API::Resource::Compliance::Report>
142:
143: =item L<WebService::Mattermost::V4::API::Object::Role::ID>
144:
145: =item L<WebService::Mattermost::V4::API::Object::Role::Status>
146:
147: =item L<WebService::Mattermost::V4::API::Object::Role::CreatedAt>
148:
149: =item L<WebService::Mattermost::V4::API::Object::Role::BelongingToUser>
150:
151: =back
152:
153: =head1 AUTHOR
154:
155: Mike Jones <mike@netsplit.org.uk>
156:
157: =head1 COPYRIGHT AND LICENSE
158:
159: This software is Copyright (c) 2020 by Mike Jones.
160:
161: This is free software, licensed under:
162:
163: The MIT (X11) License
164:
165: =cut
166: