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/cloudformation/CloudFormation_EXPORTS.h> 8 #include <aws/cloudformation/CloudFormationRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/cloudformation/model/RollbackConfiguration.h> 12 #include <aws/cloudformation/model/OnFailure.h> 13 #include <aws/cloudformation/model/Parameter.h> 14 #include <aws/cloudformation/model/Capability.h> 15 #include <aws/cloudformation/model/Tag.h> 16 #include <utility> 17 18 namespace Aws 19 { 20 namespace CloudFormation 21 { 22 namespace Model 23 { 24 25 /** 26 * <p>The input for <a>CreateStack</a> action.</p><p><h3>See Also:</h3> <a 27 * href="http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInput">AWS 28 * API Reference</a></p> 29 */ 30 class AWS_CLOUDFORMATION_API CreateStackRequest : public CloudFormationRequest 31 { 32 public: 33 CreateStackRequest(); 34 35 // Service request name is the Operation name which will send this request out, 36 // each operation should has unique request name, so that we can get operation's name from this request. 37 // Note: this is not true for response, multiple operations may have the same response name, 38 // so we can not get operation's name from response. GetServiceRequestName()39 inline virtual const char* GetServiceRequestName() const override { return "CreateStack"; } 40 41 Aws::String SerializePayload() const override; 42 43 protected: 44 void DumpBodyToUrl(Aws::Http::URI& uri ) const override; 45 46 public: 47 48 /** 49 * <p>The name that is associated with the stack. The name must be unique in the 50 * Region in which you are creating the stack.</p> <p>A stack name can 51 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 52 * with an alphabetical character and cannot be longer than 128 characters.</p> 53 * 54 */ GetStackName()55 inline const Aws::String& GetStackName() const{ return m_stackName; } 56 57 /** 58 * <p>The name that is associated with the stack. The name must be unique in the 59 * Region in which you are creating the stack.</p> <p>A stack name can 60 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 61 * with an alphabetical character and cannot be longer than 128 characters.</p> 62 * 63 */ StackNameHasBeenSet()64 inline bool StackNameHasBeenSet() const { return m_stackNameHasBeenSet; } 65 66 /** 67 * <p>The name that is associated with the stack. The name must be unique in the 68 * Region in which you are creating the stack.</p> <p>A stack name can 69 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 70 * with an alphabetical character and cannot be longer than 128 characters.</p> 71 * 72 */ SetStackName(const Aws::String & value)73 inline void SetStackName(const Aws::String& value) { m_stackNameHasBeenSet = true; m_stackName = value; } 74 75 /** 76 * <p>The name that is associated with the stack. The name must be unique in the 77 * Region in which you are creating the stack.</p> <p>A stack name can 78 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 79 * with an alphabetical character and cannot be longer than 128 characters.</p> 80 * 81 */ SetStackName(Aws::String && value)82 inline void SetStackName(Aws::String&& value) { m_stackNameHasBeenSet = true; m_stackName = std::move(value); } 83 84 /** 85 * <p>The name that is associated with the stack. The name must be unique in the 86 * Region in which you are creating the stack.</p> <p>A stack name can 87 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 88 * with an alphabetical character and cannot be longer than 128 characters.</p> 89 * 90 */ SetStackName(const char * value)91 inline void SetStackName(const char* value) { m_stackNameHasBeenSet = true; m_stackName.assign(value); } 92 93 /** 94 * <p>The name that is associated with the stack. The name must be unique in the 95 * Region in which you are creating the stack.</p> <p>A stack name can 96 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 97 * with an alphabetical character and cannot be longer than 128 characters.</p> 98 * 99 */ WithStackName(const Aws::String & value)100 inline CreateStackRequest& WithStackName(const Aws::String& value) { SetStackName(value); return *this;} 101 102 /** 103 * <p>The name that is associated with the stack. The name must be unique in the 104 * Region in which you are creating the stack.</p> <p>A stack name can 105 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 106 * with an alphabetical character and cannot be longer than 128 characters.</p> 107 * 108 */ WithStackName(Aws::String && value)109 inline CreateStackRequest& WithStackName(Aws::String&& value) { SetStackName(std::move(value)); return *this;} 110 111 /** 112 * <p>The name that is associated with the stack. The name must be unique in the 113 * Region in which you are creating the stack.</p> <p>A stack name can 114 * contain only alphanumeric characters (case sensitive) and hyphens. It must start 115 * with an alphabetical character and cannot be longer than 128 characters.</p> 116 * 117 */ WithStackName(const char * value)118 inline CreateStackRequest& WithStackName(const char* value) { SetStackName(value); return *this;} 119 120 121 /** 122 * <p>Structure containing the template body with a minimum length of 1 byte and a 123 * maximum length of 51,200 bytes. For more information, go to <a 124 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 125 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 126 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 127 * parameter, but not both.</p> 128 */ GetTemplateBody()129 inline const Aws::String& GetTemplateBody() const{ return m_templateBody; } 130 131 /** 132 * <p>Structure containing the template body with a minimum length of 1 byte and a 133 * maximum length of 51,200 bytes. For more information, go to <a 134 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 135 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 136 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 137 * parameter, but not both.</p> 138 */ TemplateBodyHasBeenSet()139 inline bool TemplateBodyHasBeenSet() const { return m_templateBodyHasBeenSet; } 140 141 /** 142 * <p>Structure containing the template body with a minimum length of 1 byte and a 143 * maximum length of 51,200 bytes. For more information, go to <a 144 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 145 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 146 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 147 * parameter, but not both.</p> 148 */ SetTemplateBody(const Aws::String & value)149 inline void SetTemplateBody(const Aws::String& value) { m_templateBodyHasBeenSet = true; m_templateBody = value; } 150 151 /** 152 * <p>Structure containing the template body with a minimum length of 1 byte and a 153 * maximum length of 51,200 bytes. For more information, go to <a 154 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 155 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 156 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 157 * parameter, but not both.</p> 158 */ SetTemplateBody(Aws::String && value)159 inline void SetTemplateBody(Aws::String&& value) { m_templateBodyHasBeenSet = true; m_templateBody = std::move(value); } 160 161 /** 162 * <p>Structure containing the template body with a minimum length of 1 byte and a 163 * maximum length of 51,200 bytes. For more information, go to <a 164 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 165 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 166 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 167 * parameter, but not both.</p> 168 */ SetTemplateBody(const char * value)169 inline void SetTemplateBody(const char* value) { m_templateBodyHasBeenSet = true; m_templateBody.assign(value); } 170 171 /** 172 * <p>Structure containing the template body with a minimum length of 1 byte and a 173 * maximum length of 51,200 bytes. For more information, go to <a 174 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 175 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 176 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 177 * parameter, but not both.</p> 178 */ WithTemplateBody(const Aws::String & value)179 inline CreateStackRequest& WithTemplateBody(const Aws::String& value) { SetTemplateBody(value); return *this;} 180 181 /** 182 * <p>Structure containing the template body with a minimum length of 1 byte and a 183 * maximum length of 51,200 bytes. For more information, go to <a 184 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 185 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 186 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 187 * parameter, but not both.</p> 188 */ WithTemplateBody(Aws::String && value)189 inline CreateStackRequest& WithTemplateBody(Aws::String&& value) { SetTemplateBody(std::move(value)); return *this;} 190 191 /** 192 * <p>Structure containing the template body with a minimum length of 1 byte and a 193 * maximum length of 51,200 bytes. For more information, go to <a 194 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 195 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 196 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 197 * parameter, but not both.</p> 198 */ WithTemplateBody(const char * value)199 inline CreateStackRequest& WithTemplateBody(const char* value) { SetTemplateBody(value); return *this;} 200 201 202 /** 203 * <p>Location of file containing the template body. The URL must point to a 204 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 205 * Systems Manager document. For more information, go to the <a 206 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 207 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 208 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 209 * parameter, but not both.</p> 210 */ GetTemplateURL()211 inline const Aws::String& GetTemplateURL() const{ return m_templateURL; } 212 213 /** 214 * <p>Location of file containing the template body. The URL must point to a 215 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 216 * Systems Manager document. For more information, go to the <a 217 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 218 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 219 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 220 * parameter, but not both.</p> 221 */ TemplateURLHasBeenSet()222 inline bool TemplateURLHasBeenSet() const { return m_templateURLHasBeenSet; } 223 224 /** 225 * <p>Location of file containing the template body. The URL must point to a 226 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 227 * Systems Manager document. For more information, go to the <a 228 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 229 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 230 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 231 * parameter, but not both.</p> 232 */ SetTemplateURL(const Aws::String & value)233 inline void SetTemplateURL(const Aws::String& value) { m_templateURLHasBeenSet = true; m_templateURL = value; } 234 235 /** 236 * <p>Location of file containing the template body. The URL must point to a 237 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 238 * Systems Manager document. For more information, go to the <a 239 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 240 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 241 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 242 * parameter, but not both.</p> 243 */ SetTemplateURL(Aws::String && value)244 inline void SetTemplateURL(Aws::String&& value) { m_templateURLHasBeenSet = true; m_templateURL = std::move(value); } 245 246 /** 247 * <p>Location of file containing the template body. The URL must point to a 248 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 249 * Systems Manager document. For more information, go to the <a 250 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 251 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 252 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 253 * parameter, but not both.</p> 254 */ SetTemplateURL(const char * value)255 inline void SetTemplateURL(const char* value) { m_templateURLHasBeenSet = true; m_templateURL.assign(value); } 256 257 /** 258 * <p>Location of file containing the template body. The URL must point to a 259 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 260 * Systems Manager document. For more information, go to the <a 261 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 262 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 263 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 264 * parameter, but not both.</p> 265 */ WithTemplateURL(const Aws::String & value)266 inline CreateStackRequest& WithTemplateURL(const Aws::String& value) { SetTemplateURL(value); return *this;} 267 268 /** 269 * <p>Location of file containing the template body. The URL must point to a 270 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 271 * Systems Manager document. For more information, go to the <a 272 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 273 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 274 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 275 * parameter, but not both.</p> 276 */ WithTemplateURL(Aws::String && value)277 inline CreateStackRequest& WithTemplateURL(Aws::String&& value) { SetTemplateURL(std::move(value)); return *this;} 278 279 /** 280 * <p>Location of file containing the template body. The URL must point to a 281 * template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a 282 * Systems Manager document. For more information, go to the <a 283 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template 284 * Anatomy</a> in the CloudFormation User Guide.</p> <p>Conditional: You must 285 * specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> 286 * parameter, but not both.</p> 287 */ WithTemplateURL(const char * value)288 inline CreateStackRequest& WithTemplateURL(const char* value) { SetTemplateURL(value); return *this;} 289 290 291 /** 292 * <p>A list of <code>Parameter</code> structures that specify input parameters for 293 * the stack. For more information, see the <a 294 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 295 * data type.</p> 296 */ GetParameters()297 inline const Aws::Vector<Parameter>& GetParameters() const{ return m_parameters; } 298 299 /** 300 * <p>A list of <code>Parameter</code> structures that specify input parameters for 301 * the stack. For more information, see the <a 302 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 303 * data type.</p> 304 */ ParametersHasBeenSet()305 inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } 306 307 /** 308 * <p>A list of <code>Parameter</code> structures that specify input parameters for 309 * the stack. For more information, see the <a 310 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 311 * data type.</p> 312 */ SetParameters(const Aws::Vector<Parameter> & value)313 inline void SetParameters(const Aws::Vector<Parameter>& value) { m_parametersHasBeenSet = true; m_parameters = value; } 314 315 /** 316 * <p>A list of <code>Parameter</code> structures that specify input parameters for 317 * the stack. For more information, see the <a 318 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 319 * data type.</p> 320 */ SetParameters(Aws::Vector<Parameter> && value)321 inline void SetParameters(Aws::Vector<Parameter>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } 322 323 /** 324 * <p>A list of <code>Parameter</code> structures that specify input parameters for 325 * the stack. For more information, see the <a 326 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 327 * data type.</p> 328 */ WithParameters(const Aws::Vector<Parameter> & value)329 inline CreateStackRequest& WithParameters(const Aws::Vector<Parameter>& value) { SetParameters(value); return *this;} 330 331 /** 332 * <p>A list of <code>Parameter</code> structures that specify input parameters for 333 * the stack. For more information, see the <a 334 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 335 * data type.</p> 336 */ WithParameters(Aws::Vector<Parameter> && value)337 inline CreateStackRequest& WithParameters(Aws::Vector<Parameter>&& value) { SetParameters(std::move(value)); return *this;} 338 339 /** 340 * <p>A list of <code>Parameter</code> structures that specify input parameters for 341 * the stack. For more information, see the <a 342 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 343 * data type.</p> 344 */ AddParameters(const Parameter & value)345 inline CreateStackRequest& AddParameters(const Parameter& value) { m_parametersHasBeenSet = true; m_parameters.push_back(value); return *this; } 346 347 /** 348 * <p>A list of <code>Parameter</code> structures that specify input parameters for 349 * the stack. For more information, see the <a 350 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> 351 * data type.</p> 352 */ AddParameters(Parameter && value)353 inline CreateStackRequest& AddParameters(Parameter&& value) { m_parametersHasBeenSet = true; m_parameters.push_back(std::move(value)); return *this; } 354 355 356 /** 357 * <p>Set to <code>true</code> to disable rollback of the stack if stack creation 358 * failed. You can specify either <code>DisableRollback</code> or 359 * <code>OnFailure</code>, but not both.</p> <p>Default: <code>false</code> </p> 360 */ GetDisableRollback()361 inline bool GetDisableRollback() const{ return m_disableRollback; } 362 363 /** 364 * <p>Set to <code>true</code> to disable rollback of the stack if stack creation 365 * failed. You can specify either <code>DisableRollback</code> or 366 * <code>OnFailure</code>, but not both.</p> <p>Default: <code>false</code> </p> 367 */ DisableRollbackHasBeenSet()368 inline bool DisableRollbackHasBeenSet() const { return m_disableRollbackHasBeenSet; } 369 370 /** 371 * <p>Set to <code>true</code> to disable rollback of the stack if stack creation 372 * failed. You can specify either <code>DisableRollback</code> or 373 * <code>OnFailure</code>, but not both.</p> <p>Default: <code>false</code> </p> 374 */ SetDisableRollback(bool value)375 inline void SetDisableRollback(bool value) { m_disableRollbackHasBeenSet = true; m_disableRollback = value; } 376 377 /** 378 * <p>Set to <code>true</code> to disable rollback of the stack if stack creation 379 * failed. You can specify either <code>DisableRollback</code> or 380 * <code>OnFailure</code>, but not both.</p> <p>Default: <code>false</code> </p> 381 */ WithDisableRollback(bool value)382 inline CreateStackRequest& WithDisableRollback(bool value) { SetDisableRollback(value); return *this;} 383 384 385 /** 386 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 387 * updating operations, and for the specified monitoring period afterwards.</p> 388 */ GetRollbackConfiguration()389 inline const RollbackConfiguration& GetRollbackConfiguration() const{ return m_rollbackConfiguration; } 390 391 /** 392 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 393 * updating operations, and for the specified monitoring period afterwards.</p> 394 */ RollbackConfigurationHasBeenSet()395 inline bool RollbackConfigurationHasBeenSet() const { return m_rollbackConfigurationHasBeenSet; } 396 397 /** 398 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 399 * updating operations, and for the specified monitoring period afterwards.</p> 400 */ SetRollbackConfiguration(const RollbackConfiguration & value)401 inline void SetRollbackConfiguration(const RollbackConfiguration& value) { m_rollbackConfigurationHasBeenSet = true; m_rollbackConfiguration = value; } 402 403 /** 404 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 405 * updating operations, and for the specified monitoring period afterwards.</p> 406 */ SetRollbackConfiguration(RollbackConfiguration && value)407 inline void SetRollbackConfiguration(RollbackConfiguration&& value) { m_rollbackConfigurationHasBeenSet = true; m_rollbackConfiguration = std::move(value); } 408 409 /** 410 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 411 * updating operations, and for the specified monitoring period afterwards.</p> 412 */ WithRollbackConfiguration(const RollbackConfiguration & value)413 inline CreateStackRequest& WithRollbackConfiguration(const RollbackConfiguration& value) { SetRollbackConfiguration(value); return *this;} 414 415 /** 416 * <p>The rollback triggers for CloudFormation to monitor during stack creation and 417 * updating operations, and for the specified monitoring period afterwards.</p> 418 */ WithRollbackConfiguration(RollbackConfiguration && value)419 inline CreateStackRequest& WithRollbackConfiguration(RollbackConfiguration&& value) { SetRollbackConfiguration(std::move(value)); return *this;} 420 421 422 /** 423 * <p>The amount of time that can pass before the stack status becomes 424 * CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to 425 * <code>false</code>, the stack will be rolled back.</p> 426 */ GetTimeoutInMinutes()427 inline int GetTimeoutInMinutes() const{ return m_timeoutInMinutes; } 428 429 /** 430 * <p>The amount of time that can pass before the stack status becomes 431 * CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to 432 * <code>false</code>, the stack will be rolled back.</p> 433 */ TimeoutInMinutesHasBeenSet()434 inline bool TimeoutInMinutesHasBeenSet() const { return m_timeoutInMinutesHasBeenSet; } 435 436 /** 437 * <p>The amount of time that can pass before the stack status becomes 438 * CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to 439 * <code>false</code>, the stack will be rolled back.</p> 440 */ SetTimeoutInMinutes(int value)441 inline void SetTimeoutInMinutes(int value) { m_timeoutInMinutesHasBeenSet = true; m_timeoutInMinutes = value; } 442 443 /** 444 * <p>The amount of time that can pass before the stack status becomes 445 * CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to 446 * <code>false</code>, the stack will be rolled back.</p> 447 */ WithTimeoutInMinutes(int value)448 inline CreateStackRequest& WithTimeoutInMinutes(int value) { SetTimeoutInMinutes(value); return *this;} 449 450 451 /** 452 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 453 * events. You can find your SNS topic ARNs using the SNS console or your Command 454 * Line Interface (CLI).</p> 455 */ GetNotificationARNs()456 inline const Aws::Vector<Aws::String>& GetNotificationARNs() const{ return m_notificationARNs; } 457 458 /** 459 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 460 * events. You can find your SNS topic ARNs using the SNS console or your Command 461 * Line Interface (CLI).</p> 462 */ NotificationARNsHasBeenSet()463 inline bool NotificationARNsHasBeenSet() const { return m_notificationARNsHasBeenSet; } 464 465 /** 466 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 467 * events. You can find your SNS topic ARNs using the SNS console or your Command 468 * Line Interface (CLI).</p> 469 */ SetNotificationARNs(const Aws::Vector<Aws::String> & value)470 inline void SetNotificationARNs(const Aws::Vector<Aws::String>& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs = value; } 471 472 /** 473 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 474 * events. You can find your SNS topic ARNs using the SNS console or your Command 475 * Line Interface (CLI).</p> 476 */ SetNotificationARNs(Aws::Vector<Aws::String> && value)477 inline void SetNotificationARNs(Aws::Vector<Aws::String>&& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs = std::move(value); } 478 479 /** 480 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 481 * events. You can find your SNS topic ARNs using the SNS console or your Command 482 * Line Interface (CLI).</p> 483 */ WithNotificationARNs(const Aws::Vector<Aws::String> & value)484 inline CreateStackRequest& WithNotificationARNs(const Aws::Vector<Aws::String>& value) { SetNotificationARNs(value); return *this;} 485 486 /** 487 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 488 * events. You can find your SNS topic ARNs using the SNS console or your Command 489 * Line Interface (CLI).</p> 490 */ WithNotificationARNs(Aws::Vector<Aws::String> && value)491 inline CreateStackRequest& WithNotificationARNs(Aws::Vector<Aws::String>&& value) { SetNotificationARNs(std::move(value)); return *this;} 492 493 /** 494 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 495 * events. You can find your SNS topic ARNs using the SNS console or your Command 496 * Line Interface (CLI).</p> 497 */ AddNotificationARNs(const Aws::String & value)498 inline CreateStackRequest& AddNotificationARNs(const Aws::String& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(value); return *this; } 499 500 /** 501 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 502 * events. You can find your SNS topic ARNs using the SNS console or your Command 503 * Line Interface (CLI).</p> 504 */ AddNotificationARNs(Aws::String && value)505 inline CreateStackRequest& AddNotificationARNs(Aws::String&& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(std::move(value)); return *this; } 506 507 /** 508 * <p>The Simple Notification Service (SNS) topic ARNs to publish stack related 509 * events. You can find your SNS topic ARNs using the SNS console or your Command 510 * Line Interface (CLI).</p> 511 */ AddNotificationARNs(const char * value)512 inline CreateStackRequest& AddNotificationARNs(const char* value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(value); return *this; } 513 514 515 /** 516 * <p>In some cases, you must explicitly acknowledge that your stack template 517 * contains certain capabilities in order for CloudFormation to create the 518 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 519 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 520 * resources that can affect permissions in your Amazon Web Services account; for 521 * example, by creating new Identity and Access Management (IAM) users. For those 522 * stacks, you must explicitly acknowledge this by specifying one of these 523 * capabilities.</p> <p>The following IAM resources require you to specify either 524 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 525 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 526 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 527 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 528 * don't specify either of these capabilities, CloudFormation returns an 529 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 530 * template contains these resources, we recommend that you review all permissions 531 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 532 * <a 533 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 534 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 535 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 536 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 537 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 538 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 539 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 540 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 541 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 542 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 543 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 544 * AWS::IAM::User</a> </p> </li> <li> <p> <a 545 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 546 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 547 * <a 548 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 549 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 550 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 551 * perform custom processing on templates; this can include simple actions like 552 * find-and-replace operations, all the way to extensive transformations of entire 553 * templates. Because of this, users typically create a change set from the 554 * processed template, so that they can review the changes resulting from the 555 * macros before actually creating the stack. If your stack template contains one 556 * or more macros, and you choose to create a stack directly from the processed 557 * template, without first reviewing the resulting changes in a change set, you 558 * must acknowledge this capability. This includes the <a 559 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 560 * and <a 561 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 562 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 563 * create a stack from a stack template that contains macros <i>and</i> nested 564 * stacks, you must create the stack directly from the template using this 565 * capability.</p> <p>You should only create stacks directly from a 566 * stack template that contains macros if you know what processing the macro 567 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 568 * processing stack templates. Be aware that the Lambda function owner can update 569 * the function operation without CloudFormation being notified.</p> 570 * <p>For more information, see <a 571 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 572 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 573 * </ul> 574 */ GetCapabilities()575 inline const Aws::Vector<Capability>& GetCapabilities() const{ return m_capabilities; } 576 577 /** 578 * <p>In some cases, you must explicitly acknowledge that your stack template 579 * contains certain capabilities in order for CloudFormation to create the 580 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 581 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 582 * resources that can affect permissions in your Amazon Web Services account; for 583 * example, by creating new Identity and Access Management (IAM) users. For those 584 * stacks, you must explicitly acknowledge this by specifying one of these 585 * capabilities.</p> <p>The following IAM resources require you to specify either 586 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 587 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 588 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 589 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 590 * don't specify either of these capabilities, CloudFormation returns an 591 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 592 * template contains these resources, we recommend that you review all permissions 593 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 594 * <a 595 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 596 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 597 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 598 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 599 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 600 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 601 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 602 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 603 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 604 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 605 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 606 * AWS::IAM::User</a> </p> </li> <li> <p> <a 607 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 608 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 609 * <a 610 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 611 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 612 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 613 * perform custom processing on templates; this can include simple actions like 614 * find-and-replace operations, all the way to extensive transformations of entire 615 * templates. Because of this, users typically create a change set from the 616 * processed template, so that they can review the changes resulting from the 617 * macros before actually creating the stack. If your stack template contains one 618 * or more macros, and you choose to create a stack directly from the processed 619 * template, without first reviewing the resulting changes in a change set, you 620 * must acknowledge this capability. This includes the <a 621 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 622 * and <a 623 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 624 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 625 * create a stack from a stack template that contains macros <i>and</i> nested 626 * stacks, you must create the stack directly from the template using this 627 * capability.</p> <p>You should only create stacks directly from a 628 * stack template that contains macros if you know what processing the macro 629 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 630 * processing stack templates. Be aware that the Lambda function owner can update 631 * the function operation without CloudFormation being notified.</p> 632 * <p>For more information, see <a 633 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 634 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 635 * </ul> 636 */ CapabilitiesHasBeenSet()637 inline bool CapabilitiesHasBeenSet() const { return m_capabilitiesHasBeenSet; } 638 639 /** 640 * <p>In some cases, you must explicitly acknowledge that your stack template 641 * contains certain capabilities in order for CloudFormation to create the 642 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 643 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 644 * resources that can affect permissions in your Amazon Web Services account; for 645 * example, by creating new Identity and Access Management (IAM) users. For those 646 * stacks, you must explicitly acknowledge this by specifying one of these 647 * capabilities.</p> <p>The following IAM resources require you to specify either 648 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 649 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 650 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 651 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 652 * don't specify either of these capabilities, CloudFormation returns an 653 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 654 * template contains these resources, we recommend that you review all permissions 655 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 656 * <a 657 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 658 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 659 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 660 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 661 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 662 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 663 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 664 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 665 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 666 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 667 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 668 * AWS::IAM::User</a> </p> </li> <li> <p> <a 669 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 670 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 671 * <a 672 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 673 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 674 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 675 * perform custom processing on templates; this can include simple actions like 676 * find-and-replace operations, all the way to extensive transformations of entire 677 * templates. Because of this, users typically create a change set from the 678 * processed template, so that they can review the changes resulting from the 679 * macros before actually creating the stack. If your stack template contains one 680 * or more macros, and you choose to create a stack directly from the processed 681 * template, without first reviewing the resulting changes in a change set, you 682 * must acknowledge this capability. This includes the <a 683 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 684 * and <a 685 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 686 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 687 * create a stack from a stack template that contains macros <i>and</i> nested 688 * stacks, you must create the stack directly from the template using this 689 * capability.</p> <p>You should only create stacks directly from a 690 * stack template that contains macros if you know what processing the macro 691 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 692 * processing stack templates. Be aware that the Lambda function owner can update 693 * the function operation without CloudFormation being notified.</p> 694 * <p>For more information, see <a 695 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 696 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 697 * </ul> 698 */ SetCapabilities(const Aws::Vector<Capability> & value)699 inline void SetCapabilities(const Aws::Vector<Capability>& value) { m_capabilitiesHasBeenSet = true; m_capabilities = value; } 700 701 /** 702 * <p>In some cases, you must explicitly acknowledge that your stack template 703 * contains certain capabilities in order for CloudFormation to create the 704 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 705 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 706 * resources that can affect permissions in your Amazon Web Services account; for 707 * example, by creating new Identity and Access Management (IAM) users. For those 708 * stacks, you must explicitly acknowledge this by specifying one of these 709 * capabilities.</p> <p>The following IAM resources require you to specify either 710 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 711 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 712 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 713 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 714 * don't specify either of these capabilities, CloudFormation returns an 715 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 716 * template contains these resources, we recommend that you review all permissions 717 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 718 * <a 719 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 720 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 721 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 722 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 723 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 724 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 725 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 726 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 727 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 728 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 729 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 730 * AWS::IAM::User</a> </p> </li> <li> <p> <a 731 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 732 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 733 * <a 734 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 735 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 736 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 737 * perform custom processing on templates; this can include simple actions like 738 * find-and-replace operations, all the way to extensive transformations of entire 739 * templates. Because of this, users typically create a change set from the 740 * processed template, so that they can review the changes resulting from the 741 * macros before actually creating the stack. If your stack template contains one 742 * or more macros, and you choose to create a stack directly from the processed 743 * template, without first reviewing the resulting changes in a change set, you 744 * must acknowledge this capability. This includes the <a 745 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 746 * and <a 747 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 748 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 749 * create a stack from a stack template that contains macros <i>and</i> nested 750 * stacks, you must create the stack directly from the template using this 751 * capability.</p> <p>You should only create stacks directly from a 752 * stack template that contains macros if you know what processing the macro 753 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 754 * processing stack templates. Be aware that the Lambda function owner can update 755 * the function operation without CloudFormation being notified.</p> 756 * <p>For more information, see <a 757 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 758 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 759 * </ul> 760 */ SetCapabilities(Aws::Vector<Capability> && value)761 inline void SetCapabilities(Aws::Vector<Capability>&& value) { m_capabilitiesHasBeenSet = true; m_capabilities = std::move(value); } 762 763 /** 764 * <p>In some cases, you must explicitly acknowledge that your stack template 765 * contains certain capabilities in order for CloudFormation to create the 766 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 767 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 768 * resources that can affect permissions in your Amazon Web Services account; for 769 * example, by creating new Identity and Access Management (IAM) users. For those 770 * stacks, you must explicitly acknowledge this by specifying one of these 771 * capabilities.</p> <p>The following IAM resources require you to specify either 772 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 773 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 774 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 775 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 776 * don't specify either of these capabilities, CloudFormation returns an 777 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 778 * template contains these resources, we recommend that you review all permissions 779 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 780 * <a 781 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 782 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 783 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 784 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 785 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 786 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 787 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 788 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 789 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 790 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 791 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 792 * AWS::IAM::User</a> </p> </li> <li> <p> <a 793 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 794 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 795 * <a 796 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 797 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 798 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 799 * perform custom processing on templates; this can include simple actions like 800 * find-and-replace operations, all the way to extensive transformations of entire 801 * templates. Because of this, users typically create a change set from the 802 * processed template, so that they can review the changes resulting from the 803 * macros before actually creating the stack. If your stack template contains one 804 * or more macros, and you choose to create a stack directly from the processed 805 * template, without first reviewing the resulting changes in a change set, you 806 * must acknowledge this capability. This includes the <a 807 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 808 * and <a 809 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 810 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 811 * create a stack from a stack template that contains macros <i>and</i> nested 812 * stacks, you must create the stack directly from the template using this 813 * capability.</p> <p>You should only create stacks directly from a 814 * stack template that contains macros if you know what processing the macro 815 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 816 * processing stack templates. Be aware that the Lambda function owner can update 817 * the function operation without CloudFormation being notified.</p> 818 * <p>For more information, see <a 819 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 820 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 821 * </ul> 822 */ WithCapabilities(const Aws::Vector<Capability> & value)823 inline CreateStackRequest& WithCapabilities(const Aws::Vector<Capability>& value) { SetCapabilities(value); return *this;} 824 825 /** 826 * <p>In some cases, you must explicitly acknowledge that your stack template 827 * contains certain capabilities in order for CloudFormation to create the 828 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 829 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 830 * resources that can affect permissions in your Amazon Web Services account; for 831 * example, by creating new Identity and Access Management (IAM) users. For those 832 * stacks, you must explicitly acknowledge this by specifying one of these 833 * capabilities.</p> <p>The following IAM resources require you to specify either 834 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 835 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 836 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 837 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 838 * don't specify either of these capabilities, CloudFormation returns an 839 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 840 * template contains these resources, we recommend that you review all permissions 841 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 842 * <a 843 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 844 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 845 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 846 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 847 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 848 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 849 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 850 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 851 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 852 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 853 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 854 * AWS::IAM::User</a> </p> </li> <li> <p> <a 855 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 856 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 857 * <a 858 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 859 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 860 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 861 * perform custom processing on templates; this can include simple actions like 862 * find-and-replace operations, all the way to extensive transformations of entire 863 * templates. Because of this, users typically create a change set from the 864 * processed template, so that they can review the changes resulting from the 865 * macros before actually creating the stack. If your stack template contains one 866 * or more macros, and you choose to create a stack directly from the processed 867 * template, without first reviewing the resulting changes in a change set, you 868 * must acknowledge this capability. This includes the <a 869 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 870 * and <a 871 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 872 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 873 * create a stack from a stack template that contains macros <i>and</i> nested 874 * stacks, you must create the stack directly from the template using this 875 * capability.</p> <p>You should only create stacks directly from a 876 * stack template that contains macros if you know what processing the macro 877 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 878 * processing stack templates. Be aware that the Lambda function owner can update 879 * the function operation without CloudFormation being notified.</p> 880 * <p>For more information, see <a 881 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 882 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 883 * </ul> 884 */ WithCapabilities(Aws::Vector<Capability> && value)885 inline CreateStackRequest& WithCapabilities(Aws::Vector<Capability>&& value) { SetCapabilities(std::move(value)); return *this;} 886 887 /** 888 * <p>In some cases, you must explicitly acknowledge that your stack template 889 * contains certain capabilities in order for CloudFormation to create the 890 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 891 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 892 * resources that can affect permissions in your Amazon Web Services account; for 893 * example, by creating new Identity and Access Management (IAM) users. For those 894 * stacks, you must explicitly acknowledge this by specifying one of these 895 * capabilities.</p> <p>The following IAM resources require you to specify either 896 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 897 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 898 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 899 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 900 * don't specify either of these capabilities, CloudFormation returns an 901 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 902 * template contains these resources, we recommend that you review all permissions 903 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 904 * <a 905 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 906 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 907 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 908 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 909 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 910 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 911 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 912 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 913 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 914 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 915 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 916 * AWS::IAM::User</a> </p> </li> <li> <p> <a 917 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 918 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 919 * <a 920 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 921 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 922 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 923 * perform custom processing on templates; this can include simple actions like 924 * find-and-replace operations, all the way to extensive transformations of entire 925 * templates. Because of this, users typically create a change set from the 926 * processed template, so that they can review the changes resulting from the 927 * macros before actually creating the stack. If your stack template contains one 928 * or more macros, and you choose to create a stack directly from the processed 929 * template, without first reviewing the resulting changes in a change set, you 930 * must acknowledge this capability. This includes the <a 931 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 932 * and <a 933 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 934 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 935 * create a stack from a stack template that contains macros <i>and</i> nested 936 * stacks, you must create the stack directly from the template using this 937 * capability.</p> <p>You should only create stacks directly from a 938 * stack template that contains macros if you know what processing the macro 939 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 940 * processing stack templates. Be aware that the Lambda function owner can update 941 * the function operation without CloudFormation being notified.</p> 942 * <p>For more information, see <a 943 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 944 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 945 * </ul> 946 */ AddCapabilities(const Capability & value)947 inline CreateStackRequest& AddCapabilities(const Capability& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(value); return *this; } 948 949 /** 950 * <p>In some cases, you must explicitly acknowledge that your stack template 951 * contains certain capabilities in order for CloudFormation to create the 952 * stack.</p> <ul> <li> <p> <code>CAPABILITY_IAM</code> and 953 * <code>CAPABILITY_NAMED_IAM</code> </p> <p>Some stack templates might include 954 * resources that can affect permissions in your Amazon Web Services account; for 955 * example, by creating new Identity and Access Management (IAM) users. For those 956 * stacks, you must explicitly acknowledge this by specifying one of these 957 * capabilities.</p> <p>The following IAM resources require you to specify either 958 * the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> 959 * capability.</p> <ul> <li> <p>If you have IAM resources, you can specify either 960 * capability.</p> </li> <li> <p>If you have IAM resources with custom names, you 961 * <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p> </li> <li> <p>If you 962 * don't specify either of these capabilities, CloudFormation returns an 963 * <code>InsufficientCapabilities</code> error.</p> </li> </ul> <p>If your stack 964 * template contains these resources, we recommend that you review all permissions 965 * associated with them and edit their permissions if necessary.</p> <ul> <li> <p> 966 * <a 967 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> 968 * AWS::IAM::AccessKey</a> </p> </li> <li> <p> <a 969 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> 970 * AWS::IAM::Group</a> </p> </li> <li> <p> <a 971 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> 972 * AWS::IAM::InstanceProfile</a> </p> </li> <li> <p> <a 973 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> 974 * AWS::IAM::Policy</a> </p> </li> <li> <p> <a 975 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> 976 * AWS::IAM::Role</a> </p> </li> <li> <p> <a 977 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> 978 * AWS::IAM::User</a> </p> </li> <li> <p> <a 979 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> 980 * AWS::IAM::UserToGroupAddition</a> </p> </li> </ul> <p>For more information, see 981 * <a 982 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging 983 * IAM Resources in CloudFormation Templates</a>.</p> </li> <li> <p> 984 * <code>CAPABILITY_AUTO_EXPAND</code> </p> <p>Some template contain macros. Macros 985 * perform custom processing on templates; this can include simple actions like 986 * find-and-replace operations, all the way to extensive transformations of entire 987 * templates. Because of this, users typically create a change set from the 988 * processed template, so that they can review the changes resulting from the 989 * macros before actually creating the stack. If your stack template contains one 990 * or more macros, and you choose to create a stack directly from the processed 991 * template, without first reviewing the resulting changes in a change set, you 992 * must acknowledge this capability. This includes the <a 993 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> 994 * and <a 995 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> 996 * transforms, which are macros hosted by CloudFormation.</p> <p>If you want to 997 * create a stack from a stack template that contains macros <i>and</i> nested 998 * stacks, you must create the stack directly from the template using this 999 * capability.</p> <p>You should only create stacks directly from a 1000 * stack template that contains macros if you know what processing the macro 1001 * performs.</p> <p>Each macro relies on an underlying Lambda service function for 1002 * processing stack templates. Be aware that the Lambda function owner can update 1003 * the function operation without CloudFormation being notified.</p> 1004 * <p>For more information, see <a 1005 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using 1006 * CloudFormation Macros to Perform Custom Processing on Templates</a>.</p> </li> 1007 * </ul> 1008 */ AddCapabilities(Capability && value)1009 inline CreateStackRequest& AddCapabilities(Capability&& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(std::move(value)); return *this; } 1010 1011 1012 /** 1013 * <p>The template resource types that you have permissions to work with for this 1014 * create stack action, such as <code>AWS::EC2::Instance</code>, 1015 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1016 * following syntax to describe template resource types: <code>AWS::*</code> (for 1017 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1018 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1019 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1020 * particular Amazon Web Services service), and 1021 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1022 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1023 * doesn't include a resource that you're creating, the stack creation fails. By 1024 * default, CloudFormation grants permissions to all resource types. Identity and 1025 * Access Management (IAM) uses this parameter for CloudFormation-specific 1026 * condition keys in IAM policies. For more information, see <a 1027 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1028 * Access with Identity and Access Management</a>.</p> 1029 */ GetResourceTypes()1030 inline const Aws::Vector<Aws::String>& GetResourceTypes() const{ return m_resourceTypes; } 1031 1032 /** 1033 * <p>The template resource types that you have permissions to work with for this 1034 * create stack action, such as <code>AWS::EC2::Instance</code>, 1035 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1036 * following syntax to describe template resource types: <code>AWS::*</code> (for 1037 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1038 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1039 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1040 * particular Amazon Web Services service), and 1041 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1042 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1043 * doesn't include a resource that you're creating, the stack creation fails. By 1044 * default, CloudFormation grants permissions to all resource types. Identity and 1045 * Access Management (IAM) uses this parameter for CloudFormation-specific 1046 * condition keys in IAM policies. For more information, see <a 1047 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1048 * Access with Identity and Access Management</a>.</p> 1049 */ ResourceTypesHasBeenSet()1050 inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } 1051 1052 /** 1053 * <p>The template resource types that you have permissions to work with for this 1054 * create stack action, such as <code>AWS::EC2::Instance</code>, 1055 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1056 * following syntax to describe template resource types: <code>AWS::*</code> (for 1057 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1058 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1059 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1060 * particular Amazon Web Services service), and 1061 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1062 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1063 * doesn't include a resource that you're creating, the stack creation fails. By 1064 * default, CloudFormation grants permissions to all resource types. Identity and 1065 * Access Management (IAM) uses this parameter for CloudFormation-specific 1066 * condition keys in IAM policies. For more information, see <a 1067 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1068 * Access with Identity and Access Management</a>.</p> 1069 */ SetResourceTypes(const Aws::Vector<Aws::String> & value)1070 inline void SetResourceTypes(const Aws::Vector<Aws::String>& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } 1071 1072 /** 1073 * <p>The template resource types that you have permissions to work with for this 1074 * create stack action, such as <code>AWS::EC2::Instance</code>, 1075 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1076 * following syntax to describe template resource types: <code>AWS::*</code> (for 1077 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1078 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1079 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1080 * particular Amazon Web Services service), and 1081 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1082 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1083 * doesn't include a resource that you're creating, the stack creation fails. By 1084 * default, CloudFormation grants permissions to all resource types. Identity and 1085 * Access Management (IAM) uses this parameter for CloudFormation-specific 1086 * condition keys in IAM policies. For more information, see <a 1087 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1088 * Access with Identity and Access Management</a>.</p> 1089 */ SetResourceTypes(Aws::Vector<Aws::String> && value)1090 inline void SetResourceTypes(Aws::Vector<Aws::String>&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } 1091 1092 /** 1093 * <p>The template resource types that you have permissions to work with for this 1094 * create stack action, such as <code>AWS::EC2::Instance</code>, 1095 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1096 * following syntax to describe template resource types: <code>AWS::*</code> (for 1097 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1098 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1099 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1100 * particular Amazon Web Services service), and 1101 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1102 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1103 * doesn't include a resource that you're creating, the stack creation fails. By 1104 * default, CloudFormation grants permissions to all resource types. Identity and 1105 * Access Management (IAM) uses this parameter for CloudFormation-specific 1106 * condition keys in IAM policies. For more information, see <a 1107 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1108 * Access with Identity and Access Management</a>.</p> 1109 */ WithResourceTypes(const Aws::Vector<Aws::String> & value)1110 inline CreateStackRequest& WithResourceTypes(const Aws::Vector<Aws::String>& value) { SetResourceTypes(value); return *this;} 1111 1112 /** 1113 * <p>The template resource types that you have permissions to work with for this 1114 * create stack action, such as <code>AWS::EC2::Instance</code>, 1115 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1116 * following syntax to describe template resource types: <code>AWS::*</code> (for 1117 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1118 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1119 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1120 * particular Amazon Web Services service), and 1121 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1122 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1123 * doesn't include a resource that you're creating, the stack creation fails. By 1124 * default, CloudFormation grants permissions to all resource types. Identity and 1125 * Access Management (IAM) uses this parameter for CloudFormation-specific 1126 * condition keys in IAM policies. For more information, see <a 1127 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1128 * Access with Identity and Access Management</a>.</p> 1129 */ WithResourceTypes(Aws::Vector<Aws::String> && value)1130 inline CreateStackRequest& WithResourceTypes(Aws::Vector<Aws::String>&& value) { SetResourceTypes(std::move(value)); return *this;} 1131 1132 /** 1133 * <p>The template resource types that you have permissions to work with for this 1134 * create stack action, such as <code>AWS::EC2::Instance</code>, 1135 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1136 * following syntax to describe template resource types: <code>AWS::*</code> (for 1137 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1138 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1139 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1140 * particular Amazon Web Services service), and 1141 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1142 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1143 * doesn't include a resource that you're creating, the stack creation fails. By 1144 * default, CloudFormation grants permissions to all resource types. Identity and 1145 * Access Management (IAM) uses this parameter for CloudFormation-specific 1146 * condition keys in IAM policies. For more information, see <a 1147 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1148 * Access with Identity and Access Management</a>.</p> 1149 */ AddResourceTypes(const Aws::String & value)1150 inline CreateStackRequest& AddResourceTypes(const Aws::String& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } 1151 1152 /** 1153 * <p>The template resource types that you have permissions to work with for this 1154 * create stack action, such as <code>AWS::EC2::Instance</code>, 1155 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1156 * following syntax to describe template resource types: <code>AWS::*</code> (for 1157 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1158 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1159 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1160 * particular Amazon Web Services service), and 1161 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1162 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1163 * doesn't include a resource that you're creating, the stack creation fails. By 1164 * default, CloudFormation grants permissions to all resource types. Identity and 1165 * Access Management (IAM) uses this parameter for CloudFormation-specific 1166 * condition keys in IAM policies. For more information, see <a 1167 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1168 * Access with Identity and Access Management</a>.</p> 1169 */ AddResourceTypes(Aws::String && value)1170 inline CreateStackRequest& AddResourceTypes(Aws::String&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } 1171 1172 /** 1173 * <p>The template resource types that you have permissions to work with for this 1174 * create stack action, such as <code>AWS::EC2::Instance</code>, 1175 * <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the 1176 * following syntax to describe template resource types: <code>AWS::*</code> (for 1177 * all Amazon Web Services resources), <code>Custom::*</code> (for all custom 1178 * resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom 1179 * resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a 1180 * particular Amazon Web Services service), and 1181 * <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a 1182 * specific Amazon Web Services resource).</p> <p>If the list of resource types 1183 * doesn't include a resource that you're creating, the stack creation fails. By 1184 * default, CloudFormation grants permissions to all resource types. Identity and 1185 * Access Management (IAM) uses this parameter for CloudFormation-specific 1186 * condition keys in IAM policies. For more information, see <a 1187 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling 1188 * Access with Identity and Access Management</a>.</p> 1189 */ AddResourceTypes(const char * value)1190 inline CreateStackRequest& AddResourceTypes(const char* value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } 1191 1192 1193 /** 1194 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1195 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1196 * role's credentials to make calls on your behalf. CloudFormation always uses this 1197 * role for all future operations on the stack. As long as users have permission to 1198 * operate on the stack, CloudFormation uses this role even if the users don't have 1199 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1200 * you don't specify a value, CloudFormation uses the role that was previously 1201 * associated with the stack. If no role is available, CloudFormation uses a 1202 * temporary session that is generated from your user credentials.</p> 1203 */ GetRoleARN()1204 inline const Aws::String& GetRoleARN() const{ return m_roleARN; } 1205 1206 /** 1207 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1208 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1209 * role's credentials to make calls on your behalf. CloudFormation always uses this 1210 * role for all future operations on the stack. As long as users have permission to 1211 * operate on the stack, CloudFormation uses this role even if the users don't have 1212 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1213 * you don't specify a value, CloudFormation uses the role that was previously 1214 * associated with the stack. If no role is available, CloudFormation uses a 1215 * temporary session that is generated from your user credentials.</p> 1216 */ RoleARNHasBeenSet()1217 inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; } 1218 1219 /** 1220 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1221 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1222 * role's credentials to make calls on your behalf. CloudFormation always uses this 1223 * role for all future operations on the stack. As long as users have permission to 1224 * operate on the stack, CloudFormation uses this role even if the users don't have 1225 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1226 * you don't specify a value, CloudFormation uses the role that was previously 1227 * associated with the stack. If no role is available, CloudFormation uses a 1228 * temporary session that is generated from your user credentials.</p> 1229 */ SetRoleARN(const Aws::String & value)1230 inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; } 1231 1232 /** 1233 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1234 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1235 * role's credentials to make calls on your behalf. CloudFormation always uses this 1236 * role for all future operations on the stack. As long as users have permission to 1237 * operate on the stack, CloudFormation uses this role even if the users don't have 1238 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1239 * you don't specify a value, CloudFormation uses the role that was previously 1240 * associated with the stack. If no role is available, CloudFormation uses a 1241 * temporary session that is generated from your user credentials.</p> 1242 */ SetRoleARN(Aws::String && value)1243 inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); } 1244 1245 /** 1246 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1247 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1248 * role's credentials to make calls on your behalf. CloudFormation always uses this 1249 * role for all future operations on the stack. As long as users have permission to 1250 * operate on the stack, CloudFormation uses this role even if the users don't have 1251 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1252 * you don't specify a value, CloudFormation uses the role that was previously 1253 * associated with the stack. If no role is available, CloudFormation uses a 1254 * temporary session that is generated from your user credentials.</p> 1255 */ SetRoleARN(const char * value)1256 inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); } 1257 1258 /** 1259 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1260 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1261 * role's credentials to make calls on your behalf. CloudFormation always uses this 1262 * role for all future operations on the stack. As long as users have permission to 1263 * operate on the stack, CloudFormation uses this role even if the users don't have 1264 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1265 * you don't specify a value, CloudFormation uses the role that was previously 1266 * associated with the stack. If no role is available, CloudFormation uses a 1267 * temporary session that is generated from your user credentials.</p> 1268 */ WithRoleARN(const Aws::String & value)1269 inline CreateStackRequest& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;} 1270 1271 /** 1272 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1273 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1274 * role's credentials to make calls on your behalf. CloudFormation always uses this 1275 * role for all future operations on the stack. As long as users have permission to 1276 * operate on the stack, CloudFormation uses this role even if the users don't have 1277 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1278 * you don't specify a value, CloudFormation uses the role that was previously 1279 * associated with the stack. If no role is available, CloudFormation uses a 1280 * temporary session that is generated from your user credentials.</p> 1281 */ WithRoleARN(Aws::String && value)1282 inline CreateStackRequest& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;} 1283 1284 /** 1285 * <p>The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) 1286 * role that CloudFormation assumes to create the stack. CloudFormation uses the 1287 * role's credentials to make calls on your behalf. CloudFormation always uses this 1288 * role for all future operations on the stack. As long as users have permission to 1289 * operate on the stack, CloudFormation uses this role even if the users don't have 1290 * permission to pass it. Ensure that the role grants least privilege.</p> <p>If 1291 * you don't specify a value, CloudFormation uses the role that was previously 1292 * associated with the stack. If no role is available, CloudFormation uses a 1293 * temporary session that is generated from your user credentials.</p> 1294 */ WithRoleARN(const char * value)1295 inline CreateStackRequest& WithRoleARN(const char* value) { SetRoleARN(value); return *this;} 1296 1297 1298 /** 1299 * <p>Determines what action will be taken if stack creation fails. This must be 1300 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1301 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1302 * <p>Default: <code>ROLLBACK</code> </p> 1303 */ GetOnFailure()1304 inline const OnFailure& GetOnFailure() const{ return m_onFailure; } 1305 1306 /** 1307 * <p>Determines what action will be taken if stack creation fails. This must be 1308 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1309 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1310 * <p>Default: <code>ROLLBACK</code> </p> 1311 */ OnFailureHasBeenSet()1312 inline bool OnFailureHasBeenSet() const { return m_onFailureHasBeenSet; } 1313 1314 /** 1315 * <p>Determines what action will be taken if stack creation fails. This must be 1316 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1317 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1318 * <p>Default: <code>ROLLBACK</code> </p> 1319 */ SetOnFailure(const OnFailure & value)1320 inline void SetOnFailure(const OnFailure& value) { m_onFailureHasBeenSet = true; m_onFailure = value; } 1321 1322 /** 1323 * <p>Determines what action will be taken if stack creation fails. This must be 1324 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1325 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1326 * <p>Default: <code>ROLLBACK</code> </p> 1327 */ SetOnFailure(OnFailure && value)1328 inline void SetOnFailure(OnFailure&& value) { m_onFailureHasBeenSet = true; m_onFailure = std::move(value); } 1329 1330 /** 1331 * <p>Determines what action will be taken if stack creation fails. This must be 1332 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1333 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1334 * <p>Default: <code>ROLLBACK</code> </p> 1335 */ WithOnFailure(const OnFailure & value)1336 inline CreateStackRequest& WithOnFailure(const OnFailure& value) { SetOnFailure(value); return *this;} 1337 1338 /** 1339 * <p>Determines what action will be taken if stack creation fails. This must be 1340 * one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either 1341 * <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> 1342 * <p>Default: <code>ROLLBACK</code> </p> 1343 */ WithOnFailure(OnFailure && value)1344 inline CreateStackRequest& WithOnFailure(OnFailure&& value) { SetOnFailure(std::move(value)); return *this;} 1345 1346 1347 /** 1348 * <p>Structure containing the stack policy body. For more information, go to <a 1349 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1350 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1351 * You can specify either the <code>StackPolicyBody</code> or the 1352 * <code>StackPolicyURL</code> parameter, but not both.</p> 1353 */ GetStackPolicyBody()1354 inline const Aws::String& GetStackPolicyBody() const{ return m_stackPolicyBody; } 1355 1356 /** 1357 * <p>Structure containing the stack policy body. For more information, go to <a 1358 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1359 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1360 * You can specify either the <code>StackPolicyBody</code> or the 1361 * <code>StackPolicyURL</code> parameter, but not both.</p> 1362 */ StackPolicyBodyHasBeenSet()1363 inline bool StackPolicyBodyHasBeenSet() const { return m_stackPolicyBodyHasBeenSet; } 1364 1365 /** 1366 * <p>Structure containing the stack policy body. For more information, go to <a 1367 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1368 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1369 * You can specify either the <code>StackPolicyBody</code> or the 1370 * <code>StackPolicyURL</code> parameter, but not both.</p> 1371 */ SetStackPolicyBody(const Aws::String & value)1372 inline void SetStackPolicyBody(const Aws::String& value) { m_stackPolicyBodyHasBeenSet = true; m_stackPolicyBody = value; } 1373 1374 /** 1375 * <p>Structure containing the stack policy body. For more information, go to <a 1376 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1377 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1378 * You can specify either the <code>StackPolicyBody</code> or the 1379 * <code>StackPolicyURL</code> parameter, but not both.</p> 1380 */ SetStackPolicyBody(Aws::String && value)1381 inline void SetStackPolicyBody(Aws::String&& value) { m_stackPolicyBodyHasBeenSet = true; m_stackPolicyBody = std::move(value); } 1382 1383 /** 1384 * <p>Structure containing the stack policy body. For more information, go to <a 1385 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1386 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1387 * You can specify either the <code>StackPolicyBody</code> or the 1388 * <code>StackPolicyURL</code> parameter, but not both.</p> 1389 */ SetStackPolicyBody(const char * value)1390 inline void SetStackPolicyBody(const char* value) { m_stackPolicyBodyHasBeenSet = true; m_stackPolicyBody.assign(value); } 1391 1392 /** 1393 * <p>Structure containing the stack policy body. For more information, go to <a 1394 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1395 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1396 * You can specify either the <code>StackPolicyBody</code> or the 1397 * <code>StackPolicyURL</code> parameter, but not both.</p> 1398 */ WithStackPolicyBody(const Aws::String & value)1399 inline CreateStackRequest& WithStackPolicyBody(const Aws::String& value) { SetStackPolicyBody(value); return *this;} 1400 1401 /** 1402 * <p>Structure containing the stack policy body. For more information, go to <a 1403 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1404 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1405 * You can specify either the <code>StackPolicyBody</code> or the 1406 * <code>StackPolicyURL</code> parameter, but not both.</p> 1407 */ WithStackPolicyBody(Aws::String && value)1408 inline CreateStackRequest& WithStackPolicyBody(Aws::String&& value) { SetStackPolicyBody(std::move(value)); return *this;} 1409 1410 /** 1411 * <p>Structure containing the stack policy body. For more information, go to <a 1412 * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> 1413 * Prevent Updates to Stack Resources</a> in the <i>CloudFormation User Guide</i>. 1414 * You can specify either the <code>StackPolicyBody</code> or the 1415 * <code>StackPolicyURL</code> parameter, but not both.</p> 1416 */ WithStackPolicyBody(const char * value)1417 inline CreateStackRequest& WithStackPolicyBody(const char* value) { SetStackPolicyBody(value); return *this;} 1418 1419 1420 /** 1421 * <p>Location of a file containing the stack policy. The URL must point to a 1422 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1423 * stack. You can specify either the <code>StackPolicyBody</code> or the 1424 * <code>StackPolicyURL</code> parameter, but not both.</p> 1425 */ GetStackPolicyURL()1426 inline const Aws::String& GetStackPolicyURL() const{ return m_stackPolicyURL; } 1427 1428 /** 1429 * <p>Location of a file containing the stack policy. The URL must point to a 1430 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1431 * stack. You can specify either the <code>StackPolicyBody</code> or the 1432 * <code>StackPolicyURL</code> parameter, but not both.</p> 1433 */ StackPolicyURLHasBeenSet()1434 inline bool StackPolicyURLHasBeenSet() const { return m_stackPolicyURLHasBeenSet; } 1435 1436 /** 1437 * <p>Location of a file containing the stack policy. The URL must point to a 1438 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1439 * stack. You can specify either the <code>StackPolicyBody</code> or the 1440 * <code>StackPolicyURL</code> parameter, but not both.</p> 1441 */ SetStackPolicyURL(const Aws::String & value)1442 inline void SetStackPolicyURL(const Aws::String& value) { m_stackPolicyURLHasBeenSet = true; m_stackPolicyURL = value; } 1443 1444 /** 1445 * <p>Location of a file containing the stack policy. The URL must point to a 1446 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1447 * stack. You can specify either the <code>StackPolicyBody</code> or the 1448 * <code>StackPolicyURL</code> parameter, but not both.</p> 1449 */ SetStackPolicyURL(Aws::String && value)1450 inline void SetStackPolicyURL(Aws::String&& value) { m_stackPolicyURLHasBeenSet = true; m_stackPolicyURL = std::move(value); } 1451 1452 /** 1453 * <p>Location of a file containing the stack policy. The URL must point to a 1454 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1455 * stack. You can specify either the <code>StackPolicyBody</code> or the 1456 * <code>StackPolicyURL</code> parameter, but not both.</p> 1457 */ SetStackPolicyURL(const char * value)1458 inline void SetStackPolicyURL(const char* value) { m_stackPolicyURLHasBeenSet = true; m_stackPolicyURL.assign(value); } 1459 1460 /** 1461 * <p>Location of a file containing the stack policy. The URL must point to a 1462 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1463 * stack. You can specify either the <code>StackPolicyBody</code> or the 1464 * <code>StackPolicyURL</code> parameter, but not both.</p> 1465 */ WithStackPolicyURL(const Aws::String & value)1466 inline CreateStackRequest& WithStackPolicyURL(const Aws::String& value) { SetStackPolicyURL(value); return *this;} 1467 1468 /** 1469 * <p>Location of a file containing the stack policy. The URL must point to a 1470 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1471 * stack. You can specify either the <code>StackPolicyBody</code> or the 1472 * <code>StackPolicyURL</code> parameter, but not both.</p> 1473 */ WithStackPolicyURL(Aws::String && value)1474 inline CreateStackRequest& WithStackPolicyURL(Aws::String&& value) { SetStackPolicyURL(std::move(value)); return *this;} 1475 1476 /** 1477 * <p>Location of a file containing the stack policy. The URL must point to a 1478 * policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the 1479 * stack. You can specify either the <code>StackPolicyBody</code> or the 1480 * <code>StackPolicyURL</code> parameter, but not both.</p> 1481 */ WithStackPolicyURL(const char * value)1482 inline CreateStackRequest& WithStackPolicyURL(const char* value) { SetStackPolicyURL(value); return *this;} 1483 1484 1485 /** 1486 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1487 * these tags to the resources created in the stack. A maximum number of 50 tags 1488 * can be specified.</p> 1489 */ GetTags()1490 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 1491 1492 /** 1493 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1494 * these tags to the resources created in the stack. A maximum number of 50 tags 1495 * can be specified.</p> 1496 */ TagsHasBeenSet()1497 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 1498 1499 /** 1500 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1501 * these tags to the resources created in the stack. A maximum number of 50 tags 1502 * can be specified.</p> 1503 */ SetTags(const Aws::Vector<Tag> & value)1504 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 1505 1506 /** 1507 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1508 * these tags to the resources created in the stack. A maximum number of 50 tags 1509 * can be specified.</p> 1510 */ SetTags(Aws::Vector<Tag> && value)1511 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 1512 1513 /** 1514 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1515 * these tags to the resources created in the stack. A maximum number of 50 tags 1516 * can be specified.</p> 1517 */ WithTags(const Aws::Vector<Tag> & value)1518 inline CreateStackRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 1519 1520 /** 1521 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1522 * these tags to the resources created in the stack. A maximum number of 50 tags 1523 * can be specified.</p> 1524 */ WithTags(Aws::Vector<Tag> && value)1525 inline CreateStackRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 1526 1527 /** 1528 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1529 * these tags to the resources created in the stack. A maximum number of 50 tags 1530 * can be specified.</p> 1531 */ AddTags(const Tag & value)1532 inline CreateStackRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 1533 1534 /** 1535 * <p>Key-value pairs to associate with this stack. CloudFormation also propagates 1536 * these tags to the resources created in the stack. A maximum number of 50 tags 1537 * can be specified.</p> 1538 */ AddTags(Tag && value)1539 inline CreateStackRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 1540 1541 1542 /** 1543 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1544 * token if you plan to retry requests so that CloudFormation knows that you're not 1545 * attempting to create a stack with the same name. You might retry 1546 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1547 * received them.</p> <p>All events triggered by a given stack operation are 1548 * assigned the same client request token, which you can use to track operations. 1549 * For example, if you execute a <code>CreateStack</code> operation with the token 1550 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1551 * operation will have <code>ClientRequestToken</code> set as 1552 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1553 * request token on the Events tab. Stack operations that are initiated from the 1554 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1555 * easily identify the stack operation . For example, if you create a stack using 1556 * the console, each stack event would be assigned the same token in the following 1557 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1558 * </p> 1559 */ GetClientRequestToken()1560 inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } 1561 1562 /** 1563 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1564 * token if you plan to retry requests so that CloudFormation knows that you're not 1565 * attempting to create a stack with the same name. You might retry 1566 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1567 * received them.</p> <p>All events triggered by a given stack operation are 1568 * assigned the same client request token, which you can use to track operations. 1569 * For example, if you execute a <code>CreateStack</code> operation with the token 1570 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1571 * operation will have <code>ClientRequestToken</code> set as 1572 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1573 * request token on the Events tab. Stack operations that are initiated from the 1574 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1575 * easily identify the stack operation . For example, if you create a stack using 1576 * the console, each stack event would be assigned the same token in the following 1577 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1578 * </p> 1579 */ ClientRequestTokenHasBeenSet()1580 inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } 1581 1582 /** 1583 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1584 * token if you plan to retry requests so that CloudFormation knows that you're not 1585 * attempting to create a stack with the same name. You might retry 1586 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1587 * received them.</p> <p>All events triggered by a given stack operation are 1588 * assigned the same client request token, which you can use to track operations. 1589 * For example, if you execute a <code>CreateStack</code> operation with the token 1590 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1591 * operation will have <code>ClientRequestToken</code> set as 1592 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1593 * request token on the Events tab. Stack operations that are initiated from the 1594 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1595 * easily identify the stack operation . For example, if you create a stack using 1596 * the console, each stack event would be assigned the same token in the following 1597 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1598 * </p> 1599 */ SetClientRequestToken(const Aws::String & value)1600 inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } 1601 1602 /** 1603 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1604 * token if you plan to retry requests so that CloudFormation knows that you're not 1605 * attempting to create a stack with the same name. You might retry 1606 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1607 * received them.</p> <p>All events triggered by a given stack operation are 1608 * assigned the same client request token, which you can use to track operations. 1609 * For example, if you execute a <code>CreateStack</code> operation with the token 1610 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1611 * operation will have <code>ClientRequestToken</code> set as 1612 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1613 * request token on the Events tab. Stack operations that are initiated from the 1614 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1615 * easily identify the stack operation . For example, if you create a stack using 1616 * the console, each stack event would be assigned the same token in the following 1617 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1618 * </p> 1619 */ SetClientRequestToken(Aws::String && value)1620 inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } 1621 1622 /** 1623 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1624 * token if you plan to retry requests so that CloudFormation knows that you're not 1625 * attempting to create a stack with the same name. You might retry 1626 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1627 * received them.</p> <p>All events triggered by a given stack operation are 1628 * assigned the same client request token, which you can use to track operations. 1629 * For example, if you execute a <code>CreateStack</code> operation with the token 1630 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1631 * operation will have <code>ClientRequestToken</code> set as 1632 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1633 * request token on the Events tab. Stack operations that are initiated from the 1634 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1635 * easily identify the stack operation . For example, if you create a stack using 1636 * the console, each stack event would be assigned the same token in the following 1637 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1638 * </p> 1639 */ SetClientRequestToken(const char * value)1640 inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } 1641 1642 /** 1643 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1644 * token if you plan to retry requests so that CloudFormation knows that you're not 1645 * attempting to create a stack with the same name. You might retry 1646 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1647 * received them.</p> <p>All events triggered by a given stack operation are 1648 * assigned the same client request token, which you can use to track operations. 1649 * For example, if you execute a <code>CreateStack</code> operation with the token 1650 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1651 * operation will have <code>ClientRequestToken</code> set as 1652 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1653 * request token on the Events tab. Stack operations that are initiated from the 1654 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1655 * easily identify the stack operation . For example, if you create a stack using 1656 * the console, each stack event would be assigned the same token in the following 1657 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1658 * </p> 1659 */ WithClientRequestToken(const Aws::String & value)1660 inline CreateStackRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} 1661 1662 /** 1663 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1664 * token if you plan to retry requests so that CloudFormation knows that you're not 1665 * attempting to create a stack with the same name. You might retry 1666 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1667 * received them.</p> <p>All events triggered by a given stack operation are 1668 * assigned the same client request token, which you can use to track operations. 1669 * For example, if you execute a <code>CreateStack</code> operation with the token 1670 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1671 * operation will have <code>ClientRequestToken</code> set as 1672 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1673 * request token on the Events tab. Stack operations that are initiated from the 1674 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1675 * easily identify the stack operation . For example, if you create a stack using 1676 * the console, each stack event would be assigned the same token in the following 1677 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1678 * </p> 1679 */ WithClientRequestToken(Aws::String && value)1680 inline CreateStackRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} 1681 1682 /** 1683 * <p>A unique identifier for this <code>CreateStack</code> request. Specify this 1684 * token if you plan to retry requests so that CloudFormation knows that you're not 1685 * attempting to create a stack with the same name. You might retry 1686 * <code>CreateStack</code> requests to ensure that CloudFormation successfully 1687 * received them.</p> <p>All events triggered by a given stack operation are 1688 * assigned the same client request token, which you can use to track operations. 1689 * For example, if you execute a <code>CreateStack</code> operation with the token 1690 * <code>token1</code>, then all the <code>StackEvents</code> generated by that 1691 * operation will have <code>ClientRequestToken</code> set as 1692 * <code>token1</code>.</p> <p>In the console, stack operations display the client 1693 * request token on the Events tab. Stack operations that are initiated from the 1694 * console use the token format <i>Console-StackOperation-ID</i>, which helps you 1695 * easily identify the stack operation . For example, if you create a stack using 1696 * the console, each stack event would be assigned the same token in the following 1697 * format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. 1698 * </p> 1699 */ WithClientRequestToken(const char * value)1700 inline CreateStackRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} 1701 1702 1703 /** 1704 * <p>Whether to enable termination protection on the specified stack. If a user 1705 * attempts to delete a stack with termination protection enabled, the operation 1706 * fails and the stack remains unchanged. For more information, see <a 1707 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting 1708 * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>. 1709 * Termination protection is disabled on stacks by default.</p> <p>For <a 1710 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested 1711 * stacks</a>, termination protection is set on the root stack and cannot be 1712 * changed directly on the nested stack.</p> 1713 */ GetEnableTerminationProtection()1714 inline bool GetEnableTerminationProtection() const{ return m_enableTerminationProtection; } 1715 1716 /** 1717 * <p>Whether to enable termination protection on the specified stack. If a user 1718 * attempts to delete a stack with termination protection enabled, the operation 1719 * fails and the stack remains unchanged. For more information, see <a 1720 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting 1721 * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>. 1722 * Termination protection is disabled on stacks by default.</p> <p>For <a 1723 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested 1724 * stacks</a>, termination protection is set on the root stack and cannot be 1725 * changed directly on the nested stack.</p> 1726 */ EnableTerminationProtectionHasBeenSet()1727 inline bool EnableTerminationProtectionHasBeenSet() const { return m_enableTerminationProtectionHasBeenSet; } 1728 1729 /** 1730 * <p>Whether to enable termination protection on the specified stack. If a user 1731 * attempts to delete a stack with termination protection enabled, the operation 1732 * fails and the stack remains unchanged. For more information, see <a 1733 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting 1734 * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>. 1735 * Termination protection is disabled on stacks by default.</p> <p>For <a 1736 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested 1737 * stacks</a>, termination protection is set on the root stack and cannot be 1738 * changed directly on the nested stack.</p> 1739 */ SetEnableTerminationProtection(bool value)1740 inline void SetEnableTerminationProtection(bool value) { m_enableTerminationProtectionHasBeenSet = true; m_enableTerminationProtection = value; } 1741 1742 /** 1743 * <p>Whether to enable termination protection on the specified stack. If a user 1744 * attempts to delete a stack with termination protection enabled, the operation 1745 * fails and the stack remains unchanged. For more information, see <a 1746 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting 1747 * a Stack From Being Deleted</a> in the <i>CloudFormation User Guide</i>. 1748 * Termination protection is disabled on stacks by default.</p> <p>For <a 1749 * href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested 1750 * stacks</a>, termination protection is set on the root stack and cannot be 1751 * changed directly on the nested stack.</p> 1752 */ WithEnableTerminationProtection(bool value)1753 inline CreateStackRequest& WithEnableTerminationProtection(bool value) { SetEnableTerminationProtection(value); return *this;} 1754 1755 private: 1756 1757 Aws::String m_stackName; 1758 bool m_stackNameHasBeenSet; 1759 1760 Aws::String m_templateBody; 1761 bool m_templateBodyHasBeenSet; 1762 1763 Aws::String m_templateURL; 1764 bool m_templateURLHasBeenSet; 1765 1766 Aws::Vector<Parameter> m_parameters; 1767 bool m_parametersHasBeenSet; 1768 1769 bool m_disableRollback; 1770 bool m_disableRollbackHasBeenSet; 1771 1772 RollbackConfiguration m_rollbackConfiguration; 1773 bool m_rollbackConfigurationHasBeenSet; 1774 1775 int m_timeoutInMinutes; 1776 bool m_timeoutInMinutesHasBeenSet; 1777 1778 Aws::Vector<Aws::String> m_notificationARNs; 1779 bool m_notificationARNsHasBeenSet; 1780 1781 Aws::Vector<Capability> m_capabilities; 1782 bool m_capabilitiesHasBeenSet; 1783 1784 Aws::Vector<Aws::String> m_resourceTypes; 1785 bool m_resourceTypesHasBeenSet; 1786 1787 Aws::String m_roleARN; 1788 bool m_roleARNHasBeenSet; 1789 1790 OnFailure m_onFailure; 1791 bool m_onFailureHasBeenSet; 1792 1793 Aws::String m_stackPolicyBody; 1794 bool m_stackPolicyBodyHasBeenSet; 1795 1796 Aws::String m_stackPolicyURL; 1797 bool m_stackPolicyURLHasBeenSet; 1798 1799 Aws::Vector<Tag> m_tags; 1800 bool m_tagsHasBeenSet; 1801 1802 Aws::String m_clientRequestToken; 1803 bool m_clientRequestTokenHasBeenSet; 1804 1805 bool m_enableTerminationProtection; 1806 bool m_enableTerminationProtectionHasBeenSet; 1807 }; 1808 1809 } // namespace Model 1810 } // namespace CloudFormation 1811 } // namespace Aws 1812