/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace DataSync { namespace Model { /** *

CreateLocationEfsRequest

See Also:

AWS * API Reference

*/ class AWS_DATASYNC_API CreateLocationEfsRequest : public DataSyncRequest { public: CreateLocationEfsRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateLocationEfs"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline const Aws::String& GetSubdirectory() const{ return m_subdirectory; } /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline bool SubdirectoryHasBeenSet() const { return m_subdirectoryHasBeenSet; } /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline void SetSubdirectory(const Aws::String& value) { m_subdirectoryHasBeenSet = true; m_subdirectory = value; } /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline void SetSubdirectory(Aws::String&& value) { m_subdirectoryHasBeenSet = true; m_subdirectory = std::move(value); } /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline void SetSubdirectory(const char* value) { m_subdirectoryHasBeenSet = true; m_subdirectory.assign(value); } /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline CreateLocationEfsRequest& WithSubdirectory(const Aws::String& value) { SetSubdirectory(value); return *this;} /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline CreateLocationEfsRequest& WithSubdirectory(Aws::String&& value) { SetSubdirectory(std::move(value)); return *this;} /** *

A subdirectory in the location’s path. This subdirectory in the EFS file * system is used to read data from the EFS source location or write data to the * EFS destination. By default, AWS DataSync uses the root directory.

*

Subdirectory must be specified with forward slashes. For * example, /path/to/folder.

*/ inline CreateLocationEfsRequest& WithSubdirectory(const char* value) { SetSubdirectory(value); return *this;} /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline const Aws::String& GetEfsFilesystemArn() const{ return m_efsFilesystemArn; } /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline bool EfsFilesystemArnHasBeenSet() const { return m_efsFilesystemArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline void SetEfsFilesystemArn(const Aws::String& value) { m_efsFilesystemArnHasBeenSet = true; m_efsFilesystemArn = value; } /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline void SetEfsFilesystemArn(Aws::String&& value) { m_efsFilesystemArnHasBeenSet = true; m_efsFilesystemArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline void SetEfsFilesystemArn(const char* value) { m_efsFilesystemArnHasBeenSet = true; m_efsFilesystemArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline CreateLocationEfsRequest& WithEfsFilesystemArn(const Aws::String& value) { SetEfsFilesystemArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline CreateLocationEfsRequest& WithEfsFilesystemArn(Aws::String&& value) { SetEfsFilesystemArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the Amazon EFS file system.

*/ inline CreateLocationEfsRequest& WithEfsFilesystemArn(const char* value) { SetEfsFilesystemArn(value); return *this;} /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline const Ec2Config& GetEc2Config() const{ return m_ec2Config; } /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline bool Ec2ConfigHasBeenSet() const { return m_ec2ConfigHasBeenSet; } /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline void SetEc2Config(const Ec2Config& value) { m_ec2ConfigHasBeenSet = true; m_ec2Config = value; } /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline void SetEc2Config(Ec2Config&& value) { m_ec2ConfigHasBeenSet = true; m_ec2Config = std::move(value); } /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline CreateLocationEfsRequest& WithEc2Config(const Ec2Config& value) { SetEc2Config(value); return *this;} /** *

The subnet and security group that the Amazon EFS file system uses. The * security group that you provide needs to be able to communicate with the * security group on the mount target in the subnet specified.

The exact * relationship between security group M (of the mount target) and security group S * (which you provide for DataSync to use at this stage) is as follows:

    *
  • Security group M (which you associate with the mount target) must allow * inbound access for the Transmission Control Protocol (TCP) on the NFS port * (2049) from security group S. You can enable inbound connections either by IP * address (CIDR range) or security group.

  • Security group S * (provided to DataSync to access EFS) should have a rule that enables outbound * connections to the NFS port on one of the file system’s mount targets. You can * enable outbound connections either by IP address (CIDR range) or security * group.

    For information about security groups and mount targets, see * Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS * User Guide.

*/ inline CreateLocationEfsRequest& WithEc2Config(Ec2Config&& value) { SetEc2Config(std::move(value)); return *this;} /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline CreateLocationEfsRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline CreateLocationEfsRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline CreateLocationEfsRequest& AddTags(const TagListEntry& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, * and search for your resources. We recommend that you create a name tag for your * location.

*/ inline CreateLocationEfsRequest& AddTags(TagListEntry&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_subdirectory; bool m_subdirectoryHasBeenSet; Aws::String m_efsFilesystemArn; bool m_efsFilesystemArnHasBeenSet; Ec2Config m_ec2Config; bool m_ec2ConfigHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; }; } // namespace Model } // namespace DataSync } // namespace Aws