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

An automatic tape creation policy consists of automatic tape creation rules * where each rule defines when and how to create new tapes. For more information * about automatic tape creation, see Creating * Tapes Automatically.

See Also:

AWS * API Reference

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

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline const Aws::String& GetTapeBarcodePrefix() const{ return m_tapeBarcodePrefix; } /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline bool TapeBarcodePrefixHasBeenSet() const { return m_tapeBarcodePrefixHasBeenSet; } /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline void SetTapeBarcodePrefix(const Aws::String& value) { m_tapeBarcodePrefixHasBeenSet = true; m_tapeBarcodePrefix = value; } /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline void SetTapeBarcodePrefix(Aws::String&& value) { m_tapeBarcodePrefixHasBeenSet = true; m_tapeBarcodePrefix = std::move(value); } /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline void SetTapeBarcodePrefix(const char* value) { m_tapeBarcodePrefixHasBeenSet = true; m_tapeBarcodePrefix.assign(value); } /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline AutomaticTapeCreationRule& WithTapeBarcodePrefix(const Aws::String& value) { SetTapeBarcodePrefix(value); return *this;} /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline AutomaticTapeCreationRule& WithTapeBarcodePrefix(Aws::String&& value) { SetTapeBarcodePrefix(std::move(value)); return *this;} /** *

A prefix that you append to the barcode of the virtual tape that you are * creating. This prefix makes the barcode unique.

The prefix must be * 1-4 characters in length and must be one of the uppercase letters from A to * Z.

*/ inline AutomaticTapeCreationRule& WithTapeBarcodePrefix(const char* value) { SetTapeBarcodePrefix(value); return *this;} /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline const Aws::String& GetPoolId() const{ return m_poolId; } /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline bool PoolIdHasBeenSet() const { return m_poolIdHasBeenSet; } /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline void SetPoolId(const Aws::String& value) { m_poolIdHasBeenSet = true; m_poolId = value; } /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline void SetPoolId(Aws::String&& value) { m_poolIdHasBeenSet = true; m_poolId = std::move(value); } /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline void SetPoolId(const char* value) { m_poolIdHasBeenSet = true; m_poolId.assign(value); } /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline AutomaticTapeCreationRule& WithPoolId(const Aws::String& value) { SetPoolId(value); return *this;} /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline AutomaticTapeCreationRule& WithPoolId(Aws::String&& value) { SetPoolId(std::move(value)); return *this;} /** *

The ID of the pool that you want to add your tape to for archiving. The tape * in this pool is archived in the Amazon S3 storage class that is associated with * the pool. When you use your backup application to eject the tape, the tape is * archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) * that corresponds to the pool.

*/ inline AutomaticTapeCreationRule& WithPoolId(const char* value) { SetPoolId(value); return *this;} /** *

The size, in bytes, of the virtual tape capacity.

*/ inline long long GetTapeSizeInBytes() const{ return m_tapeSizeInBytes; } /** *

The size, in bytes, of the virtual tape capacity.

*/ inline bool TapeSizeInBytesHasBeenSet() const { return m_tapeSizeInBytesHasBeenSet; } /** *

The size, in bytes, of the virtual tape capacity.

*/ inline void SetTapeSizeInBytes(long long value) { m_tapeSizeInBytesHasBeenSet = true; m_tapeSizeInBytes = value; } /** *

The size, in bytes, of the virtual tape capacity.

*/ inline AutomaticTapeCreationRule& WithTapeSizeInBytes(long long value) { SetTapeSizeInBytes(value); return *this;} /** *

The minimum number of available virtual tapes that the gateway maintains at * all times. If the number of tapes on the gateway goes below this value, the * gateway creates as many new tapes as are needed to have * MinimumNumTapes on the gateway. For more information about * automatic tape creation, see Creating * Tapes Automatically.

*/ inline int GetMinimumNumTapes() const{ return m_minimumNumTapes; } /** *

The minimum number of available virtual tapes that the gateway maintains at * all times. If the number of tapes on the gateway goes below this value, the * gateway creates as many new tapes as are needed to have * MinimumNumTapes on the gateway. For more information about * automatic tape creation, see Creating * Tapes Automatically.

*/ inline bool MinimumNumTapesHasBeenSet() const { return m_minimumNumTapesHasBeenSet; } /** *

The minimum number of available virtual tapes that the gateway maintains at * all times. If the number of tapes on the gateway goes below this value, the * gateway creates as many new tapes as are needed to have * MinimumNumTapes on the gateway. For more information about * automatic tape creation, see Creating * Tapes Automatically.

*/ inline void SetMinimumNumTapes(int value) { m_minimumNumTapesHasBeenSet = true; m_minimumNumTapes = value; } /** *

The minimum number of available virtual tapes that the gateway maintains at * all times. If the number of tapes on the gateway goes below this value, the * gateway creates as many new tapes as are needed to have * MinimumNumTapes on the gateway. For more information about * automatic tape creation, see Creating * Tapes Automatically.

*/ inline AutomaticTapeCreationRule& WithMinimumNumTapes(int value) { SetMinimumNumTapes(value); return *this;} /** *

Set to true to indicate that tapes are to be archived as * write-once-read-many (WORM). Set to false when WORM is not enabled * for tapes.

*/ inline bool GetWorm() const{ return m_worm; } /** *

Set to true to indicate that tapes are to be archived as * write-once-read-many (WORM). Set to false when WORM is not enabled * for tapes.

*/ inline bool WormHasBeenSet() const { return m_wormHasBeenSet; } /** *

Set to true to indicate that tapes are to be archived as * write-once-read-many (WORM). Set to false when WORM is not enabled * for tapes.

*/ inline void SetWorm(bool value) { m_wormHasBeenSet = true; m_worm = value; } /** *

Set to true to indicate that tapes are to be archived as * write-once-read-many (WORM). Set to false when WORM is not enabled * for tapes.

*/ inline AutomaticTapeCreationRule& WithWorm(bool value) { SetWorm(value); return *this;} private: Aws::String m_tapeBarcodePrefix; bool m_tapeBarcodePrefixHasBeenSet = false; Aws::String m_poolId; bool m_poolIdHasBeenSet = false; long long m_tapeSizeInBytes; bool m_tapeSizeInBytesHasBeenSet = false; int m_minimumNumTapes; bool m_minimumNumTapesHasBeenSet = false; bool m_worm; bool m_wormHasBeenSet = false; }; } // namespace Model } // namespace StorageGateway } // namespace Aws