File Coverage

blib/lib/Paws/Route53/ResourceRecordSet.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package Paws::Route53::ResourceRecordSet;
2 1     1   493 use Moose;
  1     1   3  
  1         9  
  1         470  
  1         1  
  1         6  
3             has AliasTarget => (is => 'ro', isa => 'Paws::Route53::AliasTarget');
4             has Failover => (is => 'ro', isa => 'Str');
5             has GeoLocation => (is => 'ro', isa => 'Paws::Route53::GeoLocation');
6             has HealthCheckId => (is => 'ro', isa => 'Str');
7             has MultiValueAnswer => (is => 'ro', isa => 'Bool');
8             has Name => (is => 'ro', isa => 'Str', required => 1);
9             has Region => (is => 'ro', isa => 'Str');
10             has ResourceRecords => (is => 'ro', isa => 'ArrayRef[Paws::Route53::ResourceRecord]', request_name => 'ResourceRecord', traits => ['NameInRequest']);
11             has SetIdentifier => (is => 'ro', isa => 'Str');
12             has TrafficPolicyInstanceId => (is => 'ro', isa => 'Str');
13             has TTL => (is => 'ro', isa => 'Int');
14             has Type => (is => 'ro', isa => 'Str', required => 1);
15             has Weight => (is => 'ro', isa => 'Int');
16             1;
17              
18             ### main pod documentation begin ###
19              
20             =head1 NAME
21              
22             Paws::Route53::ResourceRecordSet
23              
24             =head1 USAGE
25              
26             This class represents one of two things:
27              
28             =head3 Arguments in a call to a service
29              
30             Use the attributes of this class as arguments to methods. You shouldn't make instances of this class.
31             Each attribute should be used as a named argument in the calls that expect this type of object.
32              
33             As an example, if Att1 is expected to be a Paws::Route53::ResourceRecordSet object:
34              
35             $service_obj->Method(Att1 => { AliasTarget => $value, ..., Weight => $value });
36              
37             =head3 Results returned from an API call
38              
39             Use accessors for each attribute. If Att1 is expected to be an Paws::Route53::ResourceRecordSet object:
40              
41             $result = $service_obj->Method(...);
42             $result->Att1->AliasTarget
43              
44             =head1 DESCRIPTION
45              
46             Information about the resource record set to create or delete.
47              
48             =head1 ATTRIBUTES
49              
50              
51             =head2 AliasTarget => L<Paws::Route53::AliasTarget>
52              
53             I<Alias resource record sets only:> Information about the CloudFront
54             distribution, AWS Elastic Beanstalk environment, ELB load balancer,
55             Amazon S3 bucket, or Amazon Route 53 resource record set to which
56             you're redirecting queries. The AWS Elastic Beanstalk environment must
57             have a regionalized subdomain.
58              
59             If you're creating resource records sets for a private hosted zone,
60             note the following:
61              
62             =over
63              
64             =item *
65              
66             You can't create alias resource record sets for CloudFront
67             distributions in a private hosted zone.
68              
69             =item *
70              
71             Creating geolocation alias resource record sets or latency alias
72             resource record sets in a private hosted zone is unsupported.
73              
74             =item *
75              
76             For information about creating failover resource record sets in a
77             private hosted zone, see Configuring Failover in a Private Hosted Zone
78             in the I<Amazon Route 53 Developer Guide>.
79              
80             =back
81              
82              
83              
84             =head2 Failover => Str
85              
86             I<Failover resource record sets only:> To configure failover, you add
87             the C<Failover> element to two resource record sets. For one resource
88             record set, you specify C<PRIMARY> as the value for C<Failover>; for
89             the other resource record set, you specify C<SECONDARY>. In addition,
90             you include the C<HealthCheckId> element and specify the health check
91             that you want Amazon Route 53 to perform for each resource record set.
92              
93             Except where noted, the following failover behaviors assume that you
94             have included the C<HealthCheckId> element in both resource record
95             sets:
96              
97             =over
98              
99             =item *
100              
101             When the primary resource record set is healthy, Amazon Route 53
102             responds to DNS queries with the applicable value from the primary
103             resource record set regardless of the health of the secondary resource
104             record set.
105              
106             =item *
107              
108             When the primary resource record set is unhealthy and the secondary
109             resource record set is healthy, Amazon Route 53 responds to DNS queries
110             with the applicable value from the secondary resource record set.
111              
112             =item *
113              
114             When the secondary resource record set is unhealthy, Amazon Route 53
115             responds to DNS queries with the applicable value from the primary
116             resource record set regardless of the health of the primary resource
117             record set.
118              
119             =item *
120              
121             If you omit the C<HealthCheckId> element for the secondary resource
122             record set, and if the primary resource record set is unhealthy, Amazon
123             Route 53 always responds to DNS queries with the applicable value from
124             the secondary resource record set. This is true regardless of the
125             health of the associated endpoint.
126              
127             =back
128              
129             You can't create non-failover resource record sets that have the same
130             values for the C<Name> and C<Type> elements as failover resource record
131             sets.
132              
133             For failover alias resource record sets, you must also include the
134             C<EvaluateTargetHealth> element and set the value to true.
135              
136             For more information about configuring failover for Amazon Route 53,
137             see the following topics in the I<Amazon Route 53 Developer Guide>:
138              
139             =over
140              
141             =item *
142              
143             Amazon Route 53 Health Checks and DNS Failover
144              
145             =item *
146              
147             Configuring Failover in a Private Hosted Zone
148              
149             =back
150              
151              
152              
153             =head2 GeoLocation => L<Paws::Route53::GeoLocation>
154              
155             I<Geo location resource record sets only:> A complex type that lets you
156             control how Amazon Route 53 responds to DNS queries based on the
157             geographic origin of the query. For example, if you want all queries
158             from Africa to be routed to a web server with an IP address of
159             C<192.0.2.111>, create a resource record set with a C<Type> of C<A> and
160             a C<ContinentCode> of C<AF>.
161              
162             Creating geolocation and geolocation alias resource record sets in
163             private hosted zones is not supported.
164              
165             If you create separate resource record sets for overlapping geographic
166             regions (for example, one resource record set for a continent and one
167             for a country on the same continent), priority goes to the smallest
168             geographic region. This allows you to route most queries for a
169             continent to one resource and to route queries for a country on that
170             continent to a different resource.
171              
172             You can't create two geolocation resource record sets that specify the
173             same geographic location.
174              
175             The value C<*> in the C<CountryCode> element matches all geographic
176             locations that aren't specified in other geolocation resource record
177             sets that have the same values for the C<Name> and C<Type> elements.
178              
179             Geolocation works by mapping IP addresses to locations. However, some
180             IP addresses aren't mapped to geographic locations, so even if you
181             create geolocation resource record sets that cover all seven
182             continents, Amazon Route 53 will receive some DNS queries from
183             locations that it can't identify. We recommend that you create a
184             resource record set for which the value of C<CountryCode> is C<*>,
185             which handles both queries that come from locations for which you
186             haven't created geolocation resource record sets and queries from IP
187             addresses that aren't mapped to a location. If you don't create a C<*>
188             resource record set, Amazon Route 53 returns a "no answer" response for
189             queries from those locations.
190              
191             You can't create non-geolocation resource record sets that have the
192             same values for the C<Name> and C<Type> elements as geolocation
193             resource record sets.
194              
195              
196             =head2 HealthCheckId => Str
197              
198             If you want Amazon Route 53 to return this resource record set in
199             response to a DNS query only when a health check is passing, include
200             the C<HealthCheckId> element and specify the ID of the applicable
201             health check.
202              
203             Amazon Route 53 determines whether a resource record set is healthy
204             based on one of the following:
205              
206             =over
207              
208             =item *
209              
210             By periodically sending a request to the endpoint that is specified in
211             the health check
212              
213             =item *
214              
215             By aggregating the status of a specified group of health checks
216             (calculated health checks)
217              
218             =item *
219              
220             By determining the current state of a CloudWatch alarm (CloudWatch
221             metric health checks)
222              
223             =back
224              
225             For more information, see How Amazon Route 53 Determines Whether an
226             Endpoint Is Healthy.
227              
228             The C<HealthCheckId> element is only useful when Amazon Route 53 is
229             choosing between two or more resource record sets to respond to a DNS
230             query, and you want Amazon Route 53 to base the choice in part on the
231             status of a health check. Configuring health checks only makes sense in
232             the following configurations:
233              
234             =over
235              
236             =item *
237              
238             You're checking the health of the resource record sets in a group of
239             weighted, latency, geolocation, or failover resource record sets, and
240             you specify health check IDs for all of the resource record sets. If
241             the health check for one resource record set specifies an endpoint that
242             is not healthy, Amazon Route 53 stops responding to queries using the
243             value for that resource record set.
244              
245             =item *
246              
247             You set C<EvaluateTargetHealth> to true for the resource record sets in
248             a group of alias, weighted alias, latency alias, geolocation alias, or
249             failover alias resource record sets, and you specify health check IDs
250             for all of the resource record sets that are referenced by the alias
251             resource record sets.
252              
253             =back
254              
255             Amazon Route 53 doesn't check the health of the endpoint specified in
256             the resource record set, for example, the endpoint specified by the IP
257             address in the C<Value> element. When you add a C<HealthCheckId>
258             element to a resource record set, Amazon Route 53 checks the health of
259             the endpoint that you specified in the health check.
260              
261             For geolocation resource record sets, if an endpoint is unhealthy,
262             Amazon Route 53 looks for a resource record set for the larger,
263             associated geographic region. For example, suppose you have resource
264             record sets for a state in the United States, for the United States,
265             for North America, and for all locations. If the endpoint for the state
266             resource record set is unhealthy, Amazon Route 53 checks the resource
267             record sets for the United States, for North America, and for all
268             locations (a resource record set for which the value of C<CountryCode>
269             is C<*>), in that order, until it finds a resource record set for which
270             the endpoint is healthy.
271              
272             If your health checks specify the endpoint only by domain name, we
273             recommend that you create a separate health check for each endpoint.
274             For example, create a health check for each C<HTTP> server that is
275             serving content for C<www.example.com>. For the value of
276             C<FullyQualifiedDomainName>, specify the domain name of the server
277             (such as C<us-east-2-www.example.com>), not the name of the resource
278             record sets (example.com).
279              
280             n this configuration, if you create a health check for which the value
281             of C<FullyQualifiedDomainName> matches the name of the resource record
282             sets and then associate the health check with those resource record
283             sets, health check results will be unpredictable.
284              
285             For more information, see the following topics in the I<Amazon Route 53
286             Developer Guide>:
287              
288             =over
289              
290             =item *
291              
292             Amazon Route 53 Health Checks and DNS Failover
293              
294             =item *
295              
296             Configuring Failover in a Private Hosted Zone
297              
298             =back
299              
300              
301              
302             =head2 MultiValueAnswer => Bool
303              
304             I<Multivalue answer resource record sets only>: To route traffic
305             approximately randomly to multiple resources, such as web servers,
306             create one multivalue answer record for each resource and specify
307             C<true> for C<MultiValueAnswer>. Note the following:
308              
309             =over
310              
311             =item *
312              
313             If you associate a health check with a multivalue answer resource
314             record set, Amazon Route 53 responds to DNS queries with the
315             corresponding IP address only when the health check is healthy.
316              
317             =item *
318              
319             If you don't associate a health check with a multivalue answer record,
320             Amazon Route 53 always considers the record to be healthy.
321              
322             =item *
323              
324             Amazon Route 53 responds to DNS queries with up to eight healthy
325             records; if you have eight or fewer healthy records, Amazon Route 53
326             responds to all DNS queries with all the healthy records.
327              
328             =item *
329              
330             If you have more than eight healthy records, Amazon Route 53 responds
331             to different DNS resolvers with different combinations of healthy
332             records.
333              
334             =item *
335              
336             When all records are unhealthy, Amazon Route 53 responds to DNS queries
337             with up to eight unhealthy records.
338              
339             =item *
340              
341             If a resource becomes unavailable after a resolver caches a response,
342             client software typically tries another of the IP addresses in the
343             response.
344              
345             =back
346              
347             You can't create multivalue answer alias records.
348              
349              
350             =head2 B<REQUIRED> Name => Str
351              
352             The name of the domain you want to perform the action on.
353              
354             Enter a fully qualified domain name, for example, C<www.example.com>.
355             You can optionally include a trailing dot. If you omit the trailing
356             dot, Amazon Route 53 still assumes that the domain name that you
357             specify is fully qualified. This means that Amazon Route 53 treats
358             C<www.example.com> (without a trailing dot) and C<www.example.com.>
359             (with a trailing dot) as identical.
360              
361             For information about how to specify characters other than C<a-z>,
362             C<0-9>, and C<-> (hyphen) and how to specify internationalized domain
363             names, see DNS Domain Name Format in the I<Amazon Route 53 Developer
364             Guide>.
365              
366             You can use the asterisk (*) wildcard to replace the leftmost label in
367             a domain name, for example, C<*.example.com>. Note the following:
368              
369             =over
370              
371             =item *
372              
373             The * must replace the entire label. For example, you can't specify
374             C<*prod.example.com> or C<prod*.example.com>.
375              
376             =item *
377              
378             The * can't replace any of the middle labels, for example,
379             marketing.*.example.com.
380              
381             =item *
382              
383             If you include * in any position other than the leftmost label in a
384             domain name, DNS treats it as an * character (ASCII 42), not as a
385             wildcard.
386              
387             You can't use the * wildcard for resource records sets that have a type
388             of NS.
389              
390             =back
391              
392             You can use the * wildcard as the leftmost label in a domain name, for
393             example, C<*.example.com>. You can't use an * for one of the middle
394             labels, for example, C<marketing.*.example.com>. In addition, the *
395             must replace the entire label; for example, you can't specify
396             C<prod*.example.com>.
397              
398              
399             =head2 Region => Str
400              
401             I<Latency-based resource record sets only:> The Amazon EC2 Region where
402             you created the resource that this resource record set refers to. The
403             resource typically is an AWS resource, such as an EC2 instance or an
404             ELB load balancer, and is referred to by an IP address or a DNS domain
405             name, depending on the record type.
406              
407             Creating latency and latency alias resource record sets in private
408             hosted zones is not supported.
409              
410             When Amazon Route 53 receives a DNS query for a domain name and type
411             for which you have created latency resource record sets, Amazon Route
412             53 selects the latency resource record set that has the lowest latency
413             between the end user and the associated Amazon EC2 Region. Amazon Route
414             53 then returns the value that is associated with the selected resource
415             record set.
416              
417             Note the following:
418              
419             =over
420              
421             =item *
422              
423             You can only specify one C<ResourceRecord> per latency resource record
424             set.
425              
426             =item *
427              
428             You can only create one latency resource record set for each Amazon EC2
429             Region.
430              
431             =item *
432              
433             You aren't required to create latency resource record sets for all
434             Amazon EC2 Regions. Amazon Route 53 will choose the region with the
435             best latency from among the regions that you create latency resource
436             record sets for.
437              
438             =item *
439              
440             You can't create non-latency resource record sets that have the same
441             values for the C<Name> and C<Type> elements as latency resource record
442             sets.
443              
444             =back
445              
446              
447              
448             =head2 ResourceRecords => ArrayRef[L<Paws::Route53::ResourceRecord>]
449              
450             Information about the resource records to act upon.
451              
452             If you're creating an alias resource record set, omit
453             C<ResourceRecords>.
454              
455              
456             =head2 SetIdentifier => Str
457              
458             I<Weighted, Latency, Geo, and Failover resource record sets only:> An
459             identifier that differentiates among multiple resource record sets that
460             have the same combination of DNS name and type. The value of
461             C<SetIdentifier> must be unique for each resource record set that has
462             the same combination of DNS name and type. Omit C<SetIdentifier> for
463             any other types of record sets.
464              
465              
466             =head2 TrafficPolicyInstanceId => Str
467              
468             When you create a traffic policy instance, Amazon Route 53
469             automatically creates a resource record set. C<TrafficPolicyInstanceId>
470             is the ID of the traffic policy instance that Amazon Route 53 created
471             this resource record set for.
472              
473             To delete the resource record set that is associated with a traffic
474             policy instance, use C<DeleteTrafficPolicyInstance>. Amazon Route 53
475             will delete the resource record set automatically. If you delete the
476             resource record set by using C<ChangeResourceRecordSets>, Amazon Route
477             53 doesn't automatically delete the traffic policy instance, and you'll
478             continue to be charged for it even though it's no longer in use.
479              
480              
481             =head2 TTL => Int
482              
483             The resource record cache time to live (TTL), in seconds. Note the
484             following:
485              
486             =over
487              
488             =item *
489              
490             If you're creating or updating an alias resource record set, omit
491             C<TTL>. Amazon Route 53 uses the value of C<TTL> for the alias target.
492              
493             =item *
494              
495             If you're associating this resource record set with a health check (if
496             you're adding a C<HealthCheckId> element), we recommend that you
497             specify a C<TTL> of 60 seconds or less so clients respond quickly to
498             changes in health status.
499              
500             =item *
501              
502             All of the resource record sets in a group of weighted resource record
503             sets must have the same value for C<TTL>.
504              
505             =item *
506              
507             If a group of weighted resource record sets includes one or more
508             weighted alias resource record sets for which the alias target is an
509             ELB load balancer, we recommend that you specify a C<TTL> of 60 seconds
510             for all of the non-alias weighted resource record sets that have the
511             same name and type. Values other than 60 seconds (the TTL for load
512             balancers) will change the effect of the values that you specify for
513             C<Weight>.
514              
515             =back
516              
517              
518              
519             =head2 B<REQUIRED> Type => Str
520              
521             The DNS record type. For information about different record types and
522             how data is encoded for them, see Supported DNS Resource Record Types
523             in the I<Amazon Route 53 Developer Guide>.
524              
525             Valid values for basic resource record sets: C<A> | C<AAAA> | C<CAA> |
526             C<CNAME> | C<MX> | C<NAPTR> | C<NS> | C<PTR> | C<SOA> | C<SPF> | C<SRV>
527             | C<TXT>
528              
529             Values for weighted, latency, geolocation, and failover resource record
530             sets: C<A> | C<AAAA> | C<CAA> | C<CNAME> | C<MX> | C<NAPTR> | C<PTR> |
531             C<SPF> | C<SRV> | C<TXT>. When creating a group of weighted, latency,
532             geolocation, or failover resource record sets, specify the same value
533             for all of the resource record sets in the group.
534              
535             Valid values for multivalue answer resource record sets: C<A> | C<AAAA>
536             | C<MX> | C<NAPTR> | C<PTR> | C<SPF> | C<SRV> | C<TXT>
537              
538             SPF records were formerly used to verify the identity of the sender of
539             email messages. However, we no longer recommend that you create
540             resource record sets for which the value of C<Type> is C<SPF>. RFC
541             7208, I<Sender Policy Framework (SPF) for Authorizing Use of Domains in
542             Email, Version 1>, has been updated to say, "...[I]ts existence and
543             mechanism defined in [RFC4408] have led to some interoperability
544             issues. Accordingly, its use is no longer appropriate for SPF version
545             1; implementations are not to use it." In RFC 7208, see section 14.1,
546             The SPF DNS Record Type.
547              
548             Values for alias resource record sets:
549              
550             =over
551              
552             =item *
553              
554             B<CloudFront distributions:> C<A>
555              
556             If IPv6 is enabled for the distribution, create two resource record
557             sets to route traffic to your distribution, one with a value of C<A>
558             and one with a value of C<AAAA>.
559              
560             =item *
561              
562             B<AWS Elastic Beanstalk environment that has a regionalized subdomain>:
563             C<A>
564              
565             =item *
566              
567             B<ELB load balancers:> C<A> | C<AAAA>
568              
569             =item *
570              
571             B<Amazon S3 buckets:> C<A>
572              
573             =item *
574              
575             B<Another resource record set in this hosted zone:> Specify the type of
576             the resource record set that you're creating the alias for. All values
577             are supported except C<NS> and C<SOA>.
578              
579             =back
580              
581              
582              
583             =head2 Weight => Int
584              
585             I<Weighted resource record sets only:> Among resource record sets that
586             have the same combination of DNS name and type, a value that determines
587             the proportion of DNS queries that Amazon Route 53 responds to using
588             the current resource record set. Amazon Route 53 calculates the sum of
589             the weights for the resource record sets that have the same combination
590             of DNS name and type. Amazon Route 53 then responds to queries based on
591             the ratio of a resource's weight to the total. Note the following:
592              
593             =over
594              
595             =item *
596              
597             You must specify a value for the C<Weight> element for every weighted
598             resource record set.
599              
600             =item *
601              
602             You can only specify one C<ResourceRecord> per weighted resource record
603             set.
604              
605             =item *
606              
607             You can't create latency, failover, or geolocation resource record sets
608             that have the same values for the C<Name> and C<Type> elements as
609             weighted resource record sets.
610              
611             =item *
612              
613             You can create a maximum of 100 weighted resource record sets that have
614             the same values for the C<Name> and C<Type> elements.
615              
616             =item *
617              
618             For weighted (but not weighted alias) resource record sets, if you set
619             C<Weight> to C<0> for a resource record set, Amazon Route 53 never
620             responds to queries with the applicable value for that resource record
621             set. However, if you set C<Weight> to C<0> for all resource record sets
622             that have the same combination of DNS name and type, traffic is routed
623             to all resources with equal probability.
624              
625             The effect of setting C<Weight> to C<0> is different when you associate
626             health checks with weighted resource record sets. For more information,
627             see Options for Configuring Amazon Route 53 Active-Active and
628             Active-Passive Failover in the I<Amazon Route 53 Developer Guide>.
629              
630             =back
631              
632              
633              
634              
635             =head1 SEE ALSO
636              
637             This class forms part of L<Paws>, describing an object used in L<Paws::Route53>
638              
639             =head1 BUGS and CONTRIBUTIONS
640              
641             The source code is located here: https://github.com/pplu/aws-sdk-perl
642              
643             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
644              
645             =cut
646