File Coverage

blib/lib/Paws/Route53/HealthCheckConfig.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::HealthCheckConfig;
2 1     1   429 use Moose;
  1         3  
  1         9  
3             has AlarmIdentifier => (is => 'ro', isa => 'Paws::Route53::AlarmIdentifier');
4             has ChildHealthChecks => (is => 'ro', isa => 'ArrayRef[Str|Undef]', request_name => 'ChildHealthCheck', traits => ['NameInRequest']);
5             has EnableSNI => (is => 'ro', isa => 'Bool');
6             has FailureThreshold => (is => 'ro', isa => 'Int');
7             has FullyQualifiedDomainName => (is => 'ro', isa => 'Str');
8             has HealthThreshold => (is => 'ro', isa => 'Int');
9             has InsufficientDataHealthStatus => (is => 'ro', isa => 'Str');
10             has Inverted => (is => 'ro', isa => 'Bool');
11             has IPAddress => (is => 'ro', isa => 'Str');
12             has MeasureLatency => (is => 'ro', isa => 'Bool');
13             has Port => (is => 'ro', isa => 'Int');
14             has Regions => (is => 'ro', isa => 'ArrayRef[Str|Undef]', request_name => 'Region', traits => ['NameInRequest']);
15             has RequestInterval => (is => 'ro', isa => 'Int');
16             has ResourcePath => (is => 'ro', isa => 'Str');
17             has SearchString => (is => 'ro', isa => 'Str');
18             has Type => (is => 'ro', isa => 'Str', required => 1);
19             1;
20              
21             ### main pod documentation begin ###
22              
23             =head1 NAME
24              
25             Paws::Route53::HealthCheckConfig
26              
27             =head1 USAGE
28              
29             This class represents one of two things:
30              
31             =head3 Arguments in a call to a service
32              
33             Use the attributes of this class as arguments to methods. You shouldn't make instances of this class.
34             Each attribute should be used as a named argument in the calls that expect this type of object.
35              
36             As an example, if Att1 is expected to be a Paws::Route53::HealthCheckConfig object:
37              
38             $service_obj->Method(Att1 => { AlarmIdentifier => $value, ..., Type => $value });
39              
40             =head3 Results returned from an API call
41              
42             Use accessors for each attribute. If Att1 is expected to be an Paws::Route53::HealthCheckConfig object:
43              
44             $result = $service_obj->Method(...);
45             $result->Att1->AlarmIdentifier
46              
47             =head1 DESCRIPTION
48              
49             A complex type that contains information about the health check.
50              
51             =head1 ATTRIBUTES
52              
53              
54             =head2 AlarmIdentifier => L<Paws::Route53::AlarmIdentifier>
55              
56             A complex type that identifies the CloudWatch alarm that you want
57             Amazon Route 53 health checkers to use to determine whether this health
58             check is healthy.
59              
60              
61             =head2 ChildHealthChecks => ArrayRef[Str|Undef]
62              
63             (CALCULATED Health Checks Only) A complex type that contains one
64             C<ChildHealthCheck> element for each health check that you want to
65             associate with a C<CALCULATED> health check.
66              
67              
68             =head2 EnableSNI => Bool
69              
70             Specify whether you want Amazon Route 53 to send the value of
71             C<FullyQualifiedDomainName> to the endpoint in the C<client_hello>
72             message during TLS negotiation. This allows the endpoint to respond to
73             C<HTTPS> health check requests with the applicable SSL/TLS certificate.
74              
75             Some endpoints require that C<HTTPS> requests include the host name in
76             the C<client_hello> message. If you don't enable SNI, the status of the
77             health check will be C<SSL alert handshake_failure>. A health check can
78             also have that status for other reasons. If SNI is enabled and you're
79             still getting the error, check the SSL/TLS configuration on your
80             endpoint and confirm that your certificate is valid.
81              
82             The SSL/TLS certificate on your endpoint includes a domain name in the
83             C<Common Name> field and possibly several more in the C<Subject
84             Alternative Names> field. One of the domain names in the certificate
85             should match the value that you specify for
86             C<FullyQualifiedDomainName>. If the endpoint responds to the
87             C<client_hello> message with a certificate that does not include the
88             domain name that you specified in C<FullyQualifiedDomainName>, a health
89             checker will retry the handshake. In the second attempt, the health
90             checker will omit C<FullyQualifiedDomainName> from the C<client_hello>
91             message.
92              
93              
94             =head2 FailureThreshold => Int
95              
96             The number of consecutive health checks that an endpoint must pass or
97             fail for Amazon Route 53 to change the current status of the endpoint
98             from unhealthy to healthy or vice versa. For more information, see How
99             Amazon Route 53 Determines Whether an Endpoint Is Healthy in the
100             I<Amazon Route 53 Developer Guide>.
101              
102             If you don't specify a value for C<FailureThreshold>, the default value
103             is three health checks.
104              
105              
106             =head2 FullyQualifiedDomainName => Str
107              
108             Amazon Route 53 behavior depends on whether you specify a value for
109             C<IPAddress>.
110              
111             B<If you specify a value for> C<IPAddress>:
112              
113             Amazon Route 53 sends health check requests to the specified IPv4 or
114             IPv6 address and passes the value of C<FullyQualifiedDomainName> in the
115             C<Host> header for all health checks except TCP health checks. This is
116             typically the fully qualified DNS name of the endpoint on which you
117             want Amazon Route 53 to perform health checks.
118              
119             When Amazon Route 53 checks the health of an endpoint, here is how it
120             constructs the C<Host> header:
121              
122             =over
123              
124             =item *
125              
126             If you specify a value of C<80> for C<Port> and C<HTTP> or
127             C<HTTP_STR_MATCH> for C<Type>, Amazon Route 53 passes the value of
128             C<FullyQualifiedDomainName> to the endpoint in the Host header.
129              
130             =item *
131              
132             If you specify a value of C<443> for C<Port> and C<HTTPS> or
133             C<HTTPS_STR_MATCH> for C<Type>, Amazon Route 53 passes the value of
134             C<FullyQualifiedDomainName> to the endpoint in the C<Host> header.
135              
136             =item *
137              
138             If you specify another value for C<Port> and any value except C<TCP>
139             for C<Type>, Amazon Route 53 passes C<FullyQualifiedDomainName:Port> to
140             the endpoint in the C<Host> header.
141              
142             =back
143              
144             If you don't specify a value for C<FullyQualifiedDomainName>, Amazon
145             Route 53 substitutes the value of C<IPAddress> in the C<Host> header in
146             each of the preceding cases.
147              
148             B<If you don't specify a value for C<IPAddress> >:
149              
150             Amazon Route 53 sends a DNS request to the domain that you specify for
151             C<FullyQualifiedDomainName> at the interval that you specify for
152             C<RequestInterval>. Using an IPv4 address that DNS returns, Amazon
153             Route 53 then checks the health of the endpoint.
154              
155             If you don't specify a value for C<IPAddress>, Amazon Route 53 uses
156             only IPv4 to send health checks to the endpoint. If there's no resource
157             record set with a type of A for the name that you specify for
158             C<FullyQualifiedDomainName>, the health check fails with a "DNS
159             resolution failed" error.
160              
161             If you want to check the health of weighted, latency, or failover
162             resource record sets and you choose to specify the endpoint only by
163             C<FullyQualifiedDomainName>, we recommend that you create a separate
164             health check for each endpoint. For example, create a health check for
165             each HTTP server that is serving content for www.example.com. For the
166             value of C<FullyQualifiedDomainName>, specify the domain name of the
167             server (such as us-east-2-www.example.com), not the name of the
168             resource record sets (www.example.com).
169              
170             In this configuration, if you create a health check for which the value
171             of C<FullyQualifiedDomainName> matches the name of the resource record
172             sets and you then associate the health check with those resource record
173             sets, health check results will be unpredictable.
174              
175             In addition, if the value that you specify for C<Type> is C<HTTP>,
176             C<HTTPS>, C<HTTP_STR_MATCH>, or C<HTTPS_STR_MATCH>, Amazon Route 53
177             passes the value of C<FullyQualifiedDomainName> in the C<Host> header,
178             as it does when you specify a value for C<IPAddress>. If the value of
179             C<Type> is C<TCP>, Amazon Route 53 doesn't pass a C<Host> header.
180              
181              
182             =head2 HealthThreshold => Int
183              
184             The number of child health checks that are associated with a
185             C<CALCULATED> health that Amazon Route 53 must consider healthy for the
186             C<CALCULATED> health check to be considered healthy. To specify the
187             child health checks that you want to associate with a C<CALCULATED>
188             health check, use the HealthCheckConfig$ChildHealthChecks and
189             HealthCheckConfig$ChildHealthChecks elements.
190              
191             Note the following:
192              
193             =over
194              
195             =item *
196              
197             If you specify a number greater than the number of child health checks,
198             Amazon Route 53 always considers this health check to be unhealthy.
199              
200             =item *
201              
202             If you specify C<0>, Amazon Route 53 always considers this health check
203             to be healthy.
204              
205             =back
206              
207              
208              
209             =head2 InsufficientDataHealthStatus => Str
210              
211             When CloudWatch has insufficient data about the metric to determine the
212             alarm state, the status that you want Amazon Route 53 to assign to the
213             health check:
214              
215             =over
216              
217             =item *
218              
219             C<Healthy>: Amazon Route 53 considers the health check to be healthy.
220              
221             =item *
222              
223             C<Unhealthy>: Amazon Route 53 considers the health check to be
224             unhealthy.
225              
226             =item *
227              
228             C<LastKnownStatus>: Amazon Route 53 uses the status of the health check
229             from the last time that CloudWatch had sufficient data to determine the
230             alarm state. For new health checks that have no last known status, the
231             default status for the health check is healthy.
232              
233             =back
234              
235              
236              
237             =head2 Inverted => Bool
238              
239             Specify whether you want Amazon Route 53 to invert the status of a
240             health check, for example, to consider a health check unhealthy when it
241             otherwise would be considered healthy.
242              
243              
244             =head2 IPAddress => Str
245              
246             The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route
247             53 to perform health checks on. If you don't specify a value for
248             C<IPAddress>, Amazon Route 53 sends a DNS request to resolve the domain
249             name that you specify in C<FullyQualifiedDomainName> at the interval
250             that you specify in C<RequestInterval>. Using an IP address returned by
251             DNS, Amazon Route 53 then checks the health of the endpoint.
252              
253             Use one of the following formats for the value of C<IPAddress>:
254              
255             =over
256              
257             =item *
258              
259             B<IPv4 address>: four values between 0 and 255, separated by periods
260             (.), for example, C<192.0.2.44>.
261              
262             =item *
263              
264             B<IPv6 address>: eight groups of four hexadecimal values, separated by
265             colons (:), for example, C<2001:0db8:85a3:0000:0000:abcd:0001:2345>.
266             You can also shorten IPv6 addresses as described in RFC 5952, for
267             example, C<2001:db8:85a3::abcd:1:2345>.
268              
269             =back
270              
271             If the endpoint is an EC2 instance, we recommend that you create an
272             Elastic IP address, associate it with your EC2 instance, and specify
273             the Elastic IP address for C<IPAddress>. This ensures that the IP
274             address of your instance will never change.
275              
276             For more information, see HealthCheckConfig$FullyQualifiedDomainName.
277              
278             Constraints: Amazon Route 53 can't check the health of endpoints for
279             which the IP address is in local, private, non-routable, or multicast
280             ranges. For more information about IP addresses for which you can't
281             create health checks, see the following documents:
282              
283             =over
284              
285             =item *
286              
287             RFC 5735, Special Use IPv4 Addresses
288              
289             =item *
290              
291             RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space
292              
293             =item *
294              
295             RFC 5156, Special-Use IPv6 Addresses
296              
297             =back
298              
299             When the value of C<Type> is C<CALCULATED> or C<CLOUDWATCH_METRIC>,
300             omit C<IPAddress>.
301              
302              
303             =head2 MeasureLatency => Bool
304              
305             Specify whether you want Amazon Route 53 to measure the latency between
306             health checkers in multiple AWS regions and your endpoint, and to
307             display CloudWatch latency graphs on the B<Health Checks> page in the
308             Amazon Route 53 console.
309              
310             You can't change the value of C<MeasureLatency> after you create a
311             health check.
312              
313              
314             =head2 Port => Int
315              
316             The port on the endpoint on which you want Amazon Route 53 to perform
317             health checks. Specify a value for C<Port> only when you specify a
318             value for C<IPAddress>.
319              
320              
321             =head2 Regions => ArrayRef[Str|Undef]
322              
323             A complex type that contains one C<Region> element for each region from
324             which you want Amazon Route 53 health checkers to check the specified
325             endpoint.
326              
327             If you don't specify any regions, Amazon Route 53 health checkers
328             automatically performs checks from all of the regions that are listed
329             under B<Valid Values>.
330              
331             If you update a health check to remove a region that has been
332             performing health checks, Amazon Route 53 will briefly continue to
333             perform checks from that region to ensure that some health checkers are
334             always checking the endpoint (for example, if you replace three regions
335             with four different regions).
336              
337              
338             =head2 RequestInterval => Int
339              
340             The number of seconds between the time that Amazon Route 53 gets a
341             response from your endpoint and the time that it sends the next health
342             check request. Each Amazon Route 53 health checker makes requests at
343             this interval.
344              
345             You can't change the value of C<RequestInterval> after you create a
346             health check.
347              
348             If you don't specify a value for C<RequestInterval>, the default value
349             is C<30> seconds.
350              
351              
352             =head2 ResourcePath => Str
353              
354             The path, if any, that you want Amazon Route 53 to request when
355             performing health checks. The path can be any value for which your
356             endpoint will return an HTTP status code of 2xx or 3xx when the
357             endpoint is healthy, for example, the file
358             /docs/route53-health-check.html.
359              
360              
361             =head2 SearchString => Str
362              
363             If the value of Type is C<HTTP_STR_MATCH> or C<HTTP_STR_MATCH>, the
364             string that you want Amazon Route 53 to search for in the response body
365             from the specified resource. If the string appears in the response
366             body, Amazon Route 53 considers the resource healthy.
367              
368             Amazon Route 53 considers case when searching for C<SearchString> in
369             the response body.
370              
371              
372             =head2 B<REQUIRED> Type => Str
373              
374             The type of health check that you want to create, which indicates how
375             Amazon Route 53 determines whether an endpoint is healthy.
376              
377             You can't change the value of C<Type> after you create a health check.
378              
379             You can create the following types of health checks:
380              
381             =over
382              
383             =item *
384              
385             B<HTTP>: Amazon Route 53 tries to establish a TCP connection. If
386             successful, Amazon Route 53 submits an HTTP request and waits for an
387             HTTP status code of 200 or greater and less than 400.
388              
389             =item *
390              
391             B<HTTPS>: Amazon Route 53 tries to establish a TCP connection. If
392             successful, Amazon Route 53 submits an HTTPS request and waits for an
393             HTTP status code of 200 or greater and less than 400.
394              
395             If you specify C<HTTPS> for the value of C<Type>, the endpoint must
396             support TLS v1.0 or later.
397              
398             =item *
399              
400             B<HTTP_STR_MATCH>: Amazon Route 53 tries to establish a TCP connection.
401             If successful, Amazon Route 53 submits an HTTP request and searches the
402             first 5,120 bytes of the response body for the string that you specify
403             in C<SearchString>.
404              
405             =item *
406              
407             B<HTTPS_STR_MATCH>: Amazon Route 53 tries to establish a TCP
408             connection. If successful, Amazon Route 53 submits an C<HTTPS> request
409             and searches the first 5,120 bytes of the response body for the string
410             that you specify in C<SearchString>.
411              
412             =item *
413              
414             B<TCP>: Amazon Route 53 tries to establish a TCP connection.
415              
416             =item *
417              
418             B<CLOUDWATCH_METRIC>: The health check is associated with a CloudWatch
419             alarm. If the state of the alarm is C<OK>, the health check is
420             considered healthy. If the state is C<ALARM>, the health check is
421             considered unhealthy. If CloudWatch doesn't have sufficient data to
422             determine whether the state is C<OK> or C<ALARM>, the health check
423             status depends on the setting for C<InsufficientDataHealthStatus>:
424             C<Healthy>, C<Unhealthy>, or C<LastKnownStatus>.
425              
426             =item *
427              
428             B<CALCULATED>: For health checks that monitor the status of other
429             health checks, Amazon Route 53 adds up the number of health checks that
430             Amazon Route 53 health checkers consider to be healthy and compares
431             that number with the value of C<HealthThreshold>.
432              
433             =back
434              
435             For more information, see How Amazon Route 53 Determines Whether an
436             Endpoint Is Healthy in the I<Amazon Route 53 Developer Guide>.
437              
438              
439              
440             =head1 SEE ALSO
441              
442             This class forms part of L<Paws>, describing an object used in L<Paws::Route53>
443              
444             =head1 BUGS and CONTRIBUTIONS
445              
446             The source code is located here: https://github.com/pplu/aws-sdk-perl
447              
448             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
449              
450             =cut
451