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

The configuration for a data repository association that links an Amazon File * Cache resource to an NFS data repository.

See Also:

AWS * API Reference

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

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline const NfsVersion& GetVersion() const{ return m_version; } /** *

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; } /** *

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline void SetVersion(const NfsVersion& value) { m_versionHasBeenSet = true; m_version = value; } /** *

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline void SetVersion(NfsVersion&& value) { m_versionHasBeenSet = true; m_version = std::move(value); } /** *

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline NFSDataRepositoryConfiguration& WithVersion(const NfsVersion& value) { SetVersion(value); return *this;} /** *

The version of the NFS (Network File System) protocol of the NFS data * repository. Currently, the only supported value is NFS3, which * indicates that the data repository must support the NFSv3 protocol.

*/ inline NFSDataRepositoryConfiguration& WithVersion(NfsVersion&& value) { SetVersion(std::move(value)); return *this;} /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline const Aws::Vector& GetDnsIps() const{ return m_dnsIps; } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline bool DnsIpsHasBeenSet() const { return m_dnsIpsHasBeenSet; } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline void SetDnsIps(const Aws::Vector& value) { m_dnsIpsHasBeenSet = true; m_dnsIps = value; } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline void SetDnsIps(Aws::Vector&& value) { m_dnsIpsHasBeenSet = true; m_dnsIps = std::move(value); } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline NFSDataRepositoryConfiguration& WithDnsIps(const Aws::Vector& value) { SetDnsIps(value); return *this;} /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline NFSDataRepositoryConfiguration& WithDnsIps(Aws::Vector&& value) { SetDnsIps(std::move(value)); return *this;} /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline NFSDataRepositoryConfiguration& AddDnsIps(const Aws::String& value) { m_dnsIpsHasBeenSet = true; m_dnsIps.push_back(value); return *this; } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline NFSDataRepositoryConfiguration& AddDnsIps(Aws::String&& value) { m_dnsIpsHasBeenSet = true; m_dnsIps.push_back(std::move(value)); return *this; } /** *

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file * system domain name. The provided IP addresses can either be the IP addresses of * a DNS forwarder or resolver that the customer manages and runs inside the * customer VPC, or the IP addresses of the on-premises DNS servers.

*/ inline NFSDataRepositoryConfiguration& AddDnsIps(const char* value) { m_dnsIpsHasBeenSet = true; m_dnsIps.push_back(value); return *this; } /** *

This parameter is not supported for Amazon File Cache.

*/ inline const AutoExportPolicy& GetAutoExportPolicy() const{ return m_autoExportPolicy; } /** *

This parameter is not supported for Amazon File Cache.

*/ inline bool AutoExportPolicyHasBeenSet() const { return m_autoExportPolicyHasBeenSet; } /** *

This parameter is not supported for Amazon File Cache.

*/ inline void SetAutoExportPolicy(const AutoExportPolicy& value) { m_autoExportPolicyHasBeenSet = true; m_autoExportPolicy = value; } /** *

This parameter is not supported for Amazon File Cache.

*/ inline void SetAutoExportPolicy(AutoExportPolicy&& value) { m_autoExportPolicyHasBeenSet = true; m_autoExportPolicy = std::move(value); } /** *

This parameter is not supported for Amazon File Cache.

*/ inline NFSDataRepositoryConfiguration& WithAutoExportPolicy(const AutoExportPolicy& value) { SetAutoExportPolicy(value); return *this;} /** *

This parameter is not supported for Amazon File Cache.

*/ inline NFSDataRepositoryConfiguration& WithAutoExportPolicy(AutoExportPolicy&& value) { SetAutoExportPolicy(std::move(value)); return *this;} private: NfsVersion m_version; bool m_versionHasBeenSet = false; Aws::Vector m_dnsIps; bool m_dnsIpsHasBeenSet = false; AutoExportPolicy m_autoExportPolicy; bool m_autoExportPolicyHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws