createGroup method

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

Creates a new group in the specified user pool.

Calling this action requires developer credentials.

May throw InvalidParameterException. May throw GroupExistsException. May throw ResourceNotFoundException. May throw TooManyRequestsException. May throw LimitExceededException. May throw NotAuthorizedException. May throw InternalErrorException.

Parameter groupName : The name of the group. Must be unique.

Parameter userPoolId : The user pool ID for the user pool.

Parameter description : A string containing the description of the group.

Parameter precedence : A nonnegative 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 will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens.

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 is not set in users' tokens.

The default Precedence value is null.

Parameter roleArn : The role ARN for the group.

Implementation

Future<CreateGroupResponse> createGroup({
  required String groupName,
  required String userPoolId,
  String? description,
  int? precedence,
  String? roleArn,
}) async {
  ArgumentError.checkNotNull(groupName, 'groupName');
  _s.validateStringLength(
    'groupName',
    groupName,
    1,
    128,
    isRequired: true,
  );
  ArgumentError.checkNotNull(userPoolId, 'userPoolId');
  _s.validateStringLength(
    'userPoolId',
    userPoolId,
    1,
    55,
    isRequired: true,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    2048,
  );
  _s.validateNumRange(
    'precedence',
    precedence,
    0,
    1152921504606846976,
  );
  _s.validateStringLength(
    'roleArn',
    roleArn,
    20,
    2048,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSCognitoIdentityProviderService.CreateGroup'
  };
  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 CreateGroupResponse.fromJson(jsonResponse.body);
}