updateConstraint method

Future<UpdateConstraintOutput> updateConstraint({
  1. required String id,
  2. String? acceptLanguage,
  3. String? description,
  4. String? parameters,
})

Updates the specified constraint.

May throw InvalidParametersException. May throw ResourceNotFoundException.

Parameter id : The identifier of the constraint.

Parameter acceptLanguage : The language code.

  • jp - Japanese
  • zh - Chinese

Parameter description : The updated description of the constraint.

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 RoleArn or the LocalRoleName but can't use both.

Specify the RoleArn property as follows:

{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}

Specify the LocalRoleName property as follows:

{"LocalRoleName": "SCBasicLaunchRole"}

If you specify the LocalRoleName property, 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 a LAUNCH and a STACKSET constraint.

You also cannot have more than one LAUNCH constraint on a product and portfolio.

NOTIFICATION
Specify the NotificationArns property as follows:

{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}

RESOURCE_UPDATE
Specify the TagUpdatesOnProvisionedProduct property as follows:

{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}

The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.

STACKSET
Specify the Parameters property as follows:

{"Version": "String", "Properties": {"AccountList": [ "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": "String"}}

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one STACKSET constraint on a product and portfolio.

Products with a STACKSET constraint will launch an CloudFormation stack set.

TEMPLATE
Specify the Rules property. For more information, see Template Constraint Rules.

Implementation

Future<UpdateConstraintOutput> updateConstraint({
  required String id,
  String? acceptLanguage,
  String? description,
  String? parameters,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWS242ServiceCatalogService.UpdateConstraint'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Id': id,
      if (acceptLanguage != null) 'AcceptLanguage': acceptLanguage,
      if (description != null) 'Description': description,
      if (parameters != null) 'Parameters': parameters,
    },
  );

  return UpdateConstraintOutput.fromJson(jsonResponse.body);
}