createFaceLivenessSession method

Future<CreateFaceLivenessSessionResponse> createFaceLivenessSession({
  1. String? clientRequestToken,
  2. String? kmsKeyId,
  3. CreateFaceLivenessSessionRequestSettings? settings,
})

This API operation initiates a Face Liveness session. It returns a SessionId, which you can use to start streaming Face Liveness video and get the results for a Face Liveness session.

You can use the OutputConfig option in the Settings parameter to provide an Amazon S3 bucket location. The Amazon S3 bucket stores reference images and audit images. If no Amazon S3 bucket is defined, raw bytes are sent instead.

You can use AuditImagesLimit to limit the number of audit images returned when GetFaceLivenessSessionResults is called. This number is between 0 and 4. By default, it is set to 0. The limit is best effort and based on the duration of the selfie-video.

May throw AccessDeniedException. May throw InternalServerError. May throw InvalidParameterException. May throw ProvisionedThroughputExceededException. May throw ThrottlingException.

Parameter clientRequestToken : Idempotent token is used to recognize the Face Liveness request. If the same token is used with multiple CreateFaceLivenessSession requests, the same session is returned. This token is employed to avoid unintentionally creating the same session multiple times.

Parameter kmsKeyId : The identifier for your AWS Key Management Service key (AWS KMS key). Used to encrypt audit images and reference images.

Parameter settings : A session settings object. It contains settings for the operation to be performed. For Face Liveness, it accepts OutputConfig and AuditImagesLimit.

Implementation

Future<CreateFaceLivenessSessionResponse> createFaceLivenessSession({
  String? clientRequestToken,
  String? kmsKeyId,
  CreateFaceLivenessSessionRequestSettings? settings,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'RekognitionService.CreateFaceLivenessSession'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      if (clientRequestToken != null)
        'ClientRequestToken': clientRequestToken,
      if (kmsKeyId != null) 'KmsKeyId': kmsKeyId,
      if (settings != null) 'Settings': settings,
    },
  );

  return CreateFaceLivenessSessionResponse.fromJson(jsonResponse.body);
}