retrieve method

  1. @override
Future<AWSCredentials> retrieve()
override

Retrieves AWS credentials.

Implementation

@override
Future<AWSCredentials> retrieve() async {
  final chain = List.of(this.chain);
  for (final credentialsProvider in chain) {
    final providerType = credentialsProvider.runtimeTypeName;
    logger.verbose('Loading credentials from $providerType');
    try {
      final credentials = await credentialsProvider.retrieve();
      logger.verbose('Successfully loaded credentials from $providerType');
      return credentials;
    } on Object {
      logger.verbose('Failed to loaded credentials from $providerType');
      continue;
    }
  }
  throw InvalidCredentialsException.couldNotLoad(
    'Could not load credentials using chain: '
    '[${chain.map((p) => p.runtimeTypeName).join(', ')}]',
  );
}