in provider/secrets_manager_provider.go [159:187]
func (p *SecretsManagerProvider) fetchSecret(ctx context.Context, descriptor *SecretDescriptor) (ver string, val *SecretValue, e error) {
req := secretsmanager.GetSecretValueInput{SecretId: aws.String(descriptor.ObjectName)}
// Use explicit version if specified
if len(descriptor.ObjectVersion) != 0 {
req.SetVersionId(descriptor.ObjectVersion)
}
// Use stage label if specified
if len(descriptor.ObjectVersionLabel) != 0 {
req.SetVersionStage(descriptor.ObjectVersionLabel)
}
rsp, err := p.client.GetSecretValueWithContext(ctx, &req)
if err != nil {
return "", nil, fmt.Errorf("Failed fetching secret %s: %s", descriptor.ObjectName, err.Error())
}
// Use either secret string or secret binary.
var sValue []byte
if rsp.SecretString != nil {
sValue = []byte(*rsp.SecretString)
} else {
sValue = rsp.SecretBinary
}
return *rsp.VersionId, &SecretValue{Value: sValue, Descriptor: *descriptor}, nil
}