Class: AWSCDK::Route53::HealthCheckProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
route53/health_check_props.rb

Overview

Properties for a new health check.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type:, alarm_identifier: nil, child_health_checks: nil, enable_sni: nil, failure_threshold: nil, fqdn: nil, health_threshold: nil, insufficient_data_health_status: nil, inverted: nil, ip_address: nil, measure_latency: nil, port: nil, regions: nil, request_interval: nil, resource_path: nil, routing_control: nil, search_string: nil) ⇒ HealthCheckProps

Returns a new instance of HealthCheckProps.

Parameters:

  • type (AWSCDK::Route53::HealthCheckType)

    The type of health check to be associated with the record.

  • alarm_identifier (AWSCDK::Route53::AlarmIdentifier, nil) (defaults to: nil)

    CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.

  • child_health_checks (Array<AWSCDK::Route53::IHealthCheck>, nil) (defaults to: nil)

    A list of health checks to monitor for this 'CALCULATED' health check.

  • enable_sni (Boolean, nil) (defaults to: nil)

    Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName to the endpoint in the client_hello message during TLS negotiation.

  • failure_threshold (Numeric, nil) (defaults to: nil)

    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.

  • fqdn (String, nil) (defaults to: nil)

    Fully qualified domain name of the endpoint to be checked.

  • health_threshold (Numeric, nil) (defaults to: nil)

    The number of child health checks that are associated with a CALCULATED health that Amazon Route 53 must consider healthy for the CALCULATED health check to be considered healthy.

  • insufficient_data_health_status (AWSCDK::Route53::InsufficientDataHealthStatusEnum, nil) (defaults to: nil)

    The status of the health check when CloudWatch has insufficient data about the state of associated alarm.

  • inverted (Boolean, nil) (defaults to: nil)

    Specify whether you want Amazon Route 53 to invert the status of a health check, so a health check that would normally be considered unhealthy is considered healthy, and vice versa.

  • ip_address (String, nil) (defaults to: nil)

    The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53 to perform health checks on.

  • measure_latency (Boolean, nil) (defaults to: nil)

    Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the Health Checks page in the Route 53 console.

  • port (Numeric, nil) (defaults to: nil)

    The port on the endpoint that you want Amazon Route 53 to perform health checks on.

  • regions (Array<String>, nil) (defaults to: nil)

    An array of region identifiers that you want Amazon Route 53 health checkers to check the health of the endpoint from.

  • request_interval (AWSCDK::Duration, nil) (defaults to: nil)

    The duration between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request.

  • resource_path (String, nil) (defaults to: nil)

    The path that you want Amazon Route 53 to request when performing health checks.

  • routing_control (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the Route 53 Application Recovery Controller routing control that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.

  • search_string (String, nil) (defaults to: nil)

    The string that you want Amazon Route 53 to search for in the response body from the specified resource.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'route53/health_check_props.rb', line 24

def initialize(type:, alarm_identifier: nil, child_health_checks: nil, enable_sni: nil, failure_threshold: nil, fqdn: nil, health_threshold: nil, insufficient_data_health_status: nil, inverted: nil, ip_address: nil, measure_latency: nil, port: nil, regions: nil, request_interval: nil, resource_path: nil, routing_control: nil, search_string: nil)
  @type = type
  Jsii::Type.check_type(@type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1My5IZWFsdGhDaGVja1R5cGUifQ==")), "type")
  @alarm_identifier = alarm_identifier.is_a?(Hash) ? ::AWSCDK::Route53::AlarmIdentifier.new(**alarm_identifier.transform_keys(&:to_sym)) : alarm_identifier
  Jsii::Type.check_type(@alarm_identifier, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1My5BbGFybUlkZW50aWZpZXIifQ==")), "alarmIdentifier") unless @alarm_identifier.nil?
  @child_health_checks = child_health_checks
  Jsii::Type.check_type(@child_health_checks, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19yb3V0ZTUzLklIZWFsdGhDaGVjayJ9LCJraW5kIjoiYXJyYXkifX0=")), "childHealthChecks") unless @child_health_checks.nil?
  @enable_sni = enable_sni
  Jsii::Type.check_type(@enable_sni, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enableSNI") unless @enable_sni.nil?
  @failure_threshold = failure_threshold
  Jsii::Type.check_type(@failure_threshold, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "failureThreshold") unless @failure_threshold.nil?
  @fqdn = fqdn
  Jsii::Type.check_type(@fqdn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "fqdn") unless @fqdn.nil?
  @health_threshold = health_threshold
  Jsii::Type.check_type(@health_threshold, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "healthThreshold") unless @health_threshold.nil?
  @insufficient_data_health_status = insufficient_data_health_status
  Jsii::Type.check_type(@insufficient_data_health_status, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1My5JbnN1ZmZpY2llbnREYXRhSGVhbHRoU3RhdHVzRW51bSJ9")), "insufficientDataHealthStatus") unless @insufficient_data_health_status.nil?
  @inverted = inverted
  Jsii::Type.check_type(@inverted, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "inverted") unless @inverted.nil?
  @ip_address = ip_address
  Jsii::Type.check_type(@ip_address, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ipAddress") unless @ip_address.nil?
  @measure_latency = measure_latency
  Jsii::Type.check_type(@measure_latency, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "measureLatency") unless @measure_latency.nil?
  @port = port
  Jsii::Type.check_type(@port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "port") unless @port.nil?
  @regions = regions
  Jsii::Type.check_type(@regions, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "regions") unless @regions.nil?
  @request_interval = request_interval
  Jsii::Type.check_type(@request_interval, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "requestInterval") unless @request_interval.nil?
  @resource_path = resource_path
  Jsii::Type.check_type(@resource_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "resourcePath") unless @resource_path.nil?
  @routing_control = routing_control
  Jsii::Type.check_type(@routing_control, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "routingControl") unless @routing_control.nil?
  @search_string = search_string
  Jsii::Type.check_type(@search_string, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "searchString") unless @search_string.nil?
end

Instance Attribute Details

#alarm_identifierAWSCDK::Route53::AlarmIdentifier? (readonly)

Note:

Default: - if the type is CLOUDWATCH_METRIC, this property is required. Otherwise, it is not configured.

CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.



69
70
71
# File 'route53/health_check_props.rb', line 69

def alarm_identifier
  @alarm_identifier
end

#child_health_checksArray<AWSCDK::Route53::IHealthCheck>? (readonly)

Note:

Default: - if the type is CALCULATED, this property is required. Otherwise, it is not configured.

A list of health checks to monitor for this 'CALCULATED' health check.

Returns:



74
75
76
# File 'route53/health_check_props.rb', line 74

def child_health_checks
  @child_health_checks
end

#enable_sniBoolean? (readonly)

Note:

Default: - if the type is HTTPS or HTTPS_STR_MATCH, this property default value is true. Otherwise, it is not configured.

Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName to the endpoint in the client_hello message during TLS negotiation.

This allows the endpoint to respond to HTTPS health check requests with the applicable SSL/TLS certificate.

Returns:

  • (Boolean, nil)


81
82
83
# File 'route53/health_check_props.rb', line 81

def enable_sni
  @enable_sni
end

#failure_thresholdNumeric? (readonly)

Note:

Default: - if the type is CALCULATED it's not configured - if the type is CLOUDWATCH_METRIC it's not configured - otherwise, the default value is 3.

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.

Returns:

  • (Numeric, nil)


86
87
88
# File 'route53/health_check_props.rb', line 86

def failure_threshold
  @failure_threshold
end

#fqdnString? (readonly)

Note:

Default: - not configured

Fully qualified domain name of the endpoint to be checked.

Amazon Route 53 behavior depends on whether you specify a value for IPAddress.

If you specify a value for IPAddress:

Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of FullyQualifiedDomainName in the Host header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. Note: If you specify a value for Port property other than 80 or 443, Route 53 will construct the value for Host header as FullyQualifiedDomainName:Port.

If you don't specify a value for IPAddress:

Route 53 sends a DNS request to the domain that you specify for FullyQualifiedDomainName at the interval that you specify for RequestInterval. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint.

Additionally, if the type of the health check is HTTP, HTTPS, HTTP_STR_MATCH, or HTTPS_STR_MATCH, Route 53 passes the value of FullyQualifiedDomainName in the Host header, as it does when you specify value for IPAddress. If the type is TCP, Route 53 doesn't pass a Host header.

Returns:

  • (String, nil)


104
105
106
# File 'route53/health_check_props.rb', line 104

def fqdn
  @fqdn
end

#health_thresholdNumeric? (readonly)

Note:

Default: - if the type is CALCULATED, the default value is number of child health checks. Otherwise, it is not configured.

The number of child health checks that are associated with a CALCULATED health that Amazon Route 53 must consider healthy for the CALCULATED health check to be considered healthy.

Returns:

  • (Numeric, nil)


109
110
111
# File 'route53/health_check_props.rb', line 109

def health_threshold
  @health_threshold
end

#insufficient_data_health_statusAWSCDK::Route53::InsufficientDataHealthStatusEnum? (readonly)

Note:

Default: - if the type is CLOUDWATCH_METRIC, the default value is InsufficientDataHealthStatus.LAST_KNOWN_STATUS. Otherwise, it is not configured.

The status of the health check when CloudWatch has insufficient data about the state of associated alarm.



114
115
116
# File 'route53/health_check_props.rb', line 114

def insufficient_data_health_status
  @insufficient_data_health_status
end

#invertedBoolean? (readonly)

Note:

Default: false

Specify whether you want Amazon Route 53 to invert the status of a health check, so a health check that would normally be considered unhealthy is considered healthy, and vice versa.

Returns:

  • (Boolean, nil)


119
120
121
# File 'route53/health_check_props.rb', line 119

def inverted
  @inverted
end

#ip_addressString? (readonly)

Note:

Default: - not configured

The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53 to perform health checks on.

If you don't specify a value for IPAddress, Route 53 sends a DNS request to resolve the domain name that you specify in FullyQualifiedDomainName at the interval that you specify in RequestInterval. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint.

Returns:

  • (String, nil)


126
127
128
# File 'route53/health_check_props.rb', line 126

def ip_address
  @ip_address
end

#measure_latencyBoolean? (readonly)

Note:

Default: - if the type is CALCULATED it's not configured - if the type is CLOUDWATCH_METRIC it's not configured - otherwise, the default value is false.

Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the Health Checks page in the Route 53 console.

Returns:

  • (Boolean, nil)


131
132
133
# File 'route53/health_check_props.rb', line 131

def measure_latency
  @measure_latency
end

#portNumeric? (readonly)

Note:

Default: - if the type is HTTP or HTTP_STR_MATCH, the default value is 80. - if the type is HTTPS or HTTPS_STR_MATCH, the default value is 443. - otherwise, it is not configured.

The port on the endpoint that you want Amazon Route 53 to perform health checks on.

Returns:

  • (Numeric, nil)


136
137
138
# File 'route53/health_check_props.rb', line 136

def port
  @port
end

#regionsArray<String>? (readonly)

Note:

Default: - if the type is CALCULATED, CLOUDWATCH_METRIC, or RECOVERY_CONTROL, this property is not configured. - otherwise, the default value will be set by CloudFormation itself and will include all valid regions. Please refer to the CloudFormation documentation for the most up-to-date list of regions.

An array of region identifiers that you want Amazon Route 53 health checkers to check the health of the endpoint from.

Please refer to the CloudFormation documentation for the most up-to-date list of regions.



144
145
146
# File 'route53/health_check_props.rb', line 144

def regions
  @regions
end

#request_intervalAWSCDK::Duration? (readonly)

Note:

Default: - if the type is CALCULATED it's not configured - if the type is CLOUDWATCH_METRIC it's not configured - otherwise, the default value is 30 seconds.

The duration between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request.

Each Route 53 health checker makes requests at this interval.

Returns:



151
152
153
# File 'route53/health_check_props.rb', line 151

def request_interval
  @request_interval
end

#resource_pathString? (readonly)

Note:

Default: - if the type is HTTP, HTTPS, HTTP_STR_MATCH, or HTTPS_STR_MATCH, the default value is empty string. - otherwise, it is not configured.

The path that you want Amazon Route 53 to request when performing health checks.

The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example the file /docs/route53-health-check.html. Route 53 automatically adds the DNS name for the service and a leading forward slash (/) character.

Returns:

  • (String, nil)


158
159
160
# File 'route53/health_check_props.rb', line 158

def resource_path
  @resource_path
end

#routing_controlString? (readonly)

Note:

Default: - if the type is RECOVERY_CONTROL, this property is required. Otherwise, it is not configured.

The Amazon Resource Name (ARN) of the Route 53 Application Recovery Controller routing control that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.

Returns:

  • (String, nil)


163
164
165
# File 'route53/health_check_props.rb', line 163

def routing_control
  @routing_control
end

#search_stringString? (readonly)

Note:

Default: - if the type is HTTP_STR_MATCH or HTTPS_STR_MATCH, this property is required. Otherwise, it is not configured.

The string that you want Amazon Route 53 to search for in the response body from the specified resource.

If the string appears in the response body, Route 53 considers the resource healthy.

Route 53 considers case when searching for SearchString in the response body.

Returns:

  • (String, nil)


172
173
174
# File 'route53/health_check_props.rb', line 172

def search_string
  @search_string
end

#typeAWSCDK::Route53::HealthCheckType (readonly)

The type of health check to be associated with the record.



64
65
66
# File 'route53/health_check_props.rb', line 64

def type
  @type
end

Class Method Details

.jsii_propertiesObject



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'route53/health_check_props.rb', line 174

def self.jsii_properties
  {
    :type => "type",
    :alarm_identifier => "alarmIdentifier",
    :child_health_checks => "childHealthChecks",
    :enable_sni => "enableSNI",
    :failure_threshold => "failureThreshold",
    :fqdn => "fqdn",
    :health_threshold => "healthThreshold",
    :insufficient_data_health_status => "insufficientDataHealthStatus",
    :inverted => "inverted",
    :ip_address => "ipAddress",
    :measure_latency => "measureLatency",
    :port => "port",
    :regions => "regions",
    :request_interval => "requestInterval",
    :resource_path => "resourcePath",
    :routing_control => "routingControl",
    :search_string => "searchString",
  }
end

Instance Method Details

#to_jsiiObject



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'route53/health_check_props.rb', line 196

def to_jsii
  result = {}
  result.merge!({
    "type" => @type,
    "alarmIdentifier" => @alarm_identifier,
    "childHealthChecks" => @child_health_checks,
    "enableSNI" => @enable_sni,
    "failureThreshold" => @failure_threshold,
    "fqdn" => @fqdn,
    "healthThreshold" => @health_threshold,
    "insufficientDataHealthStatus" => @insufficient_data_health_status,
    "inverted" => @inverted,
    "ipAddress" => @ip_address,
    "measureLatency" => @measure_latency,
    "port" => @port,
    "regions" => @regions,
    "requestInterval" => @request_interval,
    "resourcePath" => @resource_path,
    "routingControl" => @routing_control,
    "searchString" => @search_string,
  })
  result.compact
end