createStudioSessionMapping method
- required IdentityType identityType,
- required String sessionPolicyArn,
- required String studioId,
- String? identityId,
- String? identityName,
StudioId
, and applies a session policy to refine Studio
permissions for that user or group.
May throw InternalServerError. May throw InvalidRequestException.
Parameter identityType
:
Specifies whether the identity to map to the Studio is a user or a group.
Parameter sessionPolicyArn
:
The Amazon Resource Name (ARN) for the session policy that will be applied
to the user or group. Session policies refine Studio user permissions
without the need to use multiple IAM user roles.
Parameter studioId
:
The ID of the Amazon EMR Studio to which the user or group will be mapped.
Parameter identityId
:
The globally unique identifier (GUID) of the user or group from the AWS
SSO Identity Store. For more information, see UserId
and GroupId
in the AWS SSO Identity Store API Reference. Either
IdentityName
or IdentityId
must be specified.
Parameter identityName
:
The name of the user or group. For more information, see UserName
and DisplayName
in the AWS SSO Identity Store API Reference. Either
IdentityName
or IdentityId
must be specified.
Implementation
Future<void> createStudioSessionMapping({
required IdentityType identityType,
required String sessionPolicyArn,
required String studioId,
String? identityId,
String? identityName,
}) async {
ArgumentError.checkNotNull(identityType, 'identityType');
ArgumentError.checkNotNull(sessionPolicyArn, 'sessionPolicyArn');
_s.validateStringLength(
'sessionPolicyArn',
sessionPolicyArn,
0,
256,
isRequired: true,
);
ArgumentError.checkNotNull(studioId, 'studioId');
_s.validateStringLength(
'studioId',
studioId,
0,
256,
isRequired: true,
);
_s.validateStringLength(
'identityId',
identityId,
0,
256,
);
_s.validateStringLength(
'identityName',
identityName,
0,
256,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'ElasticMapReduce.CreateStudioSessionMapping'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'IdentityType': identityType.toValue(),
'SessionPolicyArn': sessionPolicyArn,
'StudioId': studioId,
if (identityId != null) 'IdentityId': identityId,
if (identityName != null) 'IdentityName': identityName,
},
);
}