class Aws::SharedConfig
def assume_role_from_profile(cfg, profile, opts)
def assume_role_from_profile(cfg, profile, opts) if cfg && prof_cfg = cfg[profile] opts[:source_profile] ||= prof_cfg["source_profile"] if opts[:source_profile] opts[:credentials] = credentials(profile: opts[:source_profile]) if opts[:credentials] opts[:role_session_name] ||= prof_cfg["role_session_name"] opts[:role_session_name] ||= "default_session" opts[:role_arn] ||= prof_cfg["role_arn"] opts[:external_id] ||= prof_cfg["external_id"] opts[:serial_number] ||= prof_cfg["mfa_serial"] opts[:profile] = opts.delete(:source_profile) AssumeRoleCredentials.new(opts) else raise Errors::NoSourceProfileError.new( "Profile #{profile} has a role_arn, and source_profile, but the"\ " source_profile does not have credentials." ) end elsif prof_cfg["role_arn"] raise Errors::NoSourceProfileError.new( "Profile #{profile} has a role_arn, but no source_profile." ) else nil end else nil end end