/** * 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 { /** */ class CreateLocationFsxOntapRequest : public DataSyncRequest { public: AWS_DATASYNC_API CreateLocationFsxOntapRequest(); // 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 "CreateLocationFsxOntap"; } AWS_DATASYNC_API Aws::String SerializePayload() const override; AWS_DATASYNC_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; inline const FsxProtocol& GetProtocol() const{ return m_protocol; } inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } inline void SetProtocol(const FsxProtocol& value) { m_protocolHasBeenSet = true; m_protocol = value; } inline void SetProtocol(FsxProtocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } inline CreateLocationFsxOntapRequest& WithProtocol(const FsxProtocol& value) { SetProtocol(value); return *this;} inline CreateLocationFsxOntapRequest& WithProtocol(FsxProtocol&& value) { SetProtocol(std::move(value)); return *this;} /** *

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

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

Specifies the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

The security groups must allow outbound * traffic on the following ports (depending on the protocol you use):

    *
  • Network File System (NFS): TCP ports 111, 635, and 2049

    *
  • Server Message Block (SMB): TCP port 445

*

Your file system's security groups must also allow inbound traffic on the * same ports.

*/ inline CreateLocationFsxOntapRequest& AddSecurityGroupArns(const char* value) { m_securityGroupArnsHasBeenSet = true; m_securityGroupArns.push_back(value); return *this; } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline const Aws::String& GetStorageVirtualMachineArn() const{ return m_storageVirtualMachineArn; } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline bool StorageVirtualMachineArnHasBeenSet() const { return m_storageVirtualMachineArnHasBeenSet; } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline void SetStorageVirtualMachineArn(const Aws::String& value) { m_storageVirtualMachineArnHasBeenSet = true; m_storageVirtualMachineArn = value; } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline void SetStorageVirtualMachineArn(Aws::String&& value) { m_storageVirtualMachineArnHasBeenSet = true; m_storageVirtualMachineArn = std::move(value); } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline void SetStorageVirtualMachineArn(const char* value) { m_storageVirtualMachineArnHasBeenSet = true; m_storageVirtualMachineArn.assign(value); } /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline CreateLocationFsxOntapRequest& WithStorageVirtualMachineArn(const Aws::String& value) { SetStorageVirtualMachineArn(value); return *this;} /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline CreateLocationFsxOntapRequest& WithStorageVirtualMachineArn(Aws::String&& value) { SetStorageVirtualMachineArn(std::move(value)); return *this;} /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system * where you want to copy data to or from.

*/ inline CreateLocationFsxOntapRequest& WithStorageVirtualMachineArn(const char* value) { SetStorageVirtualMachineArn(value); return *this;} /** *

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies a path to the file share in the SVM where you'll copy your * data.

You can specify a junction path (also known as a mount point), * qtree path (for NFS file shares), or share name (for SMB file shares). For * example, your mount path might be /vol1, /vol1/tree1, * or /share1.

Don't specify a junction path in the * SVM's root volume. For more information, see Managing * FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP * User Guide.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

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

Specifies labels that help you categorize, filter, and search for your Amazon * Web Services resources. We recommend creating at least a name tag for your * location.

*/ inline CreateLocationFsxOntapRequest& AddTags(TagListEntry&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: FsxProtocol m_protocol; bool m_protocolHasBeenSet = false; Aws::Vector m_securityGroupArns; bool m_securityGroupArnsHasBeenSet = false; Aws::String m_storageVirtualMachineArn; bool m_storageVirtualMachineArnHasBeenSet = false; Aws::String m_subdirectory; bool m_subdirectoryHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace DataSync } // namespace Aws