1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/backup/Backup_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/backup/model/BackupRuleInput.h>
11 #include <aws/backup/model/AdvancedBackupSetting.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace Backup
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Contains an optional backup plan display name and an array of
31    * <code>BackupRule</code> objects, each of which specifies a backup rule. Each
32    * rule in a backup plan is a separate scheduled task. </p><p><h3>See Also:</h3>
33    * <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/BackupPlanInput">AWS
35    * API Reference</a></p>
36    */
37   class AWS_BACKUP_API BackupPlanInput
38   {
39   public:
40     BackupPlanInput();
41     BackupPlanInput(Aws::Utils::Json::JsonView jsonValue);
42     BackupPlanInput& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The optional display name of a backup plan.</p>
48      */
GetBackupPlanName()49     inline const Aws::String& GetBackupPlanName() const{ return m_backupPlanName; }
50 
51     /**
52      * <p>The optional display name of a backup plan.</p>
53      */
BackupPlanNameHasBeenSet()54     inline bool BackupPlanNameHasBeenSet() const { return m_backupPlanNameHasBeenSet; }
55 
56     /**
57      * <p>The optional display name of a backup plan.</p>
58      */
SetBackupPlanName(const Aws::String & value)59     inline void SetBackupPlanName(const Aws::String& value) { m_backupPlanNameHasBeenSet = true; m_backupPlanName = value; }
60 
61     /**
62      * <p>The optional display name of a backup plan.</p>
63      */
SetBackupPlanName(Aws::String && value)64     inline void SetBackupPlanName(Aws::String&& value) { m_backupPlanNameHasBeenSet = true; m_backupPlanName = std::move(value); }
65 
66     /**
67      * <p>The optional display name of a backup plan.</p>
68      */
SetBackupPlanName(const char * value)69     inline void SetBackupPlanName(const char* value) { m_backupPlanNameHasBeenSet = true; m_backupPlanName.assign(value); }
70 
71     /**
72      * <p>The optional display name of a backup plan.</p>
73      */
WithBackupPlanName(const Aws::String & value)74     inline BackupPlanInput& WithBackupPlanName(const Aws::String& value) { SetBackupPlanName(value); return *this;}
75 
76     /**
77      * <p>The optional display name of a backup plan.</p>
78      */
WithBackupPlanName(Aws::String && value)79     inline BackupPlanInput& WithBackupPlanName(Aws::String&& value) { SetBackupPlanName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The optional display name of a backup plan.</p>
83      */
WithBackupPlanName(const char * value)84     inline BackupPlanInput& WithBackupPlanName(const char* value) { SetBackupPlanName(value); return *this;}
85 
86 
87     /**
88      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
89      * scheduled task that is used to back up a selection of resources.</p>
90      */
GetRules()91     inline const Aws::Vector<BackupRuleInput>& GetRules() const{ return m_rules; }
92 
93     /**
94      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
95      * scheduled task that is used to back up a selection of resources.</p>
96      */
RulesHasBeenSet()97     inline bool RulesHasBeenSet() const { return m_rulesHasBeenSet; }
98 
99     /**
100      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
101      * scheduled task that is used to back up a selection of resources.</p>
102      */
SetRules(const Aws::Vector<BackupRuleInput> & value)103     inline void SetRules(const Aws::Vector<BackupRuleInput>& value) { m_rulesHasBeenSet = true; m_rules = value; }
104 
105     /**
106      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
107      * scheduled task that is used to back up a selection of resources.</p>
108      */
SetRules(Aws::Vector<BackupRuleInput> && value)109     inline void SetRules(Aws::Vector<BackupRuleInput>&& value) { m_rulesHasBeenSet = true; m_rules = std::move(value); }
110 
111     /**
112      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
113      * scheduled task that is used to back up a selection of resources.</p>
114      */
WithRules(const Aws::Vector<BackupRuleInput> & value)115     inline BackupPlanInput& WithRules(const Aws::Vector<BackupRuleInput>& value) { SetRules(value); return *this;}
116 
117     /**
118      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
119      * scheduled task that is used to back up a selection of resources.</p>
120      */
WithRules(Aws::Vector<BackupRuleInput> && value)121     inline BackupPlanInput& WithRules(Aws::Vector<BackupRuleInput>&& value) { SetRules(std::move(value)); return *this;}
122 
123     /**
124      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
125      * scheduled task that is used to back up a selection of resources.</p>
126      */
AddRules(const BackupRuleInput & value)127     inline BackupPlanInput& AddRules(const BackupRuleInput& value) { m_rulesHasBeenSet = true; m_rules.push_back(value); return *this; }
128 
129     /**
130      * <p>An array of <code>BackupRule</code> objects, each of which specifies a
131      * scheduled task that is used to back up a selection of resources.</p>
132      */
AddRules(BackupRuleInput && value)133     inline BackupPlanInput& AddRules(BackupRuleInput&& value) { m_rulesHasBeenSet = true; m_rules.push_back(std::move(value)); return *this; }
134 
135 
136     /**
137      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
138      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
139      * jobs.</p>
140      */
GetAdvancedBackupSettings()141     inline const Aws::Vector<AdvancedBackupSetting>& GetAdvancedBackupSettings() const{ return m_advancedBackupSettings; }
142 
143     /**
144      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
145      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
146      * jobs.</p>
147      */
AdvancedBackupSettingsHasBeenSet()148     inline bool AdvancedBackupSettingsHasBeenSet() const { return m_advancedBackupSettingsHasBeenSet; }
149 
150     /**
151      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
152      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
153      * jobs.</p>
154      */
SetAdvancedBackupSettings(const Aws::Vector<AdvancedBackupSetting> & value)155     inline void SetAdvancedBackupSettings(const Aws::Vector<AdvancedBackupSetting>& value) { m_advancedBackupSettingsHasBeenSet = true; m_advancedBackupSettings = value; }
156 
157     /**
158      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
159      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
160      * jobs.</p>
161      */
SetAdvancedBackupSettings(Aws::Vector<AdvancedBackupSetting> && value)162     inline void SetAdvancedBackupSettings(Aws::Vector<AdvancedBackupSetting>&& value) { m_advancedBackupSettingsHasBeenSet = true; m_advancedBackupSettings = std::move(value); }
163 
164     /**
165      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
166      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
167      * jobs.</p>
168      */
WithAdvancedBackupSettings(const Aws::Vector<AdvancedBackupSetting> & value)169     inline BackupPlanInput& WithAdvancedBackupSettings(const Aws::Vector<AdvancedBackupSetting>& value) { SetAdvancedBackupSettings(value); return *this;}
170 
171     /**
172      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
173      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
174      * jobs.</p>
175      */
WithAdvancedBackupSettings(Aws::Vector<AdvancedBackupSetting> && value)176     inline BackupPlanInput& WithAdvancedBackupSettings(Aws::Vector<AdvancedBackupSetting>&& value) { SetAdvancedBackupSettings(std::move(value)); return *this;}
177 
178     /**
179      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
180      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
181      * jobs.</p>
182      */
AddAdvancedBackupSettings(const AdvancedBackupSetting & value)183     inline BackupPlanInput& AddAdvancedBackupSettings(const AdvancedBackupSetting& value) { m_advancedBackupSettingsHasBeenSet = true; m_advancedBackupSettings.push_back(value); return *this; }
184 
185     /**
186      * <p>Specifies a list of <code>BackupOptions</code> for each resource type. These
187      * settings are only available for Windows Volume Shadow Copy Service (VSS) backup
188      * jobs.</p>
189      */
AddAdvancedBackupSettings(AdvancedBackupSetting && value)190     inline BackupPlanInput& AddAdvancedBackupSettings(AdvancedBackupSetting&& value) { m_advancedBackupSettingsHasBeenSet = true; m_advancedBackupSettings.push_back(std::move(value)); return *this; }
191 
192   private:
193 
194     Aws::String m_backupPlanName;
195     bool m_backupPlanNameHasBeenSet;
196 
197     Aws::Vector<BackupRuleInput> m_rules;
198     bool m_rulesHasBeenSet;
199 
200     Aws::Vector<AdvancedBackupSetting> m_advancedBackupSettings;
201     bool m_advancedBackupSettingsHasBeenSet;
202   };
203 
204 } // namespace Model
205 } // namespace Backup
206 } // namespace Aws
207