getSecretValue method
Retrieves the contents of the encrypted fields SecretString
or SecretBinary from the specified version of a secret,
whichever contains content.
To retrieve the values for a group of secrets, call BatchGetSecretValue.
We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.
To retrieve the previous version of a secret, use
VersionStage and specify AWSPREVIOUS. To revert to the
previous version of a secret, call UpdateSecretVersionStage.
Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.
Required permissions: secretsmanager:GetSecretValue.
If the secret is encrypted using a customer-managed key instead of the
Amazon Web Services managed key aws/secretsmanager, then you
also need kms:Decrypt permissions for that key. For more
information, see
IAM policy actions for Secrets Manager and Authentication
and access control in Secrets Manager.
May throw DecryptionFailure.
May throw InternalServiceError.
May throw InvalidParameterException.
May throw InvalidRequestException.
May throw ResourceNotFoundException.
Parameter secretId :
The ARN or name of the secret to retrieve. To retrieve a secret from
another account, you must use an ARN.
For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.
Parameter versionId :
The unique identifier of the version of the secret to retrieve. If you
include both this parameter and VersionStage, the two
parameters must refer to the same secret version. If you don't specify
either a VersionStage or VersionId, then Secrets
Manager returns the AWSCURRENT version.
This value is typically a UUID-type value with 32 hexadecimal digits.
Parameter versionStage :
The staging label of the version of the secret to retrieve.
Secrets Manager uses staging labels to keep track of different versions
during the rotation process. If you include both this parameter and
VersionId, the two parameters must refer to the same secret
version. If you don't specify either a VersionStage or
VersionId, Secrets Manager returns the
AWSCURRENT version.
Implementation
Future<GetSecretValueResponse> getSecretValue({
required String secretId,
String? versionId,
String? versionStage,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'secretsmanager.GetSecretValue'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'SecretId': secretId,
if (versionId != null) 'VersionId': versionId,
if (versionStage != null) 'VersionStage': versionStage,
},
);
return GetSecretValueResponse.fromJson(jsonResponse.body);
}