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/iot/IoT_EXPORTS.h>
8 #include <aws/iot/model/AuditFrequency.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/iot/model/DayOfWeek.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace IoT
27 {
28 namespace Model
29 {
30   class AWS_IOT_API DescribeScheduledAuditResult
31   {
32   public:
33     DescribeScheduledAuditResult();
34     DescribeScheduledAuditResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35     DescribeScheduledAuditResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36 
37 
38     /**
39      * <p>How often the scheduled audit takes place, either one of <code>DAILY</code>,
40      * <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start
41      * time of each audit is determined by the system.</p>
42      */
GetFrequency()43     inline const AuditFrequency& GetFrequency() const{ return m_frequency; }
44 
45     /**
46      * <p>How often the scheduled audit takes place, either one of <code>DAILY</code>,
47      * <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start
48      * time of each audit is determined by the system.</p>
49      */
SetFrequency(const AuditFrequency & value)50     inline void SetFrequency(const AuditFrequency& value) { m_frequency = value; }
51 
52     /**
53      * <p>How often the scheduled audit takes place, either one of <code>DAILY</code>,
54      * <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start
55      * time of each audit is determined by the system.</p>
56      */
SetFrequency(AuditFrequency && value)57     inline void SetFrequency(AuditFrequency&& value) { m_frequency = std::move(value); }
58 
59     /**
60      * <p>How often the scheduled audit takes place, either one of <code>DAILY</code>,
61      * <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start
62      * time of each audit is determined by the system.</p>
63      */
WithFrequency(const AuditFrequency & value)64     inline DescribeScheduledAuditResult& WithFrequency(const AuditFrequency& value) { SetFrequency(value); return *this;}
65 
66     /**
67      * <p>How often the scheduled audit takes place, either one of <code>DAILY</code>,
68      * <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start
69      * time of each audit is determined by the system.</p>
70      */
WithFrequency(AuditFrequency && value)71     inline DescribeScheduledAuditResult& WithFrequency(AuditFrequency&& value) { SetFrequency(std::move(value)); return *this;}
72 
73 
74     /**
75      * <p>The day of the month on which the scheduled audit takes place. This is will
76      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
77      * <code>29</code>-<code>31</code> are specified, and the month does not have that
78      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
79      */
GetDayOfMonth()80     inline const Aws::String& GetDayOfMonth() const{ return m_dayOfMonth; }
81 
82     /**
83      * <p>The day of the month on which the scheduled audit takes place. This is will
84      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
85      * <code>29</code>-<code>31</code> are specified, and the month does not have that
86      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
87      */
SetDayOfMonth(const Aws::String & value)88     inline void SetDayOfMonth(const Aws::String& value) { m_dayOfMonth = value; }
89 
90     /**
91      * <p>The day of the month on which the scheduled audit takes place. This is will
92      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
93      * <code>29</code>-<code>31</code> are specified, and the month does not have that
94      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
95      */
SetDayOfMonth(Aws::String && value)96     inline void SetDayOfMonth(Aws::String&& value) { m_dayOfMonth = std::move(value); }
97 
98     /**
99      * <p>The day of the month on which the scheduled audit takes place. This is will
100      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
101      * <code>29</code>-<code>31</code> are specified, and the month does not have that
102      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
103      */
SetDayOfMonth(const char * value)104     inline void SetDayOfMonth(const char* value) { m_dayOfMonth.assign(value); }
105 
106     /**
107      * <p>The day of the month on which the scheduled audit takes place. This is will
108      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
109      * <code>29</code>-<code>31</code> are specified, and the month does not have that
110      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
111      */
WithDayOfMonth(const Aws::String & value)112     inline DescribeScheduledAuditResult& WithDayOfMonth(const Aws::String& value) { SetDayOfMonth(value); return *this;}
113 
114     /**
115      * <p>The day of the month on which the scheduled audit takes place. This is will
116      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
117      * <code>29</code>-<code>31</code> are specified, and the month does not have that
118      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
119      */
WithDayOfMonth(Aws::String && value)120     inline DescribeScheduledAuditResult& WithDayOfMonth(Aws::String&& value) { SetDayOfMonth(std::move(value)); return *this;}
121 
122     /**
123      * <p>The day of the month on which the scheduled audit takes place. This is will
124      * be <code>1</code> through <code>31</code> or <code>LAST</code>. If days
125      * <code>29</code>-<code>31</code> are specified, and the month does not have that
126      * many days, the audit takes place on the <code>LAST</code> day of the month.</p>
127      */
WithDayOfMonth(const char * value)128     inline DescribeScheduledAuditResult& WithDayOfMonth(const char* value) { SetDayOfMonth(value); return *this;}
129 
130 
131     /**
132      * <p>The day of the week on which the scheduled audit takes place, either one of
133      * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>,
134      * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.</p>
135      */
GetDayOfWeek()136     inline const DayOfWeek& GetDayOfWeek() const{ return m_dayOfWeek; }
137 
138     /**
139      * <p>The day of the week on which the scheduled audit takes place, either one of
140      * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>,
141      * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.</p>
142      */
SetDayOfWeek(const DayOfWeek & value)143     inline void SetDayOfWeek(const DayOfWeek& value) { m_dayOfWeek = value; }
144 
145     /**
146      * <p>The day of the week on which the scheduled audit takes place, either one of
147      * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>,
148      * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.</p>
149      */
SetDayOfWeek(DayOfWeek && value)150     inline void SetDayOfWeek(DayOfWeek&& value) { m_dayOfWeek = std::move(value); }
151 
152     /**
153      * <p>The day of the week on which the scheduled audit takes place, either one of
154      * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>,
155      * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.</p>
156      */
WithDayOfWeek(const DayOfWeek & value)157     inline DescribeScheduledAuditResult& WithDayOfWeek(const DayOfWeek& value) { SetDayOfWeek(value); return *this;}
158 
159     /**
160      * <p>The day of the week on which the scheduled audit takes place, either one of
161      * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>,
162      * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.</p>
163      */
WithDayOfWeek(DayOfWeek && value)164     inline DescribeScheduledAuditResult& WithDayOfWeek(DayOfWeek&& value) { SetDayOfWeek(std::move(value)); return *this;}
165 
166 
167     /**
168      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
169      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
170      * list of all checks, including those that are enabled or use
171      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
172      * enabled.)</p>
173      */
GetTargetCheckNames()174     inline const Aws::Vector<Aws::String>& GetTargetCheckNames() const{ return m_targetCheckNames; }
175 
176     /**
177      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
178      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
179      * list of all checks, including those that are enabled or use
180      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
181      * enabled.)</p>
182      */
SetTargetCheckNames(const Aws::Vector<Aws::String> & value)183     inline void SetTargetCheckNames(const Aws::Vector<Aws::String>& value) { m_targetCheckNames = value; }
184 
185     /**
186      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
187      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
188      * list of all checks, including those that are enabled or use
189      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
190      * enabled.)</p>
191      */
SetTargetCheckNames(Aws::Vector<Aws::String> && value)192     inline void SetTargetCheckNames(Aws::Vector<Aws::String>&& value) { m_targetCheckNames = std::move(value); }
193 
194     /**
195      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
196      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
197      * list of all checks, including those that are enabled or use
198      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
199      * enabled.)</p>
200      */
WithTargetCheckNames(const Aws::Vector<Aws::String> & value)201     inline DescribeScheduledAuditResult& WithTargetCheckNames(const Aws::Vector<Aws::String>& value) { SetTargetCheckNames(value); return *this;}
202 
203     /**
204      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
205      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
206      * list of all checks, including those that are enabled or use
207      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
208      * enabled.)</p>
209      */
WithTargetCheckNames(Aws::Vector<Aws::String> && value)210     inline DescribeScheduledAuditResult& WithTargetCheckNames(Aws::Vector<Aws::String>&& value) { SetTargetCheckNames(std::move(value)); return *this;}
211 
212     /**
213      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
214      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
215      * list of all checks, including those that are enabled or use
216      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
217      * enabled.)</p>
218      */
AddTargetCheckNames(const Aws::String & value)219     inline DescribeScheduledAuditResult& AddTargetCheckNames(const Aws::String& value) { m_targetCheckNames.push_back(value); return *this; }
220 
221     /**
222      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
223      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
224      * list of all checks, including those that are enabled or use
225      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
226      * enabled.)</p>
227      */
AddTargetCheckNames(Aws::String && value)228     inline DescribeScheduledAuditResult& AddTargetCheckNames(Aws::String&& value) { m_targetCheckNames.push_back(std::move(value)); return *this; }
229 
230     /**
231      * <p>Which checks are performed during the scheduled audit. Checks must be enabled
232      * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the
233      * list of all checks, including those that are enabled or use
234      * <code>UpdateAccountAuditConfiguration</code> to select which checks are
235      * enabled.)</p>
236      */
AddTargetCheckNames(const char * value)237     inline DescribeScheduledAuditResult& AddTargetCheckNames(const char* value) { m_targetCheckNames.push_back(value); return *this; }
238 
239 
240     /**
241      * <p>The name of the scheduled audit.</p>
242      */
GetScheduledAuditName()243     inline const Aws::String& GetScheduledAuditName() const{ return m_scheduledAuditName; }
244 
245     /**
246      * <p>The name of the scheduled audit.</p>
247      */
SetScheduledAuditName(const Aws::String & value)248     inline void SetScheduledAuditName(const Aws::String& value) { m_scheduledAuditName = value; }
249 
250     /**
251      * <p>The name of the scheduled audit.</p>
252      */
SetScheduledAuditName(Aws::String && value)253     inline void SetScheduledAuditName(Aws::String&& value) { m_scheduledAuditName = std::move(value); }
254 
255     /**
256      * <p>The name of the scheduled audit.</p>
257      */
SetScheduledAuditName(const char * value)258     inline void SetScheduledAuditName(const char* value) { m_scheduledAuditName.assign(value); }
259 
260     /**
261      * <p>The name of the scheduled audit.</p>
262      */
WithScheduledAuditName(const Aws::String & value)263     inline DescribeScheduledAuditResult& WithScheduledAuditName(const Aws::String& value) { SetScheduledAuditName(value); return *this;}
264 
265     /**
266      * <p>The name of the scheduled audit.</p>
267      */
WithScheduledAuditName(Aws::String && value)268     inline DescribeScheduledAuditResult& WithScheduledAuditName(Aws::String&& value) { SetScheduledAuditName(std::move(value)); return *this;}
269 
270     /**
271      * <p>The name of the scheduled audit.</p>
272      */
WithScheduledAuditName(const char * value)273     inline DescribeScheduledAuditResult& WithScheduledAuditName(const char* value) { SetScheduledAuditName(value); return *this;}
274 
275 
276     /**
277      * <p>The ARN of the scheduled audit.</p>
278      */
GetScheduledAuditArn()279     inline const Aws::String& GetScheduledAuditArn() const{ return m_scheduledAuditArn; }
280 
281     /**
282      * <p>The ARN of the scheduled audit.</p>
283      */
SetScheduledAuditArn(const Aws::String & value)284     inline void SetScheduledAuditArn(const Aws::String& value) { m_scheduledAuditArn = value; }
285 
286     /**
287      * <p>The ARN of the scheduled audit.</p>
288      */
SetScheduledAuditArn(Aws::String && value)289     inline void SetScheduledAuditArn(Aws::String&& value) { m_scheduledAuditArn = std::move(value); }
290 
291     /**
292      * <p>The ARN of the scheduled audit.</p>
293      */
SetScheduledAuditArn(const char * value)294     inline void SetScheduledAuditArn(const char* value) { m_scheduledAuditArn.assign(value); }
295 
296     /**
297      * <p>The ARN of the scheduled audit.</p>
298      */
WithScheduledAuditArn(const Aws::String & value)299     inline DescribeScheduledAuditResult& WithScheduledAuditArn(const Aws::String& value) { SetScheduledAuditArn(value); return *this;}
300 
301     /**
302      * <p>The ARN of the scheduled audit.</p>
303      */
WithScheduledAuditArn(Aws::String && value)304     inline DescribeScheduledAuditResult& WithScheduledAuditArn(Aws::String&& value) { SetScheduledAuditArn(std::move(value)); return *this;}
305 
306     /**
307      * <p>The ARN of the scheduled audit.</p>
308      */
WithScheduledAuditArn(const char * value)309     inline DescribeScheduledAuditResult& WithScheduledAuditArn(const char* value) { SetScheduledAuditArn(value); return *this;}
310 
311   private:
312 
313     AuditFrequency m_frequency;
314 
315     Aws::String m_dayOfMonth;
316 
317     DayOfWeek m_dayOfWeek;
318 
319     Aws::Vector<Aws::String> m_targetCheckNames;
320 
321     Aws::String m_scheduledAuditName;
322 
323     Aws::String m_scheduledAuditArn;
324   };
325 
326 } // namespace Model
327 } // namespace IoT
328 } // namespace Aws
329