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/servicecatalog/ServiceCatalog_EXPORTS.h> 8 #include <aws/servicecatalog/ServiceCatalogRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <utility> 11 #include <aws/core/utils/UUID.h> 12 13 namespace Aws 14 { 15 namespace ServiceCatalog 16 { 17 namespace Model 18 { 19 20 /** 21 */ 22 class AWS_SERVICECATALOG_API CreateConstraintRequest : public ServiceCatalogRequest 23 { 24 public: 25 CreateConstraintRequest(); 26 27 // Service request name is the Operation name which will send this request out, 28 // each operation should has unique request name, so that we can get operation's name from this request. 29 // Note: this is not true for response, multiple operations may have the same response name, 30 // so we can not get operation's name from response. GetServiceRequestName()31 inline virtual const char* GetServiceRequestName() const override { return "CreateConstraint"; } 32 33 Aws::String SerializePayload() const override; 34 35 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 36 37 38 /** 39 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 40 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 41 * Chinese</p> </li> </ul> 42 */ GetAcceptLanguage()43 inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; } 44 45 /** 46 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 47 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 48 * Chinese</p> </li> </ul> 49 */ AcceptLanguageHasBeenSet()50 inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; } 51 52 /** 53 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 54 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 55 * Chinese</p> </li> </ul> 56 */ SetAcceptLanguage(const Aws::String & value)57 inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; } 58 59 /** 60 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 61 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 62 * Chinese</p> </li> </ul> 63 */ SetAcceptLanguage(Aws::String && value)64 inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); } 65 66 /** 67 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 68 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 69 * Chinese</p> </li> </ul> 70 */ SetAcceptLanguage(const char * value)71 inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); } 72 73 /** 74 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 75 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 76 * Chinese</p> </li> </ul> 77 */ WithAcceptLanguage(const Aws::String & value)78 inline CreateConstraintRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;} 79 80 /** 81 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 82 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 83 * Chinese</p> </li> </ul> 84 */ WithAcceptLanguage(Aws::String && value)85 inline CreateConstraintRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;} 86 87 /** 88 * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p> 89 * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> - 90 * Chinese</p> </li> </ul> 91 */ WithAcceptLanguage(const char * value)92 inline CreateConstraintRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;} 93 94 95 /** 96 * <p>The portfolio identifier.</p> 97 */ GetPortfolioId()98 inline const Aws::String& GetPortfolioId() const{ return m_portfolioId; } 99 100 /** 101 * <p>The portfolio identifier.</p> 102 */ PortfolioIdHasBeenSet()103 inline bool PortfolioIdHasBeenSet() const { return m_portfolioIdHasBeenSet; } 104 105 /** 106 * <p>The portfolio identifier.</p> 107 */ SetPortfolioId(const Aws::String & value)108 inline void SetPortfolioId(const Aws::String& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = value; } 109 110 /** 111 * <p>The portfolio identifier.</p> 112 */ SetPortfolioId(Aws::String && value)113 inline void SetPortfolioId(Aws::String&& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = std::move(value); } 114 115 /** 116 * <p>The portfolio identifier.</p> 117 */ SetPortfolioId(const char * value)118 inline void SetPortfolioId(const char* value) { m_portfolioIdHasBeenSet = true; m_portfolioId.assign(value); } 119 120 /** 121 * <p>The portfolio identifier.</p> 122 */ WithPortfolioId(const Aws::String & value)123 inline CreateConstraintRequest& WithPortfolioId(const Aws::String& value) { SetPortfolioId(value); return *this;} 124 125 /** 126 * <p>The portfolio identifier.</p> 127 */ WithPortfolioId(Aws::String && value)128 inline CreateConstraintRequest& WithPortfolioId(Aws::String&& value) { SetPortfolioId(std::move(value)); return *this;} 129 130 /** 131 * <p>The portfolio identifier.</p> 132 */ WithPortfolioId(const char * value)133 inline CreateConstraintRequest& WithPortfolioId(const char* value) { SetPortfolioId(value); return *this;} 134 135 136 /** 137 * <p>The product identifier.</p> 138 */ GetProductId()139 inline const Aws::String& GetProductId() const{ return m_productId; } 140 141 /** 142 * <p>The product identifier.</p> 143 */ ProductIdHasBeenSet()144 inline bool ProductIdHasBeenSet() const { return m_productIdHasBeenSet; } 145 146 /** 147 * <p>The product identifier.</p> 148 */ SetProductId(const Aws::String & value)149 inline void SetProductId(const Aws::String& value) { m_productIdHasBeenSet = true; m_productId = value; } 150 151 /** 152 * <p>The product identifier.</p> 153 */ SetProductId(Aws::String && value)154 inline void SetProductId(Aws::String&& value) { m_productIdHasBeenSet = true; m_productId = std::move(value); } 155 156 /** 157 * <p>The product identifier.</p> 158 */ SetProductId(const char * value)159 inline void SetProductId(const char* value) { m_productIdHasBeenSet = true; m_productId.assign(value); } 160 161 /** 162 * <p>The product identifier.</p> 163 */ WithProductId(const Aws::String & value)164 inline CreateConstraintRequest& WithProductId(const Aws::String& value) { SetProductId(value); return *this;} 165 166 /** 167 * <p>The product identifier.</p> 168 */ WithProductId(Aws::String && value)169 inline CreateConstraintRequest& WithProductId(Aws::String&& value) { SetProductId(std::move(value)); return *this;} 170 171 /** 172 * <p>The product identifier.</p> 173 */ WithProductId(const char * value)174 inline CreateConstraintRequest& WithProductId(const char* value) { SetProductId(value); return *this;} 175 176 177 /** 178 * <p>The constraint parameters, in JSON format. The syntax depends on the 179 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 180 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 181 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 182 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 183 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 184 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 185 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 186 * the IAM role with that name in the account will be used. This allows launch-role 187 * constraints to be account-agnostic so the administrator can create fewer 188 * resources per shared account.</p> <p>The given role name must exist in 189 * the account used to create the launch constraint and the account of the user who 190 * launches a product with this launch constraint.</p> <p>You cannot have 191 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 192 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 193 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 194 * <code>NotificationArns</code> property as follows:</p> <p> 195 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 196 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 197 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 198 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 199 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 200 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 201 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 202 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 203 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 204 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 205 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 206 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 207 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 208 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 209 * property. For more information, see <a 210 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 211 * Constraint Rules</a>.</p> </dd> </dl> 212 */ GetParameters()213 inline const Aws::String& GetParameters() const{ return m_parameters; } 214 215 /** 216 * <p>The constraint parameters, in JSON format. The syntax depends on the 217 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 218 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 219 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 220 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 221 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 222 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 223 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 224 * the IAM role with that name in the account will be used. This allows launch-role 225 * constraints to be account-agnostic so the administrator can create fewer 226 * resources per shared account.</p> <p>The given role name must exist in 227 * the account used to create the launch constraint and the account of the user who 228 * launches a product with this launch constraint.</p> <p>You cannot have 229 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 230 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 231 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 232 * <code>NotificationArns</code> property as follows:</p> <p> 233 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 234 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 235 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 236 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 237 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 238 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 239 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 240 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 241 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 242 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 243 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 244 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 245 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 246 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 247 * property. For more information, see <a 248 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 249 * Constraint Rules</a>.</p> </dd> </dl> 250 */ ParametersHasBeenSet()251 inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } 252 253 /** 254 * <p>The constraint parameters, in JSON format. The syntax depends on the 255 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 256 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 257 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 258 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 259 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 260 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 261 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 262 * the IAM role with that name in the account will be used. This allows launch-role 263 * constraints to be account-agnostic so the administrator can create fewer 264 * resources per shared account.</p> <p>The given role name must exist in 265 * the account used to create the launch constraint and the account of the user who 266 * launches a product with this launch constraint.</p> <p>You cannot have 267 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 268 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 269 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 270 * <code>NotificationArns</code> property as follows:</p> <p> 271 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 272 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 273 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 274 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 275 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 276 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 277 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 278 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 279 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 280 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 281 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 282 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 283 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 284 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 285 * property. For more information, see <a 286 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 287 * Constraint Rules</a>.</p> </dd> </dl> 288 */ SetParameters(const Aws::String & value)289 inline void SetParameters(const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters = value; } 290 291 /** 292 * <p>The constraint parameters, in JSON format. The syntax depends on the 293 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 294 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 295 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 296 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 297 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 298 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 299 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 300 * the IAM role with that name in the account will be used. This allows launch-role 301 * constraints to be account-agnostic so the administrator can create fewer 302 * resources per shared account.</p> <p>The given role name must exist in 303 * the account used to create the launch constraint and the account of the user who 304 * launches a product with this launch constraint.</p> <p>You cannot have 305 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 306 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 307 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 308 * <code>NotificationArns</code> property as follows:</p> <p> 309 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 310 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 311 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 312 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 313 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 314 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 315 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 316 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 317 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 318 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 319 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 320 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 321 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 322 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 323 * property. For more information, see <a 324 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 325 * Constraint Rules</a>.</p> </dd> </dl> 326 */ SetParameters(Aws::String && value)327 inline void SetParameters(Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } 328 329 /** 330 * <p>The constraint parameters, in JSON format. The syntax depends on the 331 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 332 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 333 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 334 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 335 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 336 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 337 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 338 * the IAM role with that name in the account will be used. This allows launch-role 339 * constraints to be account-agnostic so the administrator can create fewer 340 * resources per shared account.</p> <p>The given role name must exist in 341 * the account used to create the launch constraint and the account of the user who 342 * launches a product with this launch constraint.</p> <p>You cannot have 343 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 344 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 345 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 346 * <code>NotificationArns</code> property as follows:</p> <p> 347 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 348 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 349 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 350 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 351 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 352 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 353 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 354 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 355 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 356 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 357 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 358 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 359 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 360 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 361 * property. For more information, see <a 362 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 363 * Constraint Rules</a>.</p> </dd> </dl> 364 */ SetParameters(const char * value)365 inline void SetParameters(const char* value) { m_parametersHasBeenSet = true; m_parameters.assign(value); } 366 367 /** 368 * <p>The constraint parameters, in JSON format. The syntax depends on the 369 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 370 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 371 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 372 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 373 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 374 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 375 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 376 * the IAM role with that name in the account will be used. This allows launch-role 377 * constraints to be account-agnostic so the administrator can create fewer 378 * resources per shared account.</p> <p>The given role name must exist in 379 * the account used to create the launch constraint and the account of the user who 380 * launches a product with this launch constraint.</p> <p>You cannot have 381 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 382 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 383 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 384 * <code>NotificationArns</code> property as follows:</p> <p> 385 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 386 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 387 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 388 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 389 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 390 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 391 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 392 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 393 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 394 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 395 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 396 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 397 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 398 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 399 * property. For more information, see <a 400 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 401 * Constraint Rules</a>.</p> </dd> </dl> 402 */ WithParameters(const Aws::String & value)403 inline CreateConstraintRequest& WithParameters(const Aws::String& value) { SetParameters(value); return *this;} 404 405 /** 406 * <p>The constraint parameters, in JSON format. The syntax depends on the 407 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 408 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 409 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 410 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 411 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 412 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 413 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 414 * the IAM role with that name in the account will be used. This allows launch-role 415 * constraints to be account-agnostic so the administrator can create fewer 416 * resources per shared account.</p> <p>The given role name must exist in 417 * the account used to create the launch constraint and the account of the user who 418 * launches a product with this launch constraint.</p> <p>You cannot have 419 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 420 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 421 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 422 * <code>NotificationArns</code> property as follows:</p> <p> 423 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 424 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 425 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 426 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 427 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 428 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 429 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 430 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 431 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 432 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 433 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 434 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 435 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 436 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 437 * property. For more information, see <a 438 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 439 * Constraint Rules</a>.</p> </dd> </dl> 440 */ WithParameters(Aws::String && value)441 inline CreateConstraintRequest& WithParameters(Aws::String&& value) { SetParameters(std::move(value)); return *this;} 442 443 /** 444 * <p>The constraint parameters, in JSON format. The syntax depends on the 445 * constraint type as follows:</p> <dl> <dt>LAUNCH</dt> <dd> <p>You are required to 446 * specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but 447 * can't use both.</p> <p>Specify the <code>RoleArn</code> property as follows:</p> 448 * <p> <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code> </p> 449 * <p>Specify the <code>LocalRoleName</code> property as follows:</p> <p> 450 * <code>{"LocalRoleName": "SCBasicLaunchRole"}</code> </p> <p>If you specify the 451 * <code>LocalRoleName</code> property, when an account uses the launch constraint, 452 * the IAM role with that name in the account will be used. This allows launch-role 453 * constraints to be account-agnostic so the administrator can create fewer 454 * resources per shared account.</p> <p>The given role name must exist in 455 * the account used to create the launch constraint and the account of the user who 456 * launches a product with this launch constraint.</p> <p>You cannot have 457 * both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint.</p> <p>You 458 * also cannot have more than one <code>LAUNCH</code> constraint on a product and 459 * portfolio.</p> </dd> <dt>NOTIFICATION</dt> <dd> <p>Specify the 460 * <code>NotificationArns</code> property as follows:</p> <p> 461 * <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code> 462 * </p> </dd> <dt>RESOURCE_UPDATE</dt> <dd> <p>Specify the 463 * <code>TagUpdatesOnProvisionedProduct</code> property as follows:</p> <p> 464 * <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code> 465 * </p> <p>The <code>TagUpdatesOnProvisionedProduct</code> property accepts a 466 * string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>.</p> </dd> 467 * <dt>STACKSET</dt> <dd> <p>Specify the <code>Parameters</code> property as 468 * follows:</p> <p> <code>{"Version": "String", "Properties": {"AccountList": [ 469 * "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": 470 * "String"}}</code> </p> <p>You cannot have both a <code>LAUNCH</code> and a 471 * <code>STACKSET</code> constraint.</p> <p>You also cannot have more than one 472 * <code>STACKSET</code> constraint on a product and portfolio.</p> <p>Products 473 * with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack 474 * set.</p> </dd> <dt>TEMPLATE</dt> <dd> <p>Specify the <code>Rules</code> 475 * property. For more information, see <a 476 * href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template 477 * Constraint Rules</a>.</p> </dd> </dl> 478 */ WithParameters(const char * value)479 inline CreateConstraintRequest& WithParameters(const char* value) { SetParameters(value); return *this;} 480 481 482 /** 483 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 484 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 485 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 486 * <code>TEMPLATE</code> </p> </li> </ul> 487 */ GetType()488 inline const Aws::String& GetType() const{ return m_type; } 489 490 /** 491 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 492 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 493 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 494 * <code>TEMPLATE</code> </p> </li> </ul> 495 */ TypeHasBeenSet()496 inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } 497 498 /** 499 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 500 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 501 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 502 * <code>TEMPLATE</code> </p> </li> </ul> 503 */ SetType(const Aws::String & value)504 inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } 505 506 /** 507 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 508 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 509 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 510 * <code>TEMPLATE</code> </p> </li> </ul> 511 */ SetType(Aws::String && value)512 inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } 513 514 /** 515 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 516 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 517 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 518 * <code>TEMPLATE</code> </p> </li> </ul> 519 */ SetType(const char * value)520 inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } 521 522 /** 523 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 524 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 525 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 526 * <code>TEMPLATE</code> </p> </li> </ul> 527 */ WithType(const Aws::String & value)528 inline CreateConstraintRequest& WithType(const Aws::String& value) { SetType(value); return *this;} 529 530 /** 531 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 532 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 533 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 534 * <code>TEMPLATE</code> </p> </li> </ul> 535 */ WithType(Aws::String && value)536 inline CreateConstraintRequest& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} 537 538 /** 539 * <p>The type of constraint.</p> <ul> <li> <p> <code>LAUNCH</code> </p> </li> <li> 540 * <p> <code>NOTIFICATION</code> </p> </li> <li> <p> <code>RESOURCE_UPDATE</code> 541 * </p> </li> <li> <p> <code>STACKSET</code> </p> </li> <li> <p> 542 * <code>TEMPLATE</code> </p> </li> </ul> 543 */ WithType(const char * value)544 inline CreateConstraintRequest& WithType(const char* value) { SetType(value); return *this;} 545 546 547 /** 548 * <p>The description of the constraint.</p> 549 */ GetDescription()550 inline const Aws::String& GetDescription() const{ return m_description; } 551 552 /** 553 * <p>The description of the constraint.</p> 554 */ DescriptionHasBeenSet()555 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } 556 557 /** 558 * <p>The description of the constraint.</p> 559 */ SetDescription(const Aws::String & value)560 inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } 561 562 /** 563 * <p>The description of the constraint.</p> 564 */ SetDescription(Aws::String && value)565 inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } 566 567 /** 568 * <p>The description of the constraint.</p> 569 */ SetDescription(const char * value)570 inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } 571 572 /** 573 * <p>The description of the constraint.</p> 574 */ WithDescription(const Aws::String & value)575 inline CreateConstraintRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} 576 577 /** 578 * <p>The description of the constraint.</p> 579 */ WithDescription(Aws::String && value)580 inline CreateConstraintRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} 581 582 /** 583 * <p>The description of the constraint.</p> 584 */ WithDescription(const char * value)585 inline CreateConstraintRequest& WithDescription(const char* value) { SetDescription(value); return *this;} 586 587 588 /** 589 * <p>A unique identifier that you provide to ensure idempotency. If multiple 590 * requests differ only by the idempotency token, the same response is returned for 591 * each repeated request.</p> 592 */ GetIdempotencyToken()593 inline const Aws::String& GetIdempotencyToken() const{ return m_idempotencyToken; } 594 595 /** 596 * <p>A unique identifier that you provide to ensure idempotency. If multiple 597 * requests differ only by the idempotency token, the same response is returned for 598 * each repeated request.</p> 599 */ IdempotencyTokenHasBeenSet()600 inline bool IdempotencyTokenHasBeenSet() const { return m_idempotencyTokenHasBeenSet; } 601 602 /** 603 * <p>A unique identifier that you provide to ensure idempotency. If multiple 604 * requests differ only by the idempotency token, the same response is returned for 605 * each repeated request.</p> 606 */ SetIdempotencyToken(const Aws::String & value)607 inline void SetIdempotencyToken(const Aws::String& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = value; } 608 609 /** 610 * <p>A unique identifier that you provide to ensure idempotency. If multiple 611 * requests differ only by the idempotency token, the same response is returned for 612 * each repeated request.</p> 613 */ SetIdempotencyToken(Aws::String && value)614 inline void SetIdempotencyToken(Aws::String&& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = std::move(value); } 615 616 /** 617 * <p>A unique identifier that you provide to ensure idempotency. If multiple 618 * requests differ only by the idempotency token, the same response is returned for 619 * each repeated request.</p> 620 */ SetIdempotencyToken(const char * value)621 inline void SetIdempotencyToken(const char* value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken.assign(value); } 622 623 /** 624 * <p>A unique identifier that you provide to ensure idempotency. If multiple 625 * requests differ only by the idempotency token, the same response is returned for 626 * each repeated request.</p> 627 */ WithIdempotencyToken(const Aws::String & value)628 inline CreateConstraintRequest& WithIdempotencyToken(const Aws::String& value) { SetIdempotencyToken(value); return *this;} 629 630 /** 631 * <p>A unique identifier that you provide to ensure idempotency. If multiple 632 * requests differ only by the idempotency token, the same response is returned for 633 * each repeated request.</p> 634 */ WithIdempotencyToken(Aws::String && value)635 inline CreateConstraintRequest& WithIdempotencyToken(Aws::String&& value) { SetIdempotencyToken(std::move(value)); return *this;} 636 637 /** 638 * <p>A unique identifier that you provide to ensure idempotency. If multiple 639 * requests differ only by the idempotency token, the same response is returned for 640 * each repeated request.</p> 641 */ WithIdempotencyToken(const char * value)642 inline CreateConstraintRequest& WithIdempotencyToken(const char* value) { SetIdempotencyToken(value); return *this;} 643 644 private: 645 646 Aws::String m_acceptLanguage; 647 bool m_acceptLanguageHasBeenSet; 648 649 Aws::String m_portfolioId; 650 bool m_portfolioIdHasBeenSet; 651 652 Aws::String m_productId; 653 bool m_productIdHasBeenSet; 654 655 Aws::String m_parameters; 656 bool m_parametersHasBeenSet; 657 658 Aws::String m_type; 659 bool m_typeHasBeenSet; 660 661 Aws::String m_description; 662 bool m_descriptionHasBeenSet; 663 664 Aws::String m_idempotencyToken; 665 bool m_idempotencyTokenHasBeenSet; 666 }; 667 668 } // namespace Model 669 } // namespace ServiceCatalog 670 } // namespace Aws 671