updateLakehouseConfiguration method

Future<UpdateLakehouseConfigurationResponse> updateLakehouseConfiguration({
  1. required String namespaceName,
  2. String? catalogName,
  3. bool? dryRun,
  4. String? lakehouseIdcApplicationArn,
  5. LakehouseIdcRegistration? lakehouseIdcRegistration,
  6. LakehouseRegistration? lakehouseRegistration,
})

Modifies the lakehouse configuration for a namespace. This operation allows you to manage Amazon Redshift federated permissions and Amazon Web Services IAM Identity Center trusted identity propagation.

May throw ConflictException. May throw DryRunException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ValidationException.

Parameter namespaceName : The name of the namespace whose lakehouse configuration you want to modify.

Parameter catalogName : The name of the Glue Data Catalog that will be associated with the namespace enabled with Amazon Redshift federated permissions.

Pattern: ^[a-z0-9_-][a-z]+[a-z0-9_-]$

Parameter dryRun : A boolean value that, if true, validates the request without actually updating the lakehouse configuration. Use this to check for errors before making changes.

Parameter lakehouseIdcApplicationArn : The Amazon Resource Name (ARN) of the IAM Identity Center application used for enabling Amazon Web Services IAM Identity Center trusted identity propagation on a namespace enabled with Amazon Redshift federated permissions.

Parameter lakehouseIdcRegistration : Modifies the Amazon Web Services IAM Identity Center trusted identity propagation on a namespace enabled with Amazon Redshift federated permissions. Valid values are Associate or Disassociate.

Parameter lakehouseRegistration : Specifies whether to register or deregister the namespace with Amazon Redshift federated permissions. Valid values are Register or Deregister.

Implementation

Future<UpdateLakehouseConfigurationResponse> updateLakehouseConfiguration({
  required String namespaceName,
  String? catalogName,
  bool? dryRun,
  String? lakehouseIdcApplicationArn,
  LakehouseIdcRegistration? lakehouseIdcRegistration,
  LakehouseRegistration? lakehouseRegistration,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'RedshiftServerless.UpdateLakehouseConfiguration'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'namespaceName': namespaceName,
      if (catalogName != null) 'catalogName': catalogName,
      if (dryRun != null) 'dryRun': dryRun,
      if (lakehouseIdcApplicationArn != null)
        'lakehouseIdcApplicationArn': lakehouseIdcApplicationArn,
      if (lakehouseIdcRegistration != null)
        'lakehouseIdcRegistration': lakehouseIdcRegistration.value,
      if (lakehouseRegistration != null)
        'lakehouseRegistration': lakehouseRegistration.value,
    },
  );

  return UpdateLakehouseConfigurationResponse.fromJson(jsonResponse.body);
}