updateGroup method

Future<UpdateGroupResponse> updateGroup({
  1. required String groupName,
  2. required String userPoolId,
  3. String? description,
  4. int? precedence,
  5. String? roleArn,
})

Given the name of a user pool group, updates any of the properties for precedence, IAM role, or description. For more information about user pool groups, see Adding groups to a user pool.

Learn more

May throw InternalErrorException. May throw InvalidParameterException. May throw NotAuthorizedException. May throw OperationNotEnabledException. May throw ResourceNotFoundException. May throw TooManyRequestsException.

Parameter groupName : The name of the group that you want to update.

Parameter userPoolId : The ID of the user pool that contains the group you want to update.

Parameter description : A new description of the existing group.

Parameter precedence : A non-negative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN is given in the user's tokens for the cognito:roles and cognito:preferred_role claims.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim isn't set in users' tokens.

The default Precedence value is null. The maximum Precedence value is 2^31-1.

Parameter roleArn : The Amazon Resource Name (ARN) of an IAM role that you want to associate with the group. The role assignment contributes to the cognito:roles and cognito:preferred_role claims in group members' tokens.

Implementation

Future<UpdateGroupResponse> updateGroup({
  required String groupName,
  required String userPoolId,
  String? description,
  int? precedence,
  String? roleArn,
}) async {
  _s.validateNumRange(
    'precedence',
    precedence,
    0,
    1152921504606846976,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSCognitoIdentityProviderService.UpdateGroup'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'GroupName': groupName,
      'UserPoolId': userPoolId,
      if (description != null) 'Description': description,
      if (precedence != null) 'Precedence': precedence,
      if (roleArn != null) 'RoleArn': roleArn,
    },
  );

  return UpdateGroupResponse.fromJson(jsonResponse.body);
}