/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace ElasticLoadBalancingv2 { namespace Model { /** *

Information about the current health of a target.

See Also:

* AWS * API Reference

*/ class TargetHealth { public: AWS_ELASTICLOADBALANCINGV2_API TargetHealth(); AWS_ELASTICLOADBALANCINGV2_API TargetHealth(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICLOADBALANCINGV2_API TargetHealth& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICLOADBALANCINGV2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_ELASTICLOADBALANCINGV2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The state of the target.

*/ inline const TargetHealthStateEnum& GetState() const{ return m_state; } /** *

The state of the target.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The state of the target.

*/ inline void SetState(const TargetHealthStateEnum& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The state of the target.

*/ inline void SetState(TargetHealthStateEnum&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The state of the target.

*/ inline TargetHealth& WithState(const TargetHealthStateEnum& value) { SetState(value); return *this;} /** *

The state of the target.

*/ inline TargetHealth& WithState(TargetHealthStateEnum&& value) { SetState(std::move(value)); return *this;} /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline const TargetHealthReasonEnum& GetReason() const{ return m_reason; } /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline bool ReasonHasBeenSet() const { return m_reasonHasBeenSet; } /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline void SetReason(const TargetHealthReasonEnum& value) { m_reasonHasBeenSet = true; m_reason = value; } /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline void SetReason(TargetHealthReasonEnum&& value) { m_reasonHasBeenSet = true; m_reason = std::move(value); } /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline TargetHealth& WithReason(const TargetHealthReasonEnum& value) { SetReason(value); return *this;} /** *

The reason code.

If the target state is healthy, a reason * code is not provided.

If the target state is initial, the * reason code can be one of the following values:

  • * Elb.RegistrationInProgress - The target is in the process of being * registered with the load balancer.

  • * Elb.InitialHealthChecking - The load balancer is still sending the * target the minimum number of health checks required to determine its health * status.

If the target state is unhealthy, the * reason code can be one of the following values:

  • * Target.ResponseCodeMismatch - The health checks did not return an * expected HTTP code. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.Timeout - The health check * requests timed out. Applies only to Application Load Balancers and Gateway Load * Balancers.

  • Target.FailedHealthChecks - The load * balancer received an error while establishing a connection to the target or the * target response was malformed.

  • Elb.InternalError * - The health checks failed due to an internal error. Applies only to Application * Load Balancers.

If the target state is unused, * the reason code can be one of the following values:

  • * Target.NotRegistered - The target is not registered with the target * group.

  • Target.NotInUse - The target group is not * used by any load balancer or the target is in an Availability Zone that is not * enabled for its load balancer.

  • * Target.InvalidState - The target is in the stopped or terminated * state.

  • Target.IpUnusable - The target IP address * is reserved for use by a load balancer.

If the target state * is draining, the reason code can be the following value:

    *
  • Target.DeregistrationInProgress - The target is in the * process of being deregistered and the deregistration delay period has not * expired.

If the target state is unavailable, the * reason code can be the following value:

  • * Target.HealthCheckDisabled - Health checks are disabled for the * target group. Applies only to Application Load Balancers.

  • * Elb.InternalError - Target health is unavailable due to an internal * error. Applies only to Network Load Balancers.

*/ inline TargetHealth& WithReason(TargetHealthReasonEnum&& value) { SetReason(std::move(value)); return *this;} /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline TargetHealth& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline TargetHealth& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the target health that provides additional details. If the * state is healthy, a description is not provided.

*/ inline TargetHealth& WithDescription(const char* value) { SetDescription(value); return *this;} private: TargetHealthStateEnum m_state; bool m_stateHasBeenSet = false; TargetHealthReasonEnum m_reason; bool m_reasonHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; }; } // namespace Model } // namespace ElasticLoadBalancingv2 } // namespace Aws