File Coverage

blib/lib/Paws/Route53/AliasTarget.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             package Paws::Route53::AliasTarget;
2 1     1   462 use Moose;
  1         3  
  1         7  
3             has DNSName => (is => 'ro', isa => 'Str', required => 1);
4             has EvaluateTargetHealth => (is => 'ro', isa => 'Bool', required => 1);
5             has HostedZoneId => (is => 'ro', isa => 'Str', required => 1);
6             1;
7              
8             ### main pod documentation begin ###
9              
10             =head1 NAME
11              
12             Paws::Route53::AliasTarget
13              
14             =head1 USAGE
15              
16             This class represents one of two things:
17              
18             =head3 Arguments in a call to a service
19              
20             Use the attributes of this class as arguments to methods. You shouldn't make instances of this class.
21             Each attribute should be used as a named argument in the calls that expect this type of object.
22              
23             As an example, if Att1 is expected to be a Paws::Route53::AliasTarget object:
24              
25             $service_obj->Method(Att1 => { DNSName => $value, ..., HostedZoneId => $value });
26              
27             =head3 Results returned from an API call
28              
29             Use accessors for each attribute. If Att1 is expected to be an Paws::Route53::AliasTarget object:
30              
31             $result = $service_obj->Method(...);
32             $result->Att1->DNSName
33              
34             =head1 DESCRIPTION
35              
36             I<Alias resource record sets only:> Information about the CloudFront
37             distribution, Elastic Beanstalk environment, ELB load balancer, Amazon
38             S3 bucket, or Amazon Route 53 resource record set that you're
39             redirecting queries to. An Elastic Beanstalk environment must have a
40             regionalized subdomain.
41              
42             When creating resource record sets for a private hosted zone, note the
43             following:
44              
45             =over
46              
47             =item *
48              
49             Resource record sets can't be created for CloudFront distributions in a
50             private hosted zone.
51              
52             =item *
53              
54             Creating geolocation alias resource record sets or latency alias
55             resource record sets in a private hosted zone is unsupported.
56              
57             =item *
58              
59             For information about creating failover resource record sets in a
60             private hosted zone, see Configuring Failover in a Private Hosted Zone.
61              
62             =back
63              
64              
65             =head1 ATTRIBUTES
66              
67              
68             =head2 B<REQUIRED> DNSName => Str
69              
70             I<Alias resource record sets only:> The value that you specify depends
71             on where you want to route queries:
72              
73             =over
74              
75             =item CloudFront distribution
76              
77             Specify the domain name that CloudFront assigned when you created your
78             distribution.
79              
80             Your CloudFront distribution must include an alternate domain name that
81             matches the name of the resource record set. For example, if the name
82             of the resource record set is I<acme.example.com>, your CloudFront
83             distribution must include I<acme.example.com> as one of the alternate
84             domain names. For more information, see Using Alternate Domain Names
85             (CNAMEs) in the I<Amazon CloudFront Developer Guide>.
86              
87             =item Elastic Beanstalk environment
88              
89             Specify the C<CNAME> attribute for the environment. (The environment
90             must have a regionalized domain name.) You can use the following
91             methods to get the value of the CNAME attribute:
92              
93             =over
94              
95             =item *
96              
97             I<AWS Management Console>: For information about how to get the value
98             by using the console, see Using Custom Domains with AWS Elastic
99             Beanstalk in the I<AWS Elastic Beanstalk Developer Guide>.
100              
101             =item *
102              
103             I<Elastic Beanstalk API>: Use the C<DescribeEnvironments> action to get
104             the value of the C<CNAME> attribute. For more information, see
105             DescribeEnvironments in the I<AWS Elastic Beanstalk API Reference>.
106              
107             =item *
108              
109             I<AWS CLI>: Use the C<describe-environments> command to get the value
110             of the C<CNAME> attribute. For more information, see
111             describe-environments in the I<AWS Command Line Interface Reference>.
112              
113             =back
114              
115             =item ELB load balancer
116              
117             Specify the DNS name that is associated with the load balancer. Get the
118             DNS name by using the AWS Management Console, the ELB API, or the AWS
119             CLI.
120              
121             =over
122              
123             =item *
124              
125             B<AWS Management Console>: Go to the EC2 page, choose B<Load Balancers>
126             in the navigation pane, choose the load balancer, choose the
127             B<Description> tab, and get the value of the B<DNS name> field. (If
128             you're routing traffic to a Classic Load Balancer, get the value that
129             begins with B<dualstack>.)
130              
131             =item *
132              
133             B<Elastic Load Balancing API>: Use C<DescribeLoadBalancers> to get the
134             value of C<DNSName>. For more information, see the applicable guide:
135              
136             =over
137              
138             =item *
139              
140             Classic Load Balancer: DescribeLoadBalancers
141              
142             =item *
143              
144             Application Load Balancer: DescribeLoadBalancers
145              
146             =back
147              
148             =item *
149              
150             B<AWS CLI>: Use C< describe-load-balancers > to get the value of
151             C<DNSName>.
152              
153             =back
154              
155             =item Amazon S3 bucket that is configured as a static website
156              
157             Specify the domain name of the Amazon S3 website endpoint in which you
158             created the bucket, for example, C<s3-website-us-east-2.amazonaws.com>.
159             For more information about valid values, see the table Amazon Simple
160             Storage Service (S3) Website Endpoints in the I<Amazon Web Services
161             General Reference>. For more information about using S3 buckets for
162             websites, see Getting Started with Amazon Route 53 in the I<Amazon
163             Route 53 Developer Guide.>
164              
165             =item Another Amazon Route 53 resource record set
166              
167             Specify the value of the C<Name> element for a resource record set in
168             the current hosted zone.
169              
170             =back
171              
172              
173              
174             =head2 B<REQUIRED> EvaluateTargetHealth => Bool
175              
176             I<Applies only to alias, failover alias, geolocation alias, latency
177             alias, and weighted alias resource record sets:> When
178             C<EvaluateTargetHealth> is C<true>, an alias resource record set
179             inherits the health of the referenced AWS resource, such as an ELB load
180             balancer, or the referenced resource record set.
181              
182             Note the following:
183              
184             =over
185              
186             =item *
187              
188             You can't set C<EvaluateTargetHealth> to C<true> when the alias target
189             is a CloudFront distribution.
190              
191             =item *
192              
193             If the AWS resource that you specify in C<AliasTarget> is a resource
194             record set or a group of resource record sets (for example, a group of
195             weighted resource record sets), but it is not another alias resource
196             record set, we recommend that you associate a health check with all of
197             the resource record sets in the alias target. For more information, see
198             What Happens When You Omit Health Checks? in the I<Amazon Route 53
199             Developer Guide>.
200              
201             =item *
202              
203             If you specify an Elastic Beanstalk environment in C<HostedZoneId> and
204             C<DNSName>, and if the environment contains an ELB load balancer,
205             Elastic Load Balancing routes queries only to the healthy Amazon EC2
206             instances that are registered with the load balancer. (An environment
207             automatically contains an ELB load balancer if it includes more than
208             one EC2 instance.) If you set C<EvaluateTargetHealth> to C<true> and
209             either no EC2 instances are healthy or the load balancer itself is
210             unhealthy, Amazon Route 53 routes queries to other available resources
211             that are healthy, if any.
212              
213             If the environment contains a single EC2 instance, there are no special
214             requirements.
215              
216             =item *
217              
218             If you specify an ELB load balancer in C< AliasTarget >, ELB routes
219             queries only to the healthy EC2 instances that are registered with the
220             load balancer. If no EC2 instances are healthy or if the load balancer
221             itself is unhealthy, and if C<EvaluateTargetHealth> is true for the
222             corresponding alias resource record set, Amazon Route 53 routes queries
223             to other resources. When you create a load balancer, you configure
224             settings for ELB health checks; they're not Amazon Route 53 health
225             checks, but they perform a similar function. Do not create Amazon Route
226             53 health checks for the EC2 instances that you register with an ELB
227             load balancer.
228              
229             For more information, see How Health Checks Work in More Complex Amazon
230             Route 53 Configurations in the I<Amazon Route 53 Developer Guide>.
231              
232             =item *
233              
234             We recommend that you set C<EvaluateTargetHealth> to true only when you
235             have enough idle capacity to handle the failure of one or more
236             endpoints.
237              
238             =back
239              
240             For more information and examples, see Amazon Route 53 Health Checks
241             and DNS Failover in the I<Amazon Route 53 Developer Guide>.
242              
243              
244             =head2 B<REQUIRED> HostedZoneId => Str
245              
246             I<Alias resource records sets only>: The value used depends on where
247             you want to route traffic:
248              
249             =over
250              
251             =item CloudFront distribution
252              
253             Specify C<Z2FDTNDATAQYW2>.
254              
255             Alias resource record sets for CloudFront can't be created in a private
256             zone.
257              
258             =item Elastic Beanstalk environment
259              
260             Specify the hosted zone ID for the region in which you created the
261             environment. The environment must have a regionalized subdomain. For a
262             list of regions and the corresponding hosted zone IDs, see AWS Elastic
263             Beanstalk in the "AWS Regions and Endpoints" chapter of the I<Amazon
264             Web Services General Reference>.
265              
266             =item ELB load balancer
267              
268             Specify the value of the hosted zone ID for the load balancer. Use the
269             following methods to get the hosted zone ID:
270              
271             =over
272              
273             =item *
274              
275             Elastic Load Balancing table in the "AWS Regions and Endpoints" chapter
276             of the I<Amazon Web Services General Reference>: Use the value in the
277             "Amazon Route 53 Hosted Zone ID" column that corresponds with the
278             region that you created your load balancer in.
279              
280             =item *
281              
282             B<AWS Management Console>: Go to the Amazon EC2 page, click B<Load
283             Balancers> in the navigation pane, select the load balancer, and get
284             the value of the B<Hosted zone> field on the B<Description> tab.
285              
286             =item *
287              
288             B<Elastic Load Balancing API>: Use C<DescribeLoadBalancers> to get the
289             value of C<CanonicalHostedZoneNameId>. For more information, see the
290             applicable guide:
291              
292             =over
293              
294             =item *
295              
296             Classic Load Balancer: DescribeLoadBalancers
297              
298             =item *
299              
300             Application Load Balancer: DescribeLoadBalancers
301              
302             =back
303              
304             =item *
305              
306             B<AWS CLI>: Use C< describe-load-balancers > to get the value of
307             C<CanonicalHostedZoneNameID>.
308              
309             =back
310              
311             =item An Amazon S3 bucket configured as a static website
312              
313             Specify the hosted zone ID for the region that you created the bucket
314             in. For more information about valid values, see the Amazon Simple
315             Storage Service Website Endpoints table in the "AWS Regions and
316             Endpoints" chapter of the I<Amazon Web Services General Reference>.
317              
318             =item Another Amazon Route 53 resource record set in your hosted zone
319              
320             Specify the hosted zone ID of your hosted zone. (An alias resource
321             record set can't reference a resource record set in a different hosted
322             zone.)
323              
324             =back
325              
326              
327              
328              
329             =head1 SEE ALSO
330              
331             This class forms part of L<Paws>, describing an object used in L<Paws::Route53>
332              
333             =head1 BUGS and CONTRIBUTIONS
334              
335             The source code is located here: https://github.com/pplu/aws-sdk-perl
336              
337             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
338              
339             =cut
340