/** * 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 Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DataSync { namespace Model { /** *

The subnet and security groups that DataSync uses to access your Amazon EFS * file system.

See Also:

AWS * API Reference

*/ class Ec2Config { public: AWS_DATASYNC_API Ec2Config(); AWS_DATASYNC_API Ec2Config(Aws::Utils::Json::JsonView jsonValue); AWS_DATASYNC_API Ec2Config& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DATASYNC_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline const Aws::String& GetSubnetArn() const{ return m_subnetArn; } /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline bool SubnetArnHasBeenSet() const { return m_subnetArnHasBeenSet; } /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline void SetSubnetArn(const Aws::String& value) { m_subnetArnHasBeenSet = true; m_subnetArn = value; } /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline void SetSubnetArn(Aws::String&& value) { m_subnetArnHasBeenSet = true; m_subnetArn = std::move(value); } /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline void SetSubnetArn(const char* value) { m_subnetArnHasBeenSet = true; m_subnetArn.assign(value); } /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline Ec2Config& WithSubnetArn(const Aws::String& value) { SetSubnetArn(value); return *this;} /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline Ec2Config& WithSubnetArn(Aws::String&& value) { SetSubnetArn(std::move(value)); return *this;} /** *

Specifies the ARN of a subnet where DataSync creates the network * interfaces for managing traffic during your transfer.

The subnet must * be located:

  • In the same virtual private cloud (VPC) as the * Amazon EFS file system.

  • In the same Availability Zone as at * least one mount target for the Amazon EFS file system.

*

You don't need to specify a subnet that includes a file system mount * target.

*/ inline Ec2Config& WithSubnetArn(const char* value) { SetSubnetArn(value); return *this;} /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline const Aws::Vector& GetSecurityGroupArns() const{ return m_securityGroupArns; } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline bool SecurityGroupArnsHasBeenSet() const { return m_securityGroupArnsHasBeenSet; } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline void SetSecurityGroupArns(const Aws::Vector& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns = value; } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline void SetSecurityGroupArns(Aws::Vector&& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns = std::move(value); } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline Ec2Config& WithSecurityGroupArns(const Aws::Vector& value) { SetSecurityGroupArns(value); return *this;} /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline Ec2Config& WithSecurityGroupArns(Aws::Vector&& value) { SetSecurityGroupArns(std::move(value)); return *this;} /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline Ec2Config& AddSecurityGroupArns(const Aws::String& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(value); return *this; } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline Ec2Config& AddSecurityGroupArns(Aws::String&& value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(std::move(value)); return *this; } /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated * with an Amazon EFS file system's mount target.

*/ inline Ec2Config& AddSecurityGroupArns(const char* value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(value); return *this; } private: Aws::String m_subnetArn; bool m_subnetArnHasBeenSet = false; Aws::Vector m_securityGroupArns; bool m_securityGroupArnsHasBeenSet = false; }; } // namespace Model } // namespace DataSync } // namespace Aws