/** * 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 Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DLM { namespace Model { /** *

[Snapshot and AMI policies only] Specifies optional parameters for * snapshot and AMI policies. The set of valid parameters depends on the * combination of policy type and target resource type.

If you choose to * exclude boot volumes and you specify tags that consequently exclude all of the * additional data volumes attached to an instance, then Amazon Data Lifecycle * Manager will not create any snapshots for the affected instance, and it will * emit a SnapshotsCreateFailed Amazon CloudWatch metric. For more * information, see Monitor * your policies using Amazon CloudWatch.

See Also:

AWS API * Reference

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

[Snapshot policies that target instances only] Indicates whether to * exclude the root volume from multi-volume snapshot sets. The default is * false. If you specify true, then the root volumes * attached to targeted instances will be excluded from the multi-volume snapshot * sets created by the policy.

*/ inline bool GetExcludeBootVolume() const{ return m_excludeBootVolume; } /** *

[Snapshot policies that target instances only] Indicates whether to * exclude the root volume from multi-volume snapshot sets. The default is * false. If you specify true, then the root volumes * attached to targeted instances will be excluded from the multi-volume snapshot * sets created by the policy.

*/ inline bool ExcludeBootVolumeHasBeenSet() const { return m_excludeBootVolumeHasBeenSet; } /** *

[Snapshot policies that target instances only] Indicates whether to * exclude the root volume from multi-volume snapshot sets. The default is * false. If you specify true, then the root volumes * attached to targeted instances will be excluded from the multi-volume snapshot * sets created by the policy.

*/ inline void SetExcludeBootVolume(bool value) { m_excludeBootVolumeHasBeenSet = true; m_excludeBootVolume = value; } /** *

[Snapshot policies that target instances only] Indicates whether to * exclude the root volume from multi-volume snapshot sets. The default is * false. If you specify true, then the root volumes * attached to targeted instances will be excluded from the multi-volume snapshot * sets created by the policy.

*/ inline Parameters& WithExcludeBootVolume(bool value) { SetExcludeBootVolume(value); return *this;} /** *

[AMI policies only] Indicates whether targeted instances are rebooted * when the lifecycle policy runs. true indicates that targeted * instances are not rebooted when the policy runs. false indicates * that target instances are rebooted when the policy runs. The default is * true (instances are not rebooted).

*/ inline bool GetNoReboot() const{ return m_noReboot; } /** *

[AMI policies only] Indicates whether targeted instances are rebooted * when the lifecycle policy runs. true indicates that targeted * instances are not rebooted when the policy runs. false indicates * that target instances are rebooted when the policy runs. The default is * true (instances are not rebooted).

*/ inline bool NoRebootHasBeenSet() const { return m_noRebootHasBeenSet; } /** *

[AMI policies only] Indicates whether targeted instances are rebooted * when the lifecycle policy runs. true indicates that targeted * instances are not rebooted when the policy runs. false indicates * that target instances are rebooted when the policy runs. The default is * true (instances are not rebooted).

*/ inline void SetNoReboot(bool value) { m_noRebootHasBeenSet = true; m_noReboot = value; } /** *

[AMI policies only] Indicates whether targeted instances are rebooted * when the lifecycle policy runs. true indicates that targeted * instances are not rebooted when the policy runs. false indicates * that target instances are rebooted when the policy runs. The default is * true (instances are not rebooted).

*/ inline Parameters& WithNoReboot(bool value) { SetNoReboot(value); return *this;} /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline const Aws::Vector& GetExcludeDataVolumeTags() const{ return m_excludeDataVolumeTags; } /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline bool ExcludeDataVolumeTagsHasBeenSet() const { return m_excludeDataVolumeTagsHasBeenSet; } /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline void SetExcludeDataVolumeTags(const Aws::Vector& value) { m_excludeDataVolumeTagsHasBeenSet = true; m_excludeDataVolumeTags = value; } /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline void SetExcludeDataVolumeTags(Aws::Vector&& value) { m_excludeDataVolumeTagsHasBeenSet = true; m_excludeDataVolumeTags = std::move(value); } /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline Parameters& WithExcludeDataVolumeTags(const Aws::Vector& value) { SetExcludeDataVolumeTags(value); return *this;} /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline Parameters& WithExcludeDataVolumeTags(Aws::Vector&& value) { SetExcludeDataVolumeTags(std::move(value)); return *this;} /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline Parameters& AddExcludeDataVolumeTags(const Tag& value) { m_excludeDataVolumeTagsHasBeenSet = true; m_excludeDataVolumeTags.push_back(value); return *this; } /** *

[Snapshot policies that target instances only] The tags used to * identify data (non-root) volumes to exclude from multi-volume snapshot sets.

*

If you create a snapshot lifecycle policy that targets instances and you * specify tags for this parameter, then data volumes with the specified tags that * are attached to targeted instances will be excluded from the multi-volume * snapshot sets created by the policy.

*/ inline Parameters& AddExcludeDataVolumeTags(Tag&& value) { m_excludeDataVolumeTagsHasBeenSet = true; m_excludeDataVolumeTags.push_back(std::move(value)); return *this; } private: bool m_excludeBootVolume; bool m_excludeBootVolumeHasBeenSet = false; bool m_noReboot; bool m_noRebootHasBeenSet = false; Aws::Vector m_excludeDataVolumeTags; bool m_excludeDataVolumeTagsHasBeenSet = false; }; } // namespace Model } // namespace DLM } // namespace Aws