/** * 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 { /** *

Identifying information for a traffic source.

See Also:

AWS * API Reference

*/ class TrafficSourceIdentifier { public: AWS_AUTOSCALING_API TrafficSourceIdentifier(); AWS_AUTOSCALING_API TrafficSourceIdentifier(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API TrafficSourceIdentifier& 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; /** *

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

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

Identifies the traffic source.

For Application Load Balancers, Gateway * Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon * Resource Name (ARN) for a target group in this account and Region. For Classic * Load Balancers, this will be the name of the Classic Load Balancer in this * account and Region.

For example:

  • Application Load * Balancer ARN: * arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456 *

  • Classic Load Balancer name: * my-classic-load-balancer

  • VPC Lattice ARN: * arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456 *

To get the ARN of a target group for a Application Load * Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a * Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups * and DescribeLoadBalancers * API operations.

To get the ARN of a target group for VPC Lattice, use the * VPC Lattice GetTargetGroup * API operation.

*/ inline TrafficSourceIdentifier& 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 TrafficSourceIdentifier& 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 TrafficSourceIdentifier& 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 TrafficSourceIdentifier& WithType(const char* value) { SetType(value); return *this;} private: Aws::String m_identifier; bool m_identifierHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace AutoScaling } // namespace Aws