class Aws::SharedConfig
def resolve_source_profile(profile, opts = {})
def resolve_source_profile(profile, opts = {}) if opts[:visited_profiles] && opts[:visited_profiles].include?(profile) raise Errors::SourceProfileCircularReferenceError end opts[:visited_profiles].add(profile) if opts[:visited_profiles] profile_config = @parsed_credentials[profile] if @config_enabled profile_config ||= @parsed_config[profile] end if (creds = credentials(profile: profile)) creds # static credentials elsif profile_config && profile_config['source_profile'] opts.delete(:source_profile) assume_role_credentials_from_config(opts.merge(profile: profile)) elsif (provider = assume_role_web_identity_credentials_from_config(opts.merge(profile: profile))) provider.credentials if provider.credentials.set? elsif (provider = assume_role_process_credentials_from_config(profile)) provider.credentials if provider.credentials.set? elsif (provider = sso_credentials_from_config(profile: profile)) provider.credentials if provider.credentials.set? end end