/** * 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 the Amazon File Cache resource.

See * Also:

AWS * API Reference

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

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. Cache throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). The only supported value is 1000.

*/ inline int GetPerUnitStorageThroughput() const{ return m_perUnitStorageThroughput; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. Cache throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). The only supported value is 1000.

*/ inline bool PerUnitStorageThroughputHasBeenSet() const { return m_perUnitStorageThroughputHasBeenSet; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. Cache throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). The only supported value is 1000.

*/ inline void SetPerUnitStorageThroughput(int value) { m_perUnitStorageThroughputHasBeenSet = true; m_perUnitStorageThroughput = value; } /** *

Per unit storage throughput represents the megabytes per second of read or * write throughput per 1 tebibyte of storage provisioned. Cache throughput * capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput * (MB/s/TiB). The only supported value is 1000.

*/ inline FileCacheLustreConfiguration& WithPerUnitStorageThroughput(int value) { SetPerUnitStorageThroughput(value); return *this;} /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline const FileCacheLustreDeploymentType& GetDeploymentType() const{ return m_deploymentType; } /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline bool DeploymentTypeHasBeenSet() const { return m_deploymentTypeHasBeenSet; } /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline void SetDeploymentType(const FileCacheLustreDeploymentType& value) { m_deploymentTypeHasBeenSet = true; m_deploymentType = value; } /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline void SetDeploymentType(FileCacheLustreDeploymentType&& value) { m_deploymentTypeHasBeenSet = true; m_deploymentType = std::move(value); } /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline FileCacheLustreConfiguration& WithDeploymentType(const FileCacheLustreDeploymentType& value) { SetDeploymentType(value); return *this;} /** *

The deployment type of the Amazon File Cache resource, which must be * CACHE_1.

*/ inline FileCacheLustreConfiguration& WithDeploymentType(FileCacheLustreDeploymentType&& value) { SetDeploymentType(std::move(value)); return *this;} /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline const Aws::String& GetMountName() const{ return m_mountName; } /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline bool MountNameHasBeenSet() const { return m_mountNameHasBeenSet; } /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline void SetMountName(const Aws::String& value) { m_mountNameHasBeenSet = true; m_mountName = value; } /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline void SetMountName(Aws::String&& value) { m_mountNameHasBeenSet = true; m_mountName = std::move(value); } /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline void SetMountName(const char* value) { m_mountNameHasBeenSet = true; m_mountName.assign(value); } /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline FileCacheLustreConfiguration& WithMountName(const Aws::String& value) { SetMountName(value); return *this;} /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline FileCacheLustreConfiguration& WithMountName(Aws::String&& value) { SetMountName(std::move(value)); return *this;} /** *

You use the MountName value when mounting the cache. If you pass * a cache ID to the DescribeFileCaches operation, it returns the the * MountName value as part of the cache's description.

*/ inline FileCacheLustreConfiguration& WithMountName(const char* value) { SetMountName(value); return *this;} inline const Aws::String& GetWeeklyMaintenanceStartTime() const{ return m_weeklyMaintenanceStartTime; } inline bool WeeklyMaintenanceStartTimeHasBeenSet() const { return m_weeklyMaintenanceStartTimeHasBeenSet; } inline void SetWeeklyMaintenanceStartTime(const Aws::String& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = value; } inline void SetWeeklyMaintenanceStartTime(Aws::String&& value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime = std::move(value); } inline void SetWeeklyMaintenanceStartTime(const char* value) { m_weeklyMaintenanceStartTimeHasBeenSet = true; m_weeklyMaintenanceStartTime.assign(value); } inline FileCacheLustreConfiguration& WithWeeklyMaintenanceStartTime(const Aws::String& value) { SetWeeklyMaintenanceStartTime(value); return *this;} inline FileCacheLustreConfiguration& WithWeeklyMaintenanceStartTime(Aws::String&& value) { SetWeeklyMaintenanceStartTime(std::move(value)); return *this;} inline FileCacheLustreConfiguration& WithWeeklyMaintenanceStartTime(const char* value) { SetWeeklyMaintenanceStartTime(value); return *this;} /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline const FileCacheLustreMetadataConfiguration& GetMetadataConfiguration() const{ return m_metadataConfiguration; } /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline bool MetadataConfigurationHasBeenSet() const { return m_metadataConfigurationHasBeenSet; } /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline void SetMetadataConfiguration(const FileCacheLustreMetadataConfiguration& value) { m_metadataConfigurationHasBeenSet = true; m_metadataConfiguration = value; } /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline void SetMetadataConfiguration(FileCacheLustreMetadataConfiguration&& value) { m_metadataConfigurationHasBeenSet = true; m_metadataConfiguration = std::move(value); } /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline FileCacheLustreConfiguration& WithMetadataConfiguration(const FileCacheLustreMetadataConfiguration& value) { SetMetadataConfiguration(value); return *this;} /** *

The configuration for a Lustre MDT (Metadata Target) storage volume.

*/ inline FileCacheLustreConfiguration& WithMetadataConfiguration(FileCacheLustreMetadataConfiguration&& value) { SetMetadataConfiguration(std::move(value)); return *this;} /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline const LustreLogConfiguration& GetLogConfiguration() const{ return m_logConfiguration; } /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline bool LogConfigurationHasBeenSet() const { return m_logConfigurationHasBeenSet; } /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline void SetLogConfiguration(const LustreLogConfiguration& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = value; } /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline void SetLogConfiguration(LustreLogConfiguration&& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = std::move(value); } /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline FileCacheLustreConfiguration& WithLogConfiguration(const LustreLogConfiguration& value) { SetLogConfiguration(value); return *this;} /** *

The configuration for Lustre logging used to write the enabled logging events * for your Amazon File Cache resource to Amazon CloudWatch Logs.

*/ inline FileCacheLustreConfiguration& WithLogConfiguration(LustreLogConfiguration&& value) { SetLogConfiguration(std::move(value)); return *this;} private: int m_perUnitStorageThroughput; bool m_perUnitStorageThroughputHasBeenSet = false; FileCacheLustreDeploymentType m_deploymentType; bool m_deploymentTypeHasBeenSet = false; Aws::String m_mountName; bool m_mountNameHasBeenSet = false; Aws::String m_weeklyMaintenanceStartTime; bool m_weeklyMaintenanceStartTimeHasBeenSet = false; FileCacheLustreMetadataConfiguration m_metadataConfiguration; bool m_metadataConfigurationHasBeenSet = false; LustreLogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws