/** * 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 FSx { namespace Model { /** *

The configuration for Lustre root squash used to restrict root-level access * from clients that try to access your FSx for Lustre file system as root. Use the * RootSquash parameter to enable root squash. To learn more about * Lustre root squash, see Lustre * root squash.

You can also use the NoSquashNids parameter * to provide an array of clients who are not affected by the root squash setting. * These clients will access the file system as root, with unrestricted * privileges.

See Also:

AWS * API Reference

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

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline const Aws::String& GetRootSquash() const{ return m_rootSquash; } /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline bool RootSquashHasBeenSet() const { return m_rootSquashHasBeenSet; } /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline void SetRootSquash(const Aws::String& value) { m_rootSquashHasBeenSet = true; m_rootSquash = value; } /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline void SetRootSquash(Aws::String&& value) { m_rootSquashHasBeenSet = true; m_rootSquash = std::move(value); } /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline void SetRootSquash(const char* value) { m_rootSquashHasBeenSet = true; m_rootSquash.assign(value); } /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline LustreRootSquashConfiguration& WithRootSquash(const Aws::String& value) { SetRootSquash(value); return *this;} /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline LustreRootSquashConfiguration& WithRootSquash(Aws::String&& value) { SetRootSquash(std::move(value)); return *this;} /** *

You enable root squash by setting a user ID (UID) and group ID (GID) for the * file system in the format UID:GID (for example, * 365534:65534). The UID and GID values can range from 0 * to 4294967294:

  • A non-zero value for UID and GID * enables root squash. The UID and GID values can be different, but each must be a * non-zero value.

  • A value of 0 (zero) for UID and * GID indicates root, and therefore disables root squash.

When * root squash is enabled, the user ID and group ID of a root user accessing the * file system are re-mapped to the UID and GID you provide.

*/ inline LustreRootSquashConfiguration& WithRootSquash(const char* value) { SetRootSquash(value); return *this;} /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline const Aws::Vector& GetNoSquashNids() const{ return m_noSquashNids; } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline bool NoSquashNidsHasBeenSet() const { return m_noSquashNidsHasBeenSet; } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline void SetNoSquashNids(const Aws::Vector& value) { m_noSquashNidsHasBeenSet = true; m_noSquashNids = value; } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline void SetNoSquashNids(Aws::Vector&& value) { m_noSquashNidsHasBeenSet = true; m_noSquashNids = std::move(value); } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline LustreRootSquashConfiguration& WithNoSquashNids(const Aws::Vector& value) { SetNoSquashNids(value); return *this;} /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline LustreRootSquashConfiguration& WithNoSquashNids(Aws::Vector&& value) { SetNoSquashNids(std::move(value)); return *this;} /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline LustreRootSquashConfiguration& AddNoSquashNids(const Aws::String& value) { m_noSquashNidsHasBeenSet = true; m_noSquashNids.push_back(value); return *this; } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline LustreRootSquashConfiguration& AddNoSquashNids(Aws::String&& value) { m_noSquashNidsHasBeenSet = true; m_noSquashNids.push_back(std::move(value)); return *this; } /** *

When root squash is enabled, you can optionally specify an array of NIDs of * clients for which root squash does not apply. A client NID is a Lustre Network * Identifier used to uniquely identify a client. You can specify the NID as either * a single address or a range of addresses:

  • A single address is * described in standard Lustre NID format by specifying the client’s IP address * followed by the Lustre network ID (for example, 10.0.1.6@tcp).

    *
  • An address range is described using a dash to separate the range * (for example, 10.0.[2-10].[1-255]@tcp).

*/ inline LustreRootSquashConfiguration& AddNoSquashNids(const char* value) { m_noSquashNidsHasBeenSet = true; m_noSquashNids.push_back(value); return *this; } private: Aws::String m_rootSquash; bool m_rootSquashHasBeenSet = false; Aws::Vector m_noSquashNids; bool m_noSquashNidsHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws