updateConstraint method

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

Updates the specified constraint.

May throw ResourceNotFoundException. May throw InvalidParametersException.

Parameter id : The identifier of the constraint.

Parameter acceptLanguage : The language code.

  • en - English (default)
  • 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 AWS 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 {
  ArgumentError.checkNotNull(id, 'id');
  _s.validateStringLength(
    'id',
    id,
    1,
    100,
    isRequired: true,
  );
  _s.validateStringLength(
    'acceptLanguage',
    acceptLanguage,
    0,
    100,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    2000,
  );
  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);
}