'HealthCheck object
:type ip_addr: str
:param ip_addr: Optional IP Address
:type port: int
:param port: Port to check
:type hc_type: str
:param hc_type: One of HTTP | HTTPS | HTTP_STR_MATCH | HTTPS_STR_MATCH | TCP
:type resource_path: str
:param resource_path: Path to check
:type fqdn: str
:param fqdn: domain name of the endpoint to check
:type string_match: str
:param string_match: if hc_type is HTTP_STR_MATCH or HTTPS_STR_MATCH, the string to search for in the response body from the specified resource
:type request_interval: int
:param request_interval: The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health-check request.
:type failure_threshold: int
:param failure_threshold: The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa.'

def __init__(self, ip_addr, port, hc_type, resource_path, fqdn=None, string_match=None, request_interval=30, failure_threshold=3):

    self.ip_addr = ip_addr
    self.port = port
    self.hc_type = hc_type
    self.resource_path = resource_path
    self.fqdn = fqdn
    self.string_match = string_match
    self.failure_threshold = failure_threshold
    if (request_interval in self.valid_request_intervals):
        self.request_interval = request_interval
    else:
        raise AttributeError(('Valid    values    for    request_interval    are:    %s' % ','.join((str(i) for i in self.valid_request_intervals))))
    if ((failure_threshold < 1) or (failure_threshold > 10)):
        raise AttributeError('Valid    values    for    failure_threshold    are    1    -    10.')
