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

Describes the state of a traffic source.

See Also:

AWS * API Reference

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

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

*/ inline const Aws::String& GetState() const{ return m_state; } /** *

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

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

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

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

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

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

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

*/ inline void SetState(const char* value) { m_stateHasBeenSet = true; m_state.assign(value); } /** *

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

*/ inline TrafficSourceState& WithState(const Aws::String& value) { SetState(value); return *this;} /** *

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

*/ inline TrafficSourceState& WithState(Aws::String&& value) { SetState(std::move(value)); return *this;} /** *

Describes the current state of a traffic source.

The state values are * as follows:

  • Adding - The Auto Scaling instances * are being registered with the load balancer or target group.

  • * Added - All Auto Scaling instances are registered with the load * balancer or target group.

  • InService - For an * Elastic Load Balancing load balancer or target group, at least one Auto Scaling * instance passed an ELB health check. For VPC Lattice, at least one * Auto Scaling instance passed an VPC_LATTICE health check.

  • *
  • Removing - The Auto Scaling instances are being * deregistered from the load balancer or target group. If connection draining * (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits * for in-flight requests to complete before deregistering the instances.

  • *
  • Removed - All Auto Scaling instances are deregistered from * the load balancer or target group.

*/ inline TrafficSourceState& WithState(const char* value) { SetState(value); return *this;} /** *

The unique identifier of the traffic source.

*/ inline const Aws::String& GetIdentifier() const{ return m_identifier; } /** *

The unique identifier of the traffic source.

*/ inline bool IdentifierHasBeenSet() const { return m_identifierHasBeenSet; } /** *

The unique identifier of the traffic source.

*/ inline void SetIdentifier(const Aws::String& value) { m_identifierHasBeenSet = true; m_identifier = value; } /** *

The unique identifier of the traffic source.

*/ inline void SetIdentifier(Aws::String&& value) { m_identifierHasBeenSet = true; m_identifier = std::move(value); } /** *

The unique identifier of the traffic source.

*/ inline void SetIdentifier(const char* value) { m_identifierHasBeenSet = true; m_identifier.assign(value); } /** *

The unique identifier of the traffic source.

*/ inline TrafficSourceState& WithIdentifier(const Aws::String& value) { SetIdentifier(value); return *this;} /** *

The unique identifier of the traffic source.

*/ inline TrafficSourceState& WithIdentifier(Aws::String&& value) { SetIdentifier(std::move(value)); return *this;} /** *

The unique identifier of the traffic source.

*/ inline TrafficSourceState& WithIdentifier(const char* value) { SetIdentifier(value); return *this;} /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline TrafficSourceState& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline TrafficSourceState& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

Provides additional context for the value of Identifier.

*

The following lists the valid values:

  • elb if * Identifier is the name of a Classic Load Balancer.

  • *

    elbv2 if Identifier is the ARN of an Application * Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

    *
  • vpc-lattice if Identifier is the ARN of * a VPC Lattice target group.

Required if the identifier is the * name of a Classic Load Balancer.

*/ inline TrafficSourceState& WithType(const char* value) { SetType(value); return *this;} private: Aws::String m_state; bool m_stateHasBeenSet = false; Aws::String m_identifier; bool m_identifierHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace AutoScaling } // namespace Aws