createGroup method
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);
}