lib/credentials/temporary_credentials.js
function refresh(callback) {
    var self = this;
    if (!callback) callback = function(err) { if (err) throw err; };

    self.service.config.credentials = self.masterCredentials;
    var operation = self.params.RoleArn ?
      self.service.assumeRole : self.service.getSessionToken;
    operation.call(self.service, function (err, data) {
      if (!err) {
        self.service.credentialsFrom(data, self);
      }
      callback(err);
    });
  }
function refresh(callback) {
    var self = this;
    if (!callback) callback = function(err) { if (err) throw err; };

    self.service.config.credentials = self.masterCredentials;
    var operation = self.params.RoleArn ?
      self.service.assumeRole : self.service.getSessionToken;
    operation.call(self.service, function (err, data) {
      if (!err) {
        self.service.credentialsFrom(data, self);
      }
      callback(err);
    });
  }
Refreshes credentials using {AWS.STS.assumeRole} or
{AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed
to the credentials {constructor}.

@callback callback function(err)
Called when the STS service responds (or fails). When
this callback is called with no error, it means that the credentials
information has been loaded into the object (as the `accessKeyId`,
`secretAccessKey`, and `sessionToken` properties).
@param err [Error] if an error occurred, this value will be filled
@see get