/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace Redshift { namespace Model { /** *

Returns the destination region and retention period that are configured for * cross-region snapshot copy.

See Also:

AWS * API Reference

*/ class ClusterSnapshotCopyStatus { public: AWS_REDSHIFT_API ClusterSnapshotCopyStatus(); AWS_REDSHIFT_API ClusterSnapshotCopyStatus(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API ClusterSnapshotCopyStatus& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_REDSHIFT_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline const Aws::String& GetDestinationRegion() const{ return m_destinationRegion; } /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline bool DestinationRegionHasBeenSet() const { return m_destinationRegionHasBeenSet; } /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline void SetDestinationRegion(const Aws::String& value) { m_destinationRegionHasBeenSet = true; m_destinationRegion = value; } /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline void SetDestinationRegion(Aws::String&& value) { m_destinationRegionHasBeenSet = true; m_destinationRegion = std::move(value); } /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline void SetDestinationRegion(const char* value) { m_destinationRegionHasBeenSet = true; m_destinationRegion.assign(value); } /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline ClusterSnapshotCopyStatus& WithDestinationRegion(const Aws::String& value) { SetDestinationRegion(value); return *this;} /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline ClusterSnapshotCopyStatus& WithDestinationRegion(Aws::String&& value) { SetDestinationRegion(std::move(value)); return *this;} /** *

The destination region that snapshots are automatically copied to when * cross-region snapshot copy is enabled.

*/ inline ClusterSnapshotCopyStatus& WithDestinationRegion(const char* value) { SetDestinationRegion(value); return *this;} /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region.

*/ inline long long GetRetentionPeriod() const{ return m_retentionPeriod; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region.

*/ inline bool RetentionPeriodHasBeenSet() const { return m_retentionPeriodHasBeenSet; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region.

*/ inline void SetRetentionPeriod(long long value) { m_retentionPeriodHasBeenSet = true; m_retentionPeriod = value; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region.

*/ inline ClusterSnapshotCopyStatus& WithRetentionPeriod(long long value) { SetRetentionPeriod(value); return *this;} /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region. If the value is -1, the * manual snapshot is retained indefinitely.

The value must be either -1 or * an integer between 1 and 3,653.

*/ inline int GetManualSnapshotRetentionPeriod() const{ return m_manualSnapshotRetentionPeriod; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region. If the value is -1, the * manual snapshot is retained indefinitely.

The value must be either -1 or * an integer between 1 and 3,653.

*/ inline bool ManualSnapshotRetentionPeriodHasBeenSet() const { return m_manualSnapshotRetentionPeriodHasBeenSet; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region. If the value is -1, the * manual snapshot is retained indefinitely.

The value must be either -1 or * an integer between 1 and 3,653.

*/ inline void SetManualSnapshotRetentionPeriod(int value) { m_manualSnapshotRetentionPeriodHasBeenSet = true; m_manualSnapshotRetentionPeriod = value; } /** *

The number of days that automated snapshots are retained in the destination * region after they are copied from a source region. If the value is -1, the * manual snapshot is retained indefinitely.

The value must be either -1 or * an integer between 1 and 3,653.

*/ inline ClusterSnapshotCopyStatus& WithManualSnapshotRetentionPeriod(int value) { SetManualSnapshotRetentionPeriod(value); return *this;} /** *

The name of the snapshot copy grant.

*/ inline const Aws::String& GetSnapshotCopyGrantName() const{ return m_snapshotCopyGrantName; } /** *

The name of the snapshot copy grant.

*/ inline bool SnapshotCopyGrantNameHasBeenSet() const { return m_snapshotCopyGrantNameHasBeenSet; } /** *

The name of the snapshot copy grant.

*/ inline void SetSnapshotCopyGrantName(const Aws::String& value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName = value; } /** *

The name of the snapshot copy grant.

*/ inline void SetSnapshotCopyGrantName(Aws::String&& value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName = std::move(value); } /** *

The name of the snapshot copy grant.

*/ inline void SetSnapshotCopyGrantName(const char* value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName.assign(value); } /** *

The name of the snapshot copy grant.

*/ inline ClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(const Aws::String& value) { SetSnapshotCopyGrantName(value); return *this;} /** *

The name of the snapshot copy grant.

*/ inline ClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(Aws::String&& value) { SetSnapshotCopyGrantName(std::move(value)); return *this;} /** *

The name of the snapshot copy grant.

*/ inline ClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(const char* value) { SetSnapshotCopyGrantName(value); return *this;} private: Aws::String m_destinationRegion; bool m_destinationRegionHasBeenSet = false; long long m_retentionPeriod; bool m_retentionPeriodHasBeenSet = false; int m_manualSnapshotRetentionPeriod; bool m_manualSnapshotRetentionPeriodHasBeenSet = false; Aws::String m_snapshotCopyGrantName; bool m_snapshotCopyGrantNameHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws