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

Provides details about an array of BackupRule objects, each of * which specifies a scheduled task that is used to back up a selection of * resources.

See Also:

AWS * API Reference

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

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline const Aws::String& GetTargetBackupVault() const{ return m_targetBackupVault; } /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline bool TargetBackupVaultHasBeenSet() const { return m_targetBackupVaultHasBeenSet; } /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline void SetTargetBackupVault(const Aws::String& value) { m_targetBackupVaultHasBeenSet = true; m_targetBackupVault = value; } /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline void SetTargetBackupVault(Aws::String&& value) { m_targetBackupVaultHasBeenSet = true; m_targetBackupVault = std::move(value); } /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline void SetTargetBackupVault(const char* value) { m_targetBackupVaultHasBeenSet = true; m_targetBackupVault.assign(value); } /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline AwsBackupBackupPlanRuleDetails& WithTargetBackupVault(const Aws::String& value) { SetTargetBackupVault(value); return *this;} /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline AwsBackupBackupPlanRuleDetails& WithTargetBackupVault(Aws::String&& value) { SetTargetBackupVault(std::move(value)); return *this;} /** *

The name of a logical container where backups are stored. Backup vaults are * identified by names that are unique to the Amazon Web Services account used to * create them and the Amazon Web Services Region where they are created. They * consist of letters, numbers, and hyphens.

*/ inline AwsBackupBackupPlanRuleDetails& WithTargetBackupVault(const char* value) { SetTargetBackupVault(value); return *this;} /** *

A value in minutes after a backup is scheduled before a job will be canceled * if it doesn't start successfully.

*/ inline long long GetStartWindowMinutes() const{ return m_startWindowMinutes; } /** *

A value in minutes after a backup is scheduled before a job will be canceled * if it doesn't start successfully.

*/ inline bool StartWindowMinutesHasBeenSet() const { return m_startWindowMinutesHasBeenSet; } /** *

A value in minutes after a backup is scheduled before a job will be canceled * if it doesn't start successfully.

*/ inline void SetStartWindowMinutes(long long value) { m_startWindowMinutesHasBeenSet = true; m_startWindowMinutes = value; } /** *

A value in minutes after a backup is scheduled before a job will be canceled * if it doesn't start successfully.

*/ inline AwsBackupBackupPlanRuleDetails& WithStartWindowMinutes(long long value) { SetStartWindowMinutes(value); return *this;} /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline const Aws::String& GetScheduleExpression() const{ return m_scheduleExpression; } /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline bool ScheduleExpressionHasBeenSet() const { return m_scheduleExpressionHasBeenSet; } /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline void SetScheduleExpression(const Aws::String& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = value; } /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline void SetScheduleExpression(Aws::String&& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = std::move(value); } /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline void SetScheduleExpression(const char* value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression.assign(value); } /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline AwsBackupBackupPlanRuleDetails& WithScheduleExpression(const Aws::String& value) { SetScheduleExpression(value); return *this;} /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline AwsBackupBackupPlanRuleDetails& WithScheduleExpression(Aws::String&& value) { SetScheduleExpression(std::move(value)); return *this;} /** *

A cron expression in UTC specifying when Backup initiates a backup job.

*/ inline AwsBackupBackupPlanRuleDetails& WithScheduleExpression(const char* value) { SetScheduleExpression(value); return *this;} /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline const Aws::String& GetRuleName() const{ return m_ruleName; } /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline bool RuleNameHasBeenSet() const { return m_ruleNameHasBeenSet; } /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline void SetRuleName(const Aws::String& value) { m_ruleNameHasBeenSet = true; m_ruleName = value; } /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline void SetRuleName(Aws::String&& value) { m_ruleNameHasBeenSet = true; m_ruleName = std::move(value); } /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline void SetRuleName(const char* value) { m_ruleNameHasBeenSet = true; m_ruleName.assign(value); } /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleName(const Aws::String& value) { SetRuleName(value); return *this;} /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleName(Aws::String&& value) { SetRuleName(std::move(value)); return *this;} /** *

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' * characters.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleName(const char* value) { SetRuleName(value); return *this;} /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline const Aws::String& GetRuleId() const{ return m_ruleId; } /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline bool RuleIdHasBeenSet() const { return m_ruleIdHasBeenSet; } /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline void SetRuleId(const Aws::String& value) { m_ruleIdHasBeenSet = true; m_ruleId = value; } /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline void SetRuleId(Aws::String&& value) { m_ruleIdHasBeenSet = true; m_ruleId = std::move(value); } /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline void SetRuleId(const char* value) { m_ruleIdHasBeenSet = true; m_ruleId.assign(value); } /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleId(const Aws::String& value) { SetRuleId(value); return *this;} /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleId(Aws::String&& value) { SetRuleId(std::move(value)); return *this;} /** *

Uniquely identifies a rule that is used to schedule the backup of a selection * of resources.

*/ inline AwsBackupBackupPlanRuleDetails& WithRuleId(const char* value) { SetRuleId(value); return *this;} /** *

Specifies whether Backup creates continuous backups capable of point-in-time * restore (PITR).

*/ inline bool GetEnableContinuousBackup() const{ return m_enableContinuousBackup; } /** *

Specifies whether Backup creates continuous backups capable of point-in-time * restore (PITR).

*/ inline bool EnableContinuousBackupHasBeenSet() const { return m_enableContinuousBackupHasBeenSet; } /** *

Specifies whether Backup creates continuous backups capable of point-in-time * restore (PITR).

*/ inline void SetEnableContinuousBackup(bool value) { m_enableContinuousBackupHasBeenSet = true; m_enableContinuousBackup = value; } /** *

Specifies whether Backup creates continuous backups capable of point-in-time * restore (PITR).

*/ inline AwsBackupBackupPlanRuleDetails& WithEnableContinuousBackup(bool value) { SetEnableContinuousBackup(value); return *this;} /** *

A value in minutes after a backup job is successfully started before it must * be completed, or it is canceled by Backup.

*/ inline long long GetCompletionWindowMinutes() const{ return m_completionWindowMinutes; } /** *

A value in minutes after a backup job is successfully started before it must * be completed, or it is canceled by Backup.

*/ inline bool CompletionWindowMinutesHasBeenSet() const { return m_completionWindowMinutesHasBeenSet; } /** *

A value in minutes after a backup job is successfully started before it must * be completed, or it is canceled by Backup.

*/ inline void SetCompletionWindowMinutes(long long value) { m_completionWindowMinutesHasBeenSet = true; m_completionWindowMinutes = value; } /** *

A value in minutes after a backup job is successfully started before it must * be completed, or it is canceled by Backup.

*/ inline AwsBackupBackupPlanRuleDetails& WithCompletionWindowMinutes(long long value) { SetCompletionWindowMinutes(value); return *this;} /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline const Aws::Vector& GetCopyActions() const{ return m_copyActions; } /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline bool CopyActionsHasBeenSet() const { return m_copyActionsHasBeenSet; } /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline void SetCopyActions(const Aws::Vector& value) { m_copyActionsHasBeenSet = true; m_copyActions = value; } /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline void SetCopyActions(Aws::Vector&& value) { m_copyActionsHasBeenSet = true; m_copyActions = std::move(value); } /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline AwsBackupBackupPlanRuleDetails& WithCopyActions(const Aws::Vector& value) { SetCopyActions(value); return *this;} /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline AwsBackupBackupPlanRuleDetails& WithCopyActions(Aws::Vector&& value) { SetCopyActions(std::move(value)); return *this;} /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline AwsBackupBackupPlanRuleDetails& AddCopyActions(const AwsBackupBackupPlanRuleCopyActionsDetails& value) { m_copyActionsHasBeenSet = true; m_copyActions.push_back(value); return *this; } /** *

An array of CopyAction objects, each of which contains details * of the copy operation.

*/ inline AwsBackupBackupPlanRuleDetails& AddCopyActions(AwsBackupBackupPlanRuleCopyActionsDetails&& value) { m_copyActionsHasBeenSet = true; m_copyActions.push_back(std::move(value)); return *this; } /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline const AwsBackupBackupPlanLifecycleDetails& GetLifecycle() const{ return m_lifecycle; } /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline bool LifecycleHasBeenSet() const { return m_lifecycleHasBeenSet; } /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline void SetLifecycle(const AwsBackupBackupPlanLifecycleDetails& value) { m_lifecycleHasBeenSet = true; m_lifecycle = value; } /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline void SetLifecycle(AwsBackupBackupPlanLifecycleDetails&& value) { m_lifecycleHasBeenSet = true; m_lifecycle = std::move(value); } /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline AwsBackupBackupPlanRuleDetails& WithLifecycle(const AwsBackupBackupPlanLifecycleDetails& value) { SetLifecycle(value); return *this;} /** *

Defines when a protected resource is transitioned to cold storage and when it * expires. Backup transitions and expires backups automatically according to the * lifecycle that you define. If you do not specify a lifecycle, Backup applies the * lifecycle policy of the source backup to the destination backup.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days.

*/ inline AwsBackupBackupPlanRuleDetails& WithLifecycle(AwsBackupBackupPlanLifecycleDetails&& value) { SetLifecycle(std::move(value)); return *this;} private: Aws::String m_targetBackupVault; bool m_targetBackupVaultHasBeenSet = false; long long m_startWindowMinutes; bool m_startWindowMinutesHasBeenSet = false; Aws::String m_scheduleExpression; bool m_scheduleExpressionHasBeenSet = false; Aws::String m_ruleName; bool m_ruleNameHasBeenSet = false; Aws::String m_ruleId; bool m_ruleIdHasBeenSet = false; bool m_enableContinuousBackup; bool m_enableContinuousBackupHasBeenSet = false; long long m_completionWindowMinutes; bool m_completionWindowMinutesHasBeenSet = false; Aws::Vector m_copyActions; bool m_copyActionsHasBeenSet = false; AwsBackupBackupPlanLifecycleDetails m_lifecycle; bool m_lifecycleHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws