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

See Also:

AWS * API Reference

*/ class EnableSnapshotCopyRequest : public RedshiftRequest { public: AWS_REDSHIFT_API EnableSnapshotCopyRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "EnableSnapshotCopy"; } AWS_REDSHIFT_API Aws::String SerializePayload() const override; protected: AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline const Aws::String& GetClusterIdentifier() const{ return m_clusterIdentifier; } /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; } /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline void SetClusterIdentifier(const Aws::String& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = value; } /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline void SetClusterIdentifier(Aws::String&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::move(value); } /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline void SetClusterIdentifier(const char* value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier.assign(value); } /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline EnableSnapshotCopyRequest& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;} /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline EnableSnapshotCopyRequest& WithClusterIdentifier(Aws::String&& value) { SetClusterIdentifier(std::move(value)); return *this;} /** *

The unique identifier of the source cluster to copy snapshots from.

*

Constraints: Must be the valid name of an existing cluster that does not * already have cross-region snapshot copy enabled.

*/ inline EnableSnapshotCopyRequest& WithClusterIdentifier(const char* value) { SetClusterIdentifier(value); return *this;} /** *

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The destination Amazon Web Services Region that you want to copy snapshots * to.

Constraints: Must be the name of a valid Amazon Web Services Region. * For more information, see Regions * and Endpoints in the Amazon Web Services General Reference.

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

The number of days to retain automated snapshots in the destination region * after they are copied from the source region.

Default: 7.

*

Constraints: Must be at least 1 and no more than 35.

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

The number of days to retain automated snapshots in the destination region * after they are copied from the source region.

Default: 7.

*

Constraints: Must be at least 1 and no more than 35.

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

The number of days to retain automated snapshots in the destination region * after they are copied from the source region.

Default: 7.

*

Constraints: Must be at least 1 and no more than 35.

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

The number of days to retain automated snapshots in the destination region * after they are copied from the source region.

Default: 7.

*

Constraints: Must be at least 1 and no more than 35.

*/ inline EnableSnapshotCopyRequest& WithRetentionPeriod(int value) { SetRetentionPeriod(value); return *this;} /** *

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

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

The name of the snapshot copy grant to use when snapshots of an Amazon Web * Services KMS-encrypted cluster are copied to the destination region.

*/ inline EnableSnapshotCopyRequest& WithSnapshotCopyGrantName(const char* value) { SetSnapshotCopyGrantName(value); return *this;} /** *

The number of days to retain newly copied snapshots in the destination Amazon * Web Services Region after they are copied from the source Amazon Web Services * 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 to retain newly copied snapshots in the destination Amazon * Web Services Region after they are copied from the source Amazon Web Services * 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 to retain newly copied snapshots in the destination Amazon * Web Services Region after they are copied from the source Amazon Web Services * 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 to retain newly copied snapshots in the destination Amazon * Web Services Region after they are copied from the source Amazon Web Services * 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 EnableSnapshotCopyRequest& WithManualSnapshotRetentionPeriod(int value) { SetManualSnapshotRetentionPeriod(value); return *this;} private: Aws::String m_clusterIdentifier; bool m_clusterIdentifierHasBeenSet = false; Aws::String m_destinationRegion; bool m_destinationRegionHasBeenSet = false; int m_retentionPeriod; bool m_retentionPeriodHasBeenSet = false; Aws::String m_snapshotCopyGrantName; bool m_snapshotCopyGrantNameHasBeenSet = false; int m_manualSnapshotRetentionPeriod; bool m_manualSnapshotRetentionPeriodHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws