createStudioSessionMapping method

Future<void> createStudioSessionMapping({
  1. required IdentityType identityType,
  2. required String sessionPolicyArn,
  3. required String studioId,
  4. String? identityId,
  5. String? identityName,
})
Maps a user or group to the Amazon EMR Studio specified by 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,
    },
  );
}