createConstraint method
Creates a constraint.
A delegated admin is authorized to invoke this command.
May throw DuplicateResourceException.
May throw InvalidParametersException.
May throw LimitExceededException.
May throw ResourceNotFoundException.
Parameter parameters :
The constraint parameters, in JSON format. The syntax depends on the
constraint type as follows:
- LAUNCH
-
You are required to specify either the
RoleArnor theLocalRoleNamebut can't use both.Specify the
RoleArnproperty as follows:{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}Specify the
LocalRoleNameproperty as follows:{"LocalRoleName": "SCBasicLaunchRole"}If you specify the
LocalRoleNameproperty, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account. You cannot have both aLAUNCHand aSTACKSETconstraint.You also cannot have more than one
LAUNCHconstraint on a product and portfolio. - NOTIFICATION
-
Specify the
NotificationArnsproperty as follows:{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]} - RESOURCE_UPDATE
-
Specify the
TagUpdatesOnProvisionedProductproperty as follows:{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}The
TagUpdatesOnProvisionedProductproperty accepts a string value ofALLOWEDorNOT_ALLOWED. - STACKSET
-
Specify the
Parametersproperty as follows:{"Version": "String", "Properties": {"AccountList": [ "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": "String"}}You cannot have both a
LAUNCHand aSTACKSETconstraint.You also cannot have more than one
STACKSETconstraint on a product and portfolio.Products with a
STACKSETconstraint will launch an CloudFormation stack set. - TEMPLATE
-
Specify the
Rulesproperty. For more information, see Template Constraint Rules.
Parameter portfolioId :
The portfolio identifier.
Parameter productId :
The product identifier.
Parameter type :
The type of constraint.
-
LAUNCH -
NOTIFICATION -
RESOURCE_UPDATE -
STACKSET -
TEMPLATE
Parameter acceptLanguage :
The language code.
-
jp- Japanese -
zh- Chinese
Parameter description :
The description of the constraint.
Parameter idempotencyToken :
A unique identifier that you provide to ensure idempotency. If multiple
requests differ only by the idempotency token, the same response is
returned for each repeated request.
Implementation
Future<CreateConstraintOutput> createConstraint({
required String parameters,
required String portfolioId,
required String productId,
required String type,
String? acceptLanguage,
String? description,
String? idempotencyToken,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWS242ServiceCatalogService.CreateConstraint'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Parameters': parameters,
'PortfolioId': portfolioId,
'ProductId': productId,
'Type': type,
if (acceptLanguage != null) 'AcceptLanguage': acceptLanguage,
if (description != null) 'Description': description,
'IdempotencyToken': idempotencyToken ?? _s.generateIdempotencyToken(),
},
);
return CreateConstraintOutput.fromJson(jsonResponse.body);
}