getCredentials method
Returns a database user name and temporary password with temporary authorization to log in to Amazon Redshift Serverless.
By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).
The Identity and Access Management (IAM) user or role that runs GetCredentials must have an IAM policy attached that allows access to all necessary actions and resources.
If the DbName parameter is specified, the IAM policy must
allow access to the resource dbname for the specified database name.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ValidationException.
Parameter customDomainName :
The custom domain name associated with the workgroup. The custom domain
name or the workgroup name must be included in the request.
Parameter dbName :
The name of the database to get temporary authorization to log on to.
Constraints:
- Must be 1 to 64 alphanumeric characters or hyphens.
- Must contain only uppercase or lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.
- The first character must be a letter.
- Must not contain a colon ( : ) or slash ( / ).
- Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide
Parameter durationSeconds :
The number of seconds until the returned temporary password expires. The
minimum is 900 seconds, and the maximum is 3600 seconds.
Parameter workgroupName :
The name of the workgroup associated with the database.
Implementation
Future<GetCredentialsResponse> getCredentials({
String? customDomainName,
String? dbName,
int? durationSeconds,
String? workgroupName,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'RedshiftServerless.GetCredentials'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (customDomainName != null) 'customDomainName': customDomainName,
if (dbName != null) 'dbName': dbName,
if (durationSeconds != null) 'durationSeconds': durationSeconds,
if (workgroupName != null) 'workgroupName': workgroupName,
},
);
return GetCredentialsResponse.fromJson(jsonResponse.body);
}