This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-dlm/include/aws/dlm/model/Schedule.h

397 lines
14 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/dlm/DLM_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/dlm/model/CreateRule.h>
#include <aws/dlm/model/RetainRule.h>
#include <aws/dlm/model/FastRestoreRule.h>
#include <aws/dlm/model/Tag.h>
#include <aws/dlm/model/CrossRegionCopyRule.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace DLM
{
namespace Model
{
/**
* <p>Specifies a backup schedule.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/Schedule">AWS API
* Reference</a></p>
*/
class AWS_DLM_API Schedule
{
public:
Schedule();
Schedule(Aws::Utils::Json::JsonView jsonValue);
Schedule& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p>The name of the schedule.</p>
*/
inline const Aws::String& GetName() const{ return m_name; }
/**
* <p>The name of the schedule.</p>
*/
inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
/**
* <p>The name of the schedule.</p>
*/
inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
/**
* <p>The name of the schedule.</p>
*/
inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
/**
* <p>The name of the schedule.</p>
*/
inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
/**
* <p>The name of the schedule.</p>
*/
inline Schedule& WithName(const Aws::String& value) { SetName(value); return *this;}
/**
* <p>The name of the schedule.</p>
*/
inline Schedule& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
/**
* <p>The name of the schedule.</p>
*/
inline Schedule& WithName(const char* value) { SetName(value); return *this;}
/**
* <p>Copy all user-defined tags on a source volume to snapshots of the volume
* created by this policy.</p>
*/
inline bool GetCopyTags() const{ return m_copyTags; }
/**
* <p>Copy all user-defined tags on a source volume to snapshots of the volume
* created by this policy.</p>
*/
inline bool CopyTagsHasBeenSet() const { return m_copyTagsHasBeenSet; }
/**
* <p>Copy all user-defined tags on a source volume to snapshots of the volume
* created by this policy.</p>
*/
inline void SetCopyTags(bool value) { m_copyTagsHasBeenSet = true; m_copyTags = value; }
/**
* <p>Copy all user-defined tags on a source volume to snapshots of the volume
* created by this policy.</p>
*/
inline Schedule& WithCopyTags(bool value) { SetCopyTags(value); return *this;}
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline const Aws::Vector<Tag>& GetTagsToAdd() const{ return m_tagsToAdd; }
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline bool TagsToAddHasBeenSet() const { return m_tagsToAddHasBeenSet; }
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline void SetTagsToAdd(const Aws::Vector<Tag>& value) { m_tagsToAddHasBeenSet = true; m_tagsToAdd = value; }
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline void SetTagsToAdd(Aws::Vector<Tag>&& value) { m_tagsToAddHasBeenSet = true; m_tagsToAdd = std::move(value); }
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline Schedule& WithTagsToAdd(const Aws::Vector<Tag>& value) { SetTagsToAdd(value); return *this;}
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline Schedule& WithTagsToAdd(Aws::Vector<Tag>&& value) { SetTagsToAdd(std::move(value)); return *this;}
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline Schedule& AddTagsToAdd(const Tag& value) { m_tagsToAddHasBeenSet = true; m_tagsToAdd.push_back(value); return *this; }
/**
* <p>The tags to apply to policy-created resources. These user-defined tags are in
* addition to the AWS-added lifecycle tags.</p>
*/
inline Schedule& AddTagsToAdd(Tag&& value) { m_tagsToAddHasBeenSet = true; m_tagsToAdd.push_back(std::move(value)); return *this; }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline const Aws::Vector<Tag>& GetVariableTags() const{ return m_variableTags; }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline bool VariableTagsHasBeenSet() const { return m_variableTagsHasBeenSet; }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline void SetVariableTags(const Aws::Vector<Tag>& value) { m_variableTagsHasBeenSet = true; m_variableTags = value; }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline void SetVariableTags(Aws::Vector<Tag>&& value) { m_variableTagsHasBeenSet = true; m_variableTags = std::move(value); }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline Schedule& WithVariableTags(const Aws::Vector<Tag>& value) { SetVariableTags(value); return *this;}
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline Schedule& WithVariableTags(Aws::Vector<Tag>&& value) { SetVariableTags(std::move(value)); return *this;}
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline Schedule& AddVariableTags(const Tag& value) { m_variableTagsHasBeenSet = true; m_variableTags.push_back(value); return *this; }
/**
* <p>A collection of key/value pairs with values determined dynamically when the
* policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in
* one of the two following formats: <code>$(instance-id)</code> or
* <code>$(timestamp)</code>. Variable tags are only valid for EBS Snapshot
* Management Instance policies.</p>
*/
inline Schedule& AddVariableTags(Tag&& value) { m_variableTagsHasBeenSet = true; m_variableTags.push_back(std::move(value)); return *this; }
/**
* <p>The creation rule.</p>
*/
inline const CreateRule& GetCreateRule() const{ return m_createRule; }
/**
* <p>The creation rule.</p>
*/
inline bool CreateRuleHasBeenSet() const { return m_createRuleHasBeenSet; }
/**
* <p>The creation rule.</p>
*/
inline void SetCreateRule(const CreateRule& value) { m_createRuleHasBeenSet = true; m_createRule = value; }
/**
* <p>The creation rule.</p>
*/
inline void SetCreateRule(CreateRule&& value) { m_createRuleHasBeenSet = true; m_createRule = std::move(value); }
/**
* <p>The creation rule.</p>
*/
inline Schedule& WithCreateRule(const CreateRule& value) { SetCreateRule(value); return *this;}
/**
* <p>The creation rule.</p>
*/
inline Schedule& WithCreateRule(CreateRule&& value) { SetCreateRule(std::move(value)); return *this;}
/**
* <p>The retention rule.</p>
*/
inline const RetainRule& GetRetainRule() const{ return m_retainRule; }
/**
* <p>The retention rule.</p>
*/
inline bool RetainRuleHasBeenSet() const { return m_retainRuleHasBeenSet; }
/**
* <p>The retention rule.</p>
*/
inline void SetRetainRule(const RetainRule& value) { m_retainRuleHasBeenSet = true; m_retainRule = value; }
/**
* <p>The retention rule.</p>
*/
inline void SetRetainRule(RetainRule&& value) { m_retainRuleHasBeenSet = true; m_retainRule = std::move(value); }
/**
* <p>The retention rule.</p>
*/
inline Schedule& WithRetainRule(const RetainRule& value) { SetRetainRule(value); return *this;}
/**
* <p>The retention rule.</p>
*/
inline Schedule& WithRetainRule(RetainRule&& value) { SetRetainRule(std::move(value)); return *this;}
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline const FastRestoreRule& GetFastRestoreRule() const{ return m_fastRestoreRule; }
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline bool FastRestoreRuleHasBeenSet() const { return m_fastRestoreRuleHasBeenSet; }
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline void SetFastRestoreRule(const FastRestoreRule& value) { m_fastRestoreRuleHasBeenSet = true; m_fastRestoreRule = value; }
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline void SetFastRestoreRule(FastRestoreRule&& value) { m_fastRestoreRuleHasBeenSet = true; m_fastRestoreRule = std::move(value); }
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline Schedule& WithFastRestoreRule(const FastRestoreRule& value) { SetFastRestoreRule(value); return *this;}
/**
* <p>The rule for enabling fast snapshot restore.</p>
*/
inline Schedule& WithFastRestoreRule(FastRestoreRule&& value) { SetFastRestoreRule(std::move(value)); return *this;}
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline const Aws::Vector<CrossRegionCopyRule>& GetCrossRegionCopyRules() const{ return m_crossRegionCopyRules; }
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline bool CrossRegionCopyRulesHasBeenSet() const { return m_crossRegionCopyRulesHasBeenSet; }
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline void SetCrossRegionCopyRules(const Aws::Vector<CrossRegionCopyRule>& value) { m_crossRegionCopyRulesHasBeenSet = true; m_crossRegionCopyRules = value; }
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline void SetCrossRegionCopyRules(Aws::Vector<CrossRegionCopyRule>&& value) { m_crossRegionCopyRulesHasBeenSet = true; m_crossRegionCopyRules = std::move(value); }
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline Schedule& WithCrossRegionCopyRules(const Aws::Vector<CrossRegionCopyRule>& value) { SetCrossRegionCopyRules(value); return *this;}
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline Schedule& WithCrossRegionCopyRules(Aws::Vector<CrossRegionCopyRule>&& value) { SetCrossRegionCopyRules(std::move(value)); return *this;}
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline Schedule& AddCrossRegionCopyRules(const CrossRegionCopyRule& value) { m_crossRegionCopyRulesHasBeenSet = true; m_crossRegionCopyRules.push_back(value); return *this; }
/**
* <p>The rule for cross-Region snapshot copies.</p>
*/
inline Schedule& AddCrossRegionCopyRules(CrossRegionCopyRule&& value) { m_crossRegionCopyRulesHasBeenSet = true; m_crossRegionCopyRules.push_back(std::move(value)); return *this; }
private:
Aws::String m_name;
bool m_nameHasBeenSet;
bool m_copyTags;
bool m_copyTagsHasBeenSet;
Aws::Vector<Tag> m_tagsToAdd;
bool m_tagsToAddHasBeenSet;
Aws::Vector<Tag> m_variableTags;
bool m_variableTagsHasBeenSet;
CreateRule m_createRule;
bool m_createRuleHasBeenSet;
RetainRule m_retainRule;
bool m_retainRuleHasBeenSet;
FastRestoreRule m_fastRestoreRule;
bool m_fastRestoreRuleHasBeenSet;
Aws::Vector<CrossRegionCopyRule> m_crossRegionCopyRules;
bool m_crossRegionCopyRulesHasBeenSet;
};
} // namespace Model
} // namespace DLM
} // namespace Aws