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

[Event-based policies only] Specifies a cross-Region copy action for * event-based policies.

To specify a cross-Region copy rule for * snapshot and AMI policies, use CrossRegionCopyRule.

See * Also:

AWS * API Reference

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

The target Region.

*/ inline const Aws::String& GetTarget() const{ return m_target; } /** *

The target Region.

*/ inline bool TargetHasBeenSet() const { return m_targetHasBeenSet; } /** *

The target Region.

*/ inline void SetTarget(const Aws::String& value) { m_targetHasBeenSet = true; m_target = value; } /** *

The target Region.

*/ inline void SetTarget(Aws::String&& value) { m_targetHasBeenSet = true; m_target = std::move(value); } /** *

The target Region.

*/ inline void SetTarget(const char* value) { m_targetHasBeenSet = true; m_target.assign(value); } /** *

The target Region.

*/ inline CrossRegionCopyAction& WithTarget(const Aws::String& value) { SetTarget(value); return *this;} /** *

The target Region.

*/ inline CrossRegionCopyAction& WithTarget(Aws::String&& value) { SetTarget(std::move(value)); return *this;} /** *

The target Region.

*/ inline CrossRegionCopyAction& WithTarget(const char* value) { SetTarget(value); return *this;} /** *

The encryption settings for the copied snapshot.

*/ inline const EncryptionConfiguration& GetEncryptionConfiguration() const{ return m_encryptionConfiguration; } /** *

The encryption settings for the copied snapshot.

*/ inline bool EncryptionConfigurationHasBeenSet() const { return m_encryptionConfigurationHasBeenSet; } /** *

The encryption settings for the copied snapshot.

*/ inline void SetEncryptionConfiguration(const EncryptionConfiguration& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = value; } /** *

The encryption settings for the copied snapshot.

*/ inline void SetEncryptionConfiguration(EncryptionConfiguration&& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = std::move(value); } /** *

The encryption settings for the copied snapshot.

*/ inline CrossRegionCopyAction& WithEncryptionConfiguration(const EncryptionConfiguration& value) { SetEncryptionConfiguration(value); return *this;} /** *

The encryption settings for the copied snapshot.

*/ inline CrossRegionCopyAction& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;} inline const CrossRegionCopyRetainRule& GetRetainRule() const{ return m_retainRule; } inline bool RetainRuleHasBeenSet() const { return m_retainRuleHasBeenSet; } inline void SetRetainRule(const CrossRegionCopyRetainRule& value) { m_retainRuleHasBeenSet = true; m_retainRule = value; } inline void SetRetainRule(CrossRegionCopyRetainRule&& value) { m_retainRuleHasBeenSet = true; m_retainRule = std::move(value); } inline CrossRegionCopyAction& WithRetainRule(const CrossRegionCopyRetainRule& value) { SetRetainRule(value); return *this;} inline CrossRegionCopyAction& WithRetainRule(CrossRegionCopyRetainRule&& value) { SetRetainRule(std::move(value)); return *this;} private: Aws::String m_target; bool m_targetHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; CrossRegionCopyRetainRule m_retainRule; bool m_retainRuleHasBeenSet = false; }; } // namespace Model } // namespace DLM } // namespace Aws