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/IoTRequest.h> 9 #include <aws/iot/model/AuditFrequency.h> 10 #include <aws/core/utils/memory/stl/AWSString.h> 11 #include <aws/iot/model/DayOfWeek.h> 12 #include <aws/core/utils/memory/stl/AWSVector.h> 13 #include <aws/iot/model/Tag.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace IoT 19 { 20 namespace Model 21 { 22 23 /** 24 */ 25 class AWS_IOT_API CreateScheduledAuditRequest : public IoTRequest 26 { 27 public: 28 CreateScheduledAuditRequest(); 29 30 // Service request name is the Operation name which will send this request out, 31 // each operation should has unique request name, so that we can get operation's name from this request. 32 // Note: this is not true for response, multiple operations may have the same response name, 33 // so we can not get operation's name from response. GetServiceRequestName()34 inline virtual const char* GetServiceRequestName() const override { return "CreateScheduledAudit"; } 35 36 Aws::String SerializePayload() const override; 37 38 39 /** 40 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 41 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 42 * time of each audit is determined by the system.</p> 43 */ GetFrequency()44 inline const AuditFrequency& GetFrequency() const{ return m_frequency; } 45 46 /** 47 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 48 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 49 * time of each audit is determined by the system.</p> 50 */ FrequencyHasBeenSet()51 inline bool FrequencyHasBeenSet() const { return m_frequencyHasBeenSet; } 52 53 /** 54 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 55 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 56 * time of each audit is determined by the system.</p> 57 */ SetFrequency(const AuditFrequency & value)58 inline void SetFrequency(const AuditFrequency& value) { m_frequencyHasBeenSet = true; m_frequency = value; } 59 60 /** 61 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 62 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 63 * time of each audit is determined by the system.</p> 64 */ SetFrequency(AuditFrequency && value)65 inline void SetFrequency(AuditFrequency&& value) { m_frequencyHasBeenSet = true; m_frequency = std::move(value); } 66 67 /** 68 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 69 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 70 * time of each audit is determined by the system.</p> 71 */ WithFrequency(const AuditFrequency & value)72 inline CreateScheduledAuditRequest& WithFrequency(const AuditFrequency& value) { SetFrequency(value); return *this;} 73 74 /** 75 * <p>How often the scheduled audit takes place, either <code>DAILY</code>, 76 * <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start 77 * time of each audit is determined by the system.</p> 78 */ WithFrequency(AuditFrequency && value)79 inline CreateScheduledAuditRequest& WithFrequency(AuditFrequency&& value) { SetFrequency(std::move(value)); return *this;} 80 81 82 /** 83 * <p>The day of the month on which the scheduled audit takes place. This can be 84 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 85 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 86 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 87 * of the month.</p> 88 */ GetDayOfMonth()89 inline const Aws::String& GetDayOfMonth() const{ return m_dayOfMonth; } 90 91 /** 92 * <p>The day of the month on which the scheduled audit takes place. This can be 93 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 94 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 95 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 96 * of the month.</p> 97 */ DayOfMonthHasBeenSet()98 inline bool DayOfMonthHasBeenSet() const { return m_dayOfMonthHasBeenSet; } 99 100 /** 101 * <p>The day of the month on which the scheduled audit takes place. This can be 102 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 103 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 104 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 105 * of the month.</p> 106 */ SetDayOfMonth(const Aws::String & value)107 inline void SetDayOfMonth(const Aws::String& value) { m_dayOfMonthHasBeenSet = true; m_dayOfMonth = value; } 108 109 /** 110 * <p>The day of the month on which the scheduled audit takes place. This can be 111 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 112 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 113 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 114 * of the month.</p> 115 */ SetDayOfMonth(Aws::String && value)116 inline void SetDayOfMonth(Aws::String&& value) { m_dayOfMonthHasBeenSet = true; m_dayOfMonth = std::move(value); } 117 118 /** 119 * <p>The day of the month on which the scheduled audit takes place. This can be 120 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 121 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 122 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 123 * of the month.</p> 124 */ SetDayOfMonth(const char * value)125 inline void SetDayOfMonth(const char* value) { m_dayOfMonthHasBeenSet = true; m_dayOfMonth.assign(value); } 126 127 /** 128 * <p>The day of the month on which the scheduled audit takes place. This can be 129 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 130 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 131 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 132 * of the month.</p> 133 */ WithDayOfMonth(const Aws::String & value)134 inline CreateScheduledAuditRequest& WithDayOfMonth(const Aws::String& value) { SetDayOfMonth(value); return *this;} 135 136 /** 137 * <p>The day of the month on which the scheduled audit takes place. This can be 138 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 139 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 140 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 141 * of the month.</p> 142 */ WithDayOfMonth(Aws::String && value)143 inline CreateScheduledAuditRequest& WithDayOfMonth(Aws::String&& value) { SetDayOfMonth(std::move(value)); return *this;} 144 145 /** 146 * <p>The day of the month on which the scheduled audit takes place. This can be 147 * "1" through "31" or "LAST". This field is required if the "frequency" parameter 148 * is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month 149 * doesn't have that many days, the audit takes place on the <code>LAST</code> day 150 * of the month.</p> 151 */ WithDayOfMonth(const char * value)152 inline CreateScheduledAuditRequest& WithDayOfMonth(const char* value) { SetDayOfMonth(value); return *this;} 153 154 155 /** 156 * <p>The day of the week on which the scheduled audit takes place, either 157 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 158 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 159 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 160 * <code>BIWEEKLY</code>.</p> 161 */ GetDayOfWeek()162 inline const DayOfWeek& GetDayOfWeek() const{ return m_dayOfWeek; } 163 164 /** 165 * <p>The day of the week on which the scheduled audit takes place, either 166 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 167 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 168 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 169 * <code>BIWEEKLY</code>.</p> 170 */ DayOfWeekHasBeenSet()171 inline bool DayOfWeekHasBeenSet() const { return m_dayOfWeekHasBeenSet; } 172 173 /** 174 * <p>The day of the week on which the scheduled audit takes place, either 175 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 176 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 177 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 178 * <code>BIWEEKLY</code>.</p> 179 */ SetDayOfWeek(const DayOfWeek & value)180 inline void SetDayOfWeek(const DayOfWeek& value) { m_dayOfWeekHasBeenSet = true; m_dayOfWeek = value; } 181 182 /** 183 * <p>The day of the week on which the scheduled audit takes place, either 184 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 185 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 186 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 187 * <code>BIWEEKLY</code>.</p> 188 */ SetDayOfWeek(DayOfWeek && value)189 inline void SetDayOfWeek(DayOfWeek&& value) { m_dayOfWeekHasBeenSet = true; m_dayOfWeek = std::move(value); } 190 191 /** 192 * <p>The day of the week on which the scheduled audit takes place, either 193 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 194 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 195 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 196 * <code>BIWEEKLY</code>.</p> 197 */ WithDayOfWeek(const DayOfWeek & value)198 inline CreateScheduledAuditRequest& WithDayOfWeek(const DayOfWeek& value) { SetDayOfWeek(value); return *this;} 199 200 /** 201 * <p>The day of the week on which the scheduled audit takes place, either 202 * <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, 203 * <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required 204 * if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or 205 * <code>BIWEEKLY</code>.</p> 206 */ WithDayOfWeek(DayOfWeek && value)207 inline CreateScheduledAuditRequest& WithDayOfWeek(DayOfWeek&& value) { SetDayOfWeek(std::move(value)); return *this;} 208 209 210 /** 211 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 212 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 213 * list of all checks, including those that are enabled or use 214 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 215 * enabled.)</p> 216 */ GetTargetCheckNames()217 inline const Aws::Vector<Aws::String>& GetTargetCheckNames() const{ return m_targetCheckNames; } 218 219 /** 220 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 221 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 222 * list of all checks, including those that are enabled or use 223 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 224 * enabled.)</p> 225 */ TargetCheckNamesHasBeenSet()226 inline bool TargetCheckNamesHasBeenSet() const { return m_targetCheckNamesHasBeenSet; } 227 228 /** 229 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 230 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 231 * list of all checks, including those that are enabled or use 232 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 233 * enabled.)</p> 234 */ SetTargetCheckNames(const Aws::Vector<Aws::String> & value)235 inline void SetTargetCheckNames(const Aws::Vector<Aws::String>& value) { m_targetCheckNamesHasBeenSet = true; m_targetCheckNames = value; } 236 237 /** 238 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 239 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 240 * list of all checks, including those that are enabled or use 241 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 242 * enabled.)</p> 243 */ SetTargetCheckNames(Aws::Vector<Aws::String> && value)244 inline void SetTargetCheckNames(Aws::Vector<Aws::String>&& value) { m_targetCheckNamesHasBeenSet = true; m_targetCheckNames = std::move(value); } 245 246 /** 247 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 248 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 249 * list of all checks, including those that are enabled or use 250 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 251 * enabled.)</p> 252 */ WithTargetCheckNames(const Aws::Vector<Aws::String> & value)253 inline CreateScheduledAuditRequest& WithTargetCheckNames(const Aws::Vector<Aws::String>& value) { SetTargetCheckNames(value); return *this;} 254 255 /** 256 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 257 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 258 * list of all checks, including those that are enabled or use 259 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 260 * enabled.)</p> 261 */ WithTargetCheckNames(Aws::Vector<Aws::String> && value)262 inline CreateScheduledAuditRequest& WithTargetCheckNames(Aws::Vector<Aws::String>&& value) { SetTargetCheckNames(std::move(value)); return *this;} 263 264 /** 265 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 266 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 267 * list of all checks, including those that are enabled or use 268 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 269 * enabled.)</p> 270 */ AddTargetCheckNames(const Aws::String & value)271 inline CreateScheduledAuditRequest& AddTargetCheckNames(const Aws::String& value) { m_targetCheckNamesHasBeenSet = true; m_targetCheckNames.push_back(value); return *this; } 272 273 /** 274 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 275 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 276 * list of all checks, including those that are enabled or use 277 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 278 * enabled.)</p> 279 */ AddTargetCheckNames(Aws::String && value)280 inline CreateScheduledAuditRequest& AddTargetCheckNames(Aws::String&& value) { m_targetCheckNamesHasBeenSet = true; m_targetCheckNames.push_back(std::move(value)); return *this; } 281 282 /** 283 * <p>Which checks are performed during the scheduled audit. Checks must be enabled 284 * for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the 285 * list of all checks, including those that are enabled or use 286 * <code>UpdateAccountAuditConfiguration</code> to select which checks are 287 * enabled.)</p> 288 */ AddTargetCheckNames(const char * value)289 inline CreateScheduledAuditRequest& AddTargetCheckNames(const char* value) { m_targetCheckNamesHasBeenSet = true; m_targetCheckNames.push_back(value); return *this; } 290 291 292 /** 293 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 294 */ GetScheduledAuditName()295 inline const Aws::String& GetScheduledAuditName() const{ return m_scheduledAuditName; } 296 297 /** 298 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 299 */ ScheduledAuditNameHasBeenSet()300 inline bool ScheduledAuditNameHasBeenSet() const { return m_scheduledAuditNameHasBeenSet; } 301 302 /** 303 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 304 */ SetScheduledAuditName(const Aws::String & value)305 inline void SetScheduledAuditName(const Aws::String& value) { m_scheduledAuditNameHasBeenSet = true; m_scheduledAuditName = value; } 306 307 /** 308 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 309 */ SetScheduledAuditName(Aws::String && value)310 inline void SetScheduledAuditName(Aws::String&& value) { m_scheduledAuditNameHasBeenSet = true; m_scheduledAuditName = std::move(value); } 311 312 /** 313 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 314 */ SetScheduledAuditName(const char * value)315 inline void SetScheduledAuditName(const char* value) { m_scheduledAuditNameHasBeenSet = true; m_scheduledAuditName.assign(value); } 316 317 /** 318 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 319 */ WithScheduledAuditName(const Aws::String & value)320 inline CreateScheduledAuditRequest& WithScheduledAuditName(const Aws::String& value) { SetScheduledAuditName(value); return *this;} 321 322 /** 323 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 324 */ WithScheduledAuditName(Aws::String && value)325 inline CreateScheduledAuditRequest& WithScheduledAuditName(Aws::String&& value) { SetScheduledAuditName(std::move(value)); return *this;} 326 327 /** 328 * <p>The name you want to give to the scheduled audit. (Max. 128 chars)</p> 329 */ WithScheduledAuditName(const char * value)330 inline CreateScheduledAuditRequest& WithScheduledAuditName(const char* value) { SetScheduledAuditName(value); return *this;} 331 332 333 /** 334 * <p>Metadata that can be used to manage the scheduled audit.</p> 335 */ GetTags()336 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 337 338 /** 339 * <p>Metadata that can be used to manage the scheduled audit.</p> 340 */ TagsHasBeenSet()341 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 342 343 /** 344 * <p>Metadata that can be used to manage the scheduled audit.</p> 345 */ SetTags(const Aws::Vector<Tag> & value)346 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 347 348 /** 349 * <p>Metadata that can be used to manage the scheduled audit.</p> 350 */ SetTags(Aws::Vector<Tag> && value)351 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 352 353 /** 354 * <p>Metadata that can be used to manage the scheduled audit.</p> 355 */ WithTags(const Aws::Vector<Tag> & value)356 inline CreateScheduledAuditRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 357 358 /** 359 * <p>Metadata that can be used to manage the scheduled audit.</p> 360 */ WithTags(Aws::Vector<Tag> && value)361 inline CreateScheduledAuditRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 362 363 /** 364 * <p>Metadata that can be used to manage the scheduled audit.</p> 365 */ AddTags(const Tag & value)366 inline CreateScheduledAuditRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 367 368 /** 369 * <p>Metadata that can be used to manage the scheduled audit.</p> 370 */ AddTags(Tag && value)371 inline CreateScheduledAuditRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 372 373 private: 374 375 AuditFrequency m_frequency; 376 bool m_frequencyHasBeenSet; 377 378 Aws::String m_dayOfMonth; 379 bool m_dayOfMonthHasBeenSet; 380 381 DayOfWeek m_dayOfWeek; 382 bool m_dayOfWeekHasBeenSet; 383 384 Aws::Vector<Aws::String> m_targetCheckNames; 385 bool m_targetCheckNamesHasBeenSet; 386 387 Aws::String m_scheduledAuditName; 388 bool m_scheduledAuditNameHasBeenSet; 389 390 Aws::Vector<Tag> m_tags; 391 bool m_tagsHasBeenSet; 392 }; 393 394 } // namespace Model 395 } // namespace IoT 396 } // namespace Aws 397