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

Amazon S3 compatible storage on Snow family devices configuration * items.

See Also:

AWS * API Reference

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

If the specified storage limit value matches storage limit of one of the * defined configurations, that configuration will be used. If the specified * storage limit value does not match any defined configuration, the request will * fail. If more than one configuration has the same storage limit as specified, * the other input need to be provided.

*/ inline double GetStorageLimit() const{ return m_storageLimit; } /** *

If the specified storage limit value matches storage limit of one of the * defined configurations, that configuration will be used. If the specified * storage limit value does not match any defined configuration, the request will * fail. If more than one configuration has the same storage limit as specified, * the other input need to be provided.

*/ inline bool StorageLimitHasBeenSet() const { return m_storageLimitHasBeenSet; } /** *

If the specified storage limit value matches storage limit of one of the * defined configurations, that configuration will be used. If the specified * storage limit value does not match any defined configuration, the request will * fail. If more than one configuration has the same storage limit as specified, * the other input need to be provided.

*/ inline void SetStorageLimit(double value) { m_storageLimitHasBeenSet = true; m_storageLimit = value; } /** *

If the specified storage limit value matches storage limit of one of the * defined configurations, that configuration will be used. If the specified * storage limit value does not match any defined configuration, the request will * fail. If more than one configuration has the same storage limit as specified, * the other input need to be provided.

*/ inline S3OnDeviceServiceConfiguration& WithStorageLimit(double value) { SetStorageLimit(value); return *this;} /** *

Storage unit. Currently the only supported unit is TB.

*/ inline const StorageUnit& GetStorageUnit() const{ return m_storageUnit; } /** *

Storage unit. Currently the only supported unit is TB.

*/ inline bool StorageUnitHasBeenSet() const { return m_storageUnitHasBeenSet; } /** *

Storage unit. Currently the only supported unit is TB.

*/ inline void SetStorageUnit(const StorageUnit& value) { m_storageUnitHasBeenSet = true; m_storageUnit = value; } /** *

Storage unit. Currently the only supported unit is TB.

*/ inline void SetStorageUnit(StorageUnit&& value) { m_storageUnitHasBeenSet = true; m_storageUnit = std::move(value); } /** *

Storage unit. Currently the only supported unit is TB.

*/ inline S3OnDeviceServiceConfiguration& WithStorageUnit(const StorageUnit& value) { SetStorageUnit(value); return *this;} /** *

Storage unit. Currently the only supported unit is TB.

*/ inline S3OnDeviceServiceConfiguration& WithStorageUnit(StorageUnit&& value) { SetStorageUnit(std::move(value)); return *this;} /** *

Applicable when creating a cluster. Specifies how many nodes are needed for * Amazon S3 compatible storage on Snow family devices. If specified, the other * input can be omitted.

*/ inline int GetServiceSize() const{ return m_serviceSize; } /** *

Applicable when creating a cluster. Specifies how many nodes are needed for * Amazon S3 compatible storage on Snow family devices. If specified, the other * input can be omitted.

*/ inline bool ServiceSizeHasBeenSet() const { return m_serviceSizeHasBeenSet; } /** *

Applicable when creating a cluster. Specifies how many nodes are needed for * Amazon S3 compatible storage on Snow family devices. If specified, the other * input can be omitted.

*/ inline void SetServiceSize(int value) { m_serviceSizeHasBeenSet = true; m_serviceSize = value; } /** *

Applicable when creating a cluster. Specifies how many nodes are needed for * Amazon S3 compatible storage on Snow family devices. If specified, the other * input can be omitted.

*/ inline S3OnDeviceServiceConfiguration& WithServiceSize(int value) { SetServiceSize(value); return *this;} /** *

>Fault tolerance level of the cluster. This indicates the number of nodes * that can go down without degrading the performance of the cluster. This * additional input helps when the specified StorageLimit matches more * than one Amazon S3 compatible storage on Snow family devices service * configuration.

*/ inline int GetFaultTolerance() const{ return m_faultTolerance; } /** *

>Fault tolerance level of the cluster. This indicates the number of nodes * that can go down without degrading the performance of the cluster. This * additional input helps when the specified StorageLimit matches more * than one Amazon S3 compatible storage on Snow family devices service * configuration.

*/ inline bool FaultToleranceHasBeenSet() const { return m_faultToleranceHasBeenSet; } /** *

>Fault tolerance level of the cluster. This indicates the number of nodes * that can go down without degrading the performance of the cluster. This * additional input helps when the specified StorageLimit matches more * than one Amazon S3 compatible storage on Snow family devices service * configuration.

*/ inline void SetFaultTolerance(int value) { m_faultToleranceHasBeenSet = true; m_faultTolerance = value; } /** *

>Fault tolerance level of the cluster. This indicates the number of nodes * that can go down without degrading the performance of the cluster. This * additional input helps when the specified StorageLimit matches more * than one Amazon S3 compatible storage on Snow family devices service * configuration.

*/ inline S3OnDeviceServiceConfiguration& WithFaultTolerance(int value) { SetFaultTolerance(value); return *this;} private: double m_storageLimit; bool m_storageLimitHasBeenSet = false; StorageUnit m_storageUnit; bool m_storageUnitHasBeenSet = false; int m_serviceSize; bool m_serviceSizeHasBeenSet = false; int m_faultTolerance; bool m_faultToleranceHasBeenSet = false; }; } // namespace Model } // namespace Snowball } // namespace Aws