File Coverage

blib/lib/WWW/LogicBoxes/PrivateNameServer.pm
Criterion Covered Total %
statement 18 18 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod n/a
total 24 24 100.0


line stmt bran cond sub pod time code
1             package WWW::LogicBoxes::PrivateNameServer;
2              
3 42     42   352935 use strict;
  42         109  
  42         1482  
4 42     42   256 use warnings;
  42         97  
  42         1339  
5              
6 42     42   695 use Moose;
  42         145595  
  42         336  
7 42     42   302582 use MooseX::StrictConstructor;
  42         43414  
  42         379  
8 42     42   144041 use namespace::autoclean;
  42         103  
  42         451  
9              
10 42     42   4749 use WWW::LogicBoxes::Types qw( DomainName Int IPs );
  42         105  
  42         469  
11              
12             our $VERSION = '1.10.1'; # VERSION
13             # ABSTRACT: LogicBoxes Private Nameserver
14              
15             has domain_id => (
16             is => 'ro',
17             isa => Int,
18             required => 1,
19             );
20              
21             has name => (
22             is => 'ro',
23             isa => DomainName,
24             required => 1,
25             );
26              
27             has ips => (
28             is => 'ro',
29             isa => IPs,
30             required => 1,
31             );
32              
33             __PACKAGE__->meta->make_immutable;
34             1;
35              
36             __END__
37             =pod
38              
39             =head1 NAME
40              
41             WWW::LogicBoxes::PrivateNameServer - Representation of Private Nameserver
42              
43             =head1 SYNOPSIS
44              
45             use WWW::LogicBoxes;
46             use WWW::LogicBoxes::Domain;
47             use WWW::LogicBoxes::PrivateNameServer;
48              
49             my $domain = WWW::LogicBoxes::Domain->new( ... ); # Valid LogicBoxes domain
50              
51             my $private_name_server = WWW::LogicBoxes::PrivateNameServer->new(
52             domain_id => $domain->id,
53             name => 'ns1.' . $domain->name,
54             ips => [ '8.8.8.8', '2001:4860:4860:0:0:0:0:8888' ], # IPv4 and IPv6 are supported
55             );
56              
57             my $logic_boxes = WWW::LogicBoxes->new( ... );
58              
59             my $updated_domain = $logic_boxes->create_private_nameserver( $private_name_server );
60              
61             =head1 DESCRIPTION
62              
63             Private Nameservers are those that are from the same domain as the L<registered domain|WWW::LogicBoxes::Domain>. For example, a domain test-domain.com could have private nameservers ns1.test-domain.com and ns2.test-domain.com.
64              
65             These nameservers must be "registered" with L<LogicBoxes|http://www.logicboxes.com> and it is the responsiblity of WWW::LogicBoxes::PrivateNameServer to represent all of the data assoicated with these registrations.
66              
67             =head1 ATTRIBUTES
68              
69             =head2 B<domain_id>
70              
71             The L<domain|WWW::LogicBoxes::Domain> id assoicated with the domain that this will be a private nameserver for (test-domain.com).
72              
73             =head2 B<name>
74              
75             The full domain name that will represent the private nameserver (ns1.test-domain.com). It must be a child of the L<domain|WWW::LogicBoxes::Domain> whose id is being used.
76              
77             =head2 B<ips>
78              
79             An ArrayRef of IP addresses ( both IPv4 and IPv6 are supported ) that the above L<name> should resolve to.
80              
81             =cut