rename TemporaryCredentials to SessionCredentials per aws sdk
diff --git a/apis/route53/src/main/java/org/jclouds/route53/filters/RestAuthentication.java b/apis/route53/src/main/java/org/jclouds/route53/filters/RestAuthentication.java
index b6156c5..5cf2913 100644
--- a/apis/route53/src/main/java/org/jclouds/route53/filters/RestAuthentication.java
+++ b/apis/route53/src/main/java/org/jclouds/route53/filters/RestAuthentication.java
@@ -32,7 +32,7 @@
 import javax.inject.Provider;
 import javax.inject.Singleton;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.crypto.Crypto;
 import org.jclouds.date.TimeStamp;
 import org.jclouds.domain.Credentials;
@@ -70,15 +70,15 @@
 
    public HttpRequest filter(HttpRequest request) throws HttpException {
       Credentials current = creds.get();
-      if (current instanceof TemporaryCredentials) {
-         request = replaceSecurityTokenHeader(request, TemporaryCredentials.class.cast(current));
+      if (current instanceof SessionCredentials) {
+         request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current));
       }
       request = replaceDateHeader(request, timeStampProvider.get());
       String signature = sign(createStringToSign(request));
       return replaceAuthorizationHeader(request, signature);
    }
 
-   private HttpRequest replaceSecurityTokenHeader(HttpRequest request, TemporaryCredentials current) {
+   private HttpRequest replaceSecurityTokenHeader(HttpRequest request, SessionCredentials current) {
       return request.toBuilder().replaceHeader("x-amz-security-token", current.getSessionToken()).build();
    }
 
diff --git a/apis/s3/src/main/java/org/jclouds/s3/filters/RequestAuthorizeSignature.java b/apis/s3/src/main/java/org/jclouds/s3/filters/RequestAuthorizeSignature.java
index 61b0462..e28b975 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/filters/RequestAuthorizeSignature.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/filters/RequestAuthorizeSignature.java
@@ -39,7 +39,7 @@
 import javax.ws.rs.core.HttpHeaders;
 
 import org.jclouds.Constants;
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.crypto.Crypto;
 import org.jclouds.crypto.CryptoStreams;
 import org.jclouds.date.TimeStamp;
@@ -118,8 +118,8 @@
    public HttpRequest filter(HttpRequest request) throws HttpException {
       request = replaceDateHeader(request);
       Credentials current = creds.get();
-      if (current instanceof TemporaryCredentials) {
-         request = replaceSecurityTokenHeader(request, TemporaryCredentials.class.cast(current));
+      if (current instanceof SessionCredentials) {
+         request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current));
       }
       String signature = calculateSignature(createStringToSign(request));
       request = replaceAuthorizationHeader(request, signature);
@@ -127,7 +127,7 @@
       return request;
    }
 
-   HttpRequest replaceSecurityTokenHeader(HttpRequest request, TemporaryCredentials current) {
+   HttpRequest replaceSecurityTokenHeader(HttpRequest request, SessionCredentials current) {
       return request.toBuilder().replaceHeader("x-amz-security-token", current.getSessionToken()).build();
    }
 
diff --git a/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithTemporaryCredentialsTest.java b/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithSessionCredentialsTest.java
similarity index 94%
rename from apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithTemporaryCredentialsTest.java
rename to apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithSessionCredentialsTest.java
index da1179e..63ff9f2 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithTemporaryCredentialsTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureWithSessionCredentialsTest.java
@@ -21,7 +21,7 @@
 import static org.testng.Assert.assertEquals;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.date.TimeStamp;
 import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.domain.Credentials;
@@ -47,8 +47,8 @@
  * @author Adrian Cole
  */
 // NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
-@Test(groups = "unit", testName = "RequestAuthorizeSignatureWithTemporaryCredentialsTest")
-public class RequestAuthorizeSignatureWithTemporaryCredentialsTest {
+@Test(groups = "unit", testName = "RequestAuthorizeSignatureWithSessionCredentialsTest")
+public class RequestAuthorizeSignatureWithSessionCredentialsTest {
    public static Injector injector(Credentials creds) {
       return ContextBuilder.newBuilder("s3")
             .credentialsSupplier(Suppliers.<Credentials> ofInstance(creds))
@@ -68,7 +68,7 @@
       return injector(creds).getInstance(RequestAuthorizeSignature.class);
    }
 
-   TemporaryCredentials temporaryCredentials =  TemporaryCredentials.builder()
+   SessionCredentials temporaryCredentials =  SessionCredentials.builder()
       .accessKeyId("AKIAIOSFODNN7EXAMPLE")
       .secretAccessKey("wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY")
       .sessionToken("AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT")
diff --git a/apis/sts/src/main/java/org/jclouds/sts/STSApi.java b/apis/sts/src/main/java/org/jclouds/sts/STSApi.java
index 07b807b..7118753 100644
--- a/apis/sts/src/main/java/org/jclouds/sts/STSApi.java
+++ b/apis/sts/src/main/java/org/jclouds/sts/STSApi.java
@@ -21,12 +21,12 @@
 import java.util.concurrent.TimeUnit;
 
 import org.jclouds.concurrent.Timeout;
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.sts.domain.User;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.jclouds.sts.options.AssumeRoleOptions;
 import org.jclouds.sts.options.FederatedUserOptions;
-import org.jclouds.sts.options.TemporaryCredentialsOptions;
+import org.jclouds.sts.options.SessionCredentialsOptions;
 
 /**
  * Provides access to Amazon STS via the Query API
@@ -42,13 +42,13 @@
     * Returns a set of temporary credentials for an AWS account or IAM user,
     * with a default timeout
     */
-   TemporaryCredentials createTemporaryCredentials();
+   SessionCredentials createTemporaryCredentials();
 
    /**
     * like {@link #createTemporaryCredentials()}, except you can modify the
     * timeout and other parameters.
     */
-   TemporaryCredentials createTemporaryCredentials(TemporaryCredentialsOptions options);
+   SessionCredentials createTemporaryCredentials(SessionCredentialsOptions options);
 
    /**
     * Assumes a role for a specified session. Only IAM users can assume a role.
@@ -60,13 +60,13 @@
     *           The Amazon Resource Name (ARN) of the role that the caller is
     *           assuming.
     */
-   UserAndTemporaryCredentials assumeRole(String roleArn, String sessionName);
+   UserAndSessionCredentials assumeRole(String roleArn, String sessionName);
    
    /**
     * like {@link #assumeRole(String, String)}, except you can modify the
     * timeout and other parameters.
     */
-   UserAndTemporaryCredentials assumeRole(String roleArn, String sessionName, AssumeRoleOptions options);
+   UserAndSessionCredentials assumeRole(String roleArn, String sessionName, AssumeRoleOptions options);
    
    /**
     * Returns a set of temporary credentials for a federated user with the user
@@ -76,12 +76,12 @@
     *           The name of the federated user, included as part of
     *           {@link User#getId}.
     */
-   UserAndTemporaryCredentials createFederatedUser(String userName);
+   UserAndSessionCredentials createFederatedUser(String userName);
    
    /**
     * like {@link #createFederatedUser(String)}, except you can modify the
     * timeout and other parameters.
     */
-   UserAndTemporaryCredentials createFederatedUser(String userName, FederatedUserOptions options);
+   UserAndSessionCredentials createFederatedUser(String userName, FederatedUserOptions options);
 
 }
diff --git a/apis/sts/src/main/java/org/jclouds/sts/STSAsyncApi.java b/apis/sts/src/main/java/org/jclouds/sts/STSAsyncApi.java
index 4a3fdc5..35d1463 100644
--- a/apis/sts/src/main/java/org/jclouds/sts/STSAsyncApi.java
+++ b/apis/sts/src/main/java/org/jclouds/sts/STSAsyncApi.java
@@ -23,18 +23,18 @@
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.aws.filters.FormSigner;
-import org.jclouds.aws.xml.TemporaryCredentialsHandler;
+import org.jclouds.aws.xml.SessionCredentialsHandler;
 import org.jclouds.rest.annotations.FormParams;
 import org.jclouds.rest.annotations.RequestFilters;
 import org.jclouds.rest.annotations.VirtualHost;
 import org.jclouds.rest.annotations.XMLResponseParser;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.jclouds.sts.options.AssumeRoleOptions;
 import org.jclouds.sts.options.FederatedUserOptions;
-import org.jclouds.sts.options.TemporaryCredentialsOptions;
-import org.jclouds.sts.xml.UserAndTemporaryCredentialsHandler;
+import org.jclouds.sts.options.SessionCredentialsOptions;
+import org.jclouds.sts.xml.UserAndSessionCredentialsHandler;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
@@ -55,19 +55,19 @@
    @Named("GetSessionToken")
    @POST
    @Path("/")
-   @XMLResponseParser(TemporaryCredentialsHandler.class)
+   @XMLResponseParser(SessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "GetSessionToken")
-   ListenableFuture<TemporaryCredentials> createTemporaryCredentials();
+   ListenableFuture<SessionCredentials> createTemporaryCredentials();
 
    /**
-    * @see STSApi#createTemporaryCredentials(TemporaryCredentialsOptions)
+    * @see STSApi#createTemporaryCredentials(SessionCredentialsOptions)
     */
    @Named("GetSessionToken")
    @POST
    @Path("/")
-   @XMLResponseParser(TemporaryCredentialsHandler.class)
+   @XMLResponseParser(SessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "GetSessionToken")
-   ListenableFuture<TemporaryCredentials> createTemporaryCredentials(TemporaryCredentialsOptions options);
+   ListenableFuture<SessionCredentials> createTemporaryCredentials(SessionCredentialsOptions options);
 
    /**
     * @see STSApi#assumeRole(String, String)
@@ -75,9 +75,9 @@
    @Named("AssumeRole")
    @POST
    @Path("/")
-   @XMLResponseParser(UserAndTemporaryCredentialsHandler.class)
+   @XMLResponseParser(UserAndSessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "AssumeRole")
-   ListenableFuture<UserAndTemporaryCredentials> assumeRole(@FormParam("RoleArn") String roleArn,
+   ListenableFuture<UserAndSessionCredentials> assumeRole(@FormParam("RoleArn") String roleArn,
          @FormParam("RoleSessionName") String sessionName);
 
    /**
@@ -86,9 +86,9 @@
    @Named("AssumeRole")
    @POST
    @Path("/")
-   @XMLResponseParser(UserAndTemporaryCredentialsHandler.class)
+   @XMLResponseParser(UserAndSessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "AssumeRole")
-   ListenableFuture<UserAndTemporaryCredentials> assumeRole(@FormParam("RoleArn") String roleArn,
+   ListenableFuture<UserAndSessionCredentials> assumeRole(@FormParam("RoleArn") String roleArn,
          @FormParam("RoleSessionName") String sessionName, AssumeRoleOptions options);
    
    /**
@@ -97,9 +97,9 @@
    @Named("GetFederationToken")
    @POST
    @Path("/")
-   @XMLResponseParser(UserAndTemporaryCredentialsHandler.class)
+   @XMLResponseParser(UserAndSessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "GetFederationToken")
-   ListenableFuture<UserAndTemporaryCredentials> createFederatedUser(@FormParam("Name") String userName);
+   ListenableFuture<UserAndSessionCredentials> createFederatedUser(@FormParam("Name") String userName);
 
    /**
     * @see STSApi#createFederatedUser(FederatedUserOptions)
@@ -107,7 +107,7 @@
    @Named("GetFederationToken")
    @POST
    @Path("/")
-   @XMLResponseParser(UserAndTemporaryCredentialsHandler.class)
+   @XMLResponseParser(UserAndSessionCredentialsHandler.class)
    @FormParams(keys = "Action", values = "GetFederationToken")
-   ListenableFuture<UserAndTemporaryCredentials> createFederatedUser(@FormParam("Name") String userName, FederatedUserOptions options);
+   ListenableFuture<UserAndSessionCredentials> createFederatedUser(@FormParam("Name") String userName, FederatedUserOptions options);
 }
diff --git a/apis/sts/src/main/java/org/jclouds/sts/domain/UserAndTemporaryCredentials.java b/apis/sts/src/main/java/org/jclouds/sts/domain/UserAndSessionCredentials.java
similarity index 76%
rename from apis/sts/src/main/java/org/jclouds/sts/domain/UserAndTemporaryCredentials.java
rename to apis/sts/src/main/java/org/jclouds/sts/domain/UserAndSessionCredentials.java
index f2827f1..3207826 100644
--- a/apis/sts/src/main/java/org/jclouds/sts/domain/UserAndTemporaryCredentials.java
+++ b/apis/sts/src/main/java/org/jclouds/sts/domain/UserAndSessionCredentials.java
@@ -20,7 +20,7 @@
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 
 import com.google.common.base.Objects;
 
@@ -28,7 +28,7 @@
  * 
  * @author Adrian Cole
  */
-public final class UserAndTemporaryCredentials {
+public final class UserAndSessionCredentials {
    public static Builder builder() {
       return new Builder();
    }
@@ -39,11 +39,11 @@
 
    public final static class Builder {
       private User user;
-      private TemporaryCredentials credentials;
+      private SessionCredentials credentials;
       private int packedPolicySize;
 
       /**
-       * @see UserAndTemporaryCredentials#getUser()
+       * @see UserAndSessionCredentials#getUser()
        */
       public Builder user(User user) {
          this.user = user;
@@ -51,42 +51,42 @@
       }
 
       /**
-       * @see UserAndTemporaryCredentials#getCredentials()
+       * @see UserAndSessionCredentials#getCredentials()
        */
-      public Builder credentials(TemporaryCredentials credentials) {
+      public Builder credentials(SessionCredentials credentials) {
          this.credentials = credentials;
          return this;
       }
 
       /**
-       * @see UserAndTemporaryCredentials#getPackedPolicySize()
+       * @see UserAndSessionCredentials#getPackedPolicySize()
        */
       public Builder packedPolicySize(int packedPolicySize) {
          this.packedPolicySize = packedPolicySize;
          return this;
       }
 
-      public UserAndTemporaryCredentials build() {
-         return new UserAndTemporaryCredentials(user, credentials, packedPolicySize);
+      public UserAndSessionCredentials build() {
+         return new UserAndSessionCredentials(user, credentials, packedPolicySize);
       }
 
-      public Builder from(UserAndTemporaryCredentials in) {
+      public Builder from(UserAndSessionCredentials in) {
          return this.user(in.user).credentials(in.credentials).packedPolicySize(in.packedPolicySize);
       }
    }
 
    private final User user;
-   private final TemporaryCredentials credentials;
+   private final SessionCredentials credentials;
    private final int packedPolicySize;
 
-   private UserAndTemporaryCredentials(User user, TemporaryCredentials credentials, int packedPolicySize) {
+   private UserAndSessionCredentials(User user, SessionCredentials credentials, int packedPolicySize) {
       this.user = checkNotNull(user, "user");
       this.credentials = checkNotNull(credentials, "credentials for %s", user);
       this.packedPolicySize = checkNotNull(packedPolicySize, "packedPolicySize for %s", user);
    }
 
    /**
-    * user correlating to {@link UserAndTemporaryCredentials#getCredentials()}
+    * user correlating to {@link UserAndSessionCredentials#getCredentials()}
     */
    public User getUser() {
       return user;
@@ -96,7 +96,7 @@
     * The temporary security credentials, which includes an Access Key ID, a
     * Secret Access Key, and a security token.
     */
-   public TemporaryCredentials getCredentials() {
+   public SessionCredentials getCredentials() {
       return credentials;
    }
 
@@ -120,7 +120,7 @@
          return false;
       if (getClass() != obj.getClass())
          return false;
-      UserAndTemporaryCredentials other = (UserAndTemporaryCredentials) obj;
+      UserAndSessionCredentials other = (UserAndSessionCredentials) obj;
       return Objects.equal(this.user, other.user) && Objects.equal(this.credentials, other.credentials)
             && Objects.equal(this.packedPolicySize, other.packedPolicySize);
    }
diff --git a/apis/sts/src/main/java/org/jclouds/sts/options/TemporaryCredentialsOptions.java b/apis/sts/src/main/java/org/jclouds/sts/options/SessionCredentialsOptions.java
similarity index 73%
rename from apis/sts/src/main/java/org/jclouds/sts/options/TemporaryCredentialsOptions.java
rename to apis/sts/src/main/java/org/jclouds/sts/options/SessionCredentialsOptions.java
index 2e90275..e58f0b0 100644
--- a/apis/sts/src/main/java/org/jclouds/sts/options/TemporaryCredentialsOptions.java
+++ b/apis/sts/src/main/java/org/jclouds/sts/options/SessionCredentialsOptions.java
@@ -32,7 +32,7 @@
  * 
  * @author Adrian Cole
  */
-public class TemporaryCredentialsOptions extends BaseHttpRequestOptions implements Cloneable {
+public class SessionCredentialsOptions extends BaseHttpRequestOptions implements Cloneable {
 
    // long as this is a more typical unit for duration, hence less casting
    private Long durationSeconds;
@@ -42,7 +42,7 @@
    /**
     * The identification number of the MFA device for the user.
     */
-   public TemporaryCredentialsOptions serialNumber(String serialNumber) {
+   public SessionCredentialsOptions serialNumber(String serialNumber) {
       this.serialNumber = serialNumber;
       return this;
    }
@@ -51,7 +51,7 @@
     * The duration, in seconds, that the credentials should remain valid. 12
     * hours is default. 15 minutes is current minimum.
     */
-   public TemporaryCredentialsOptions durationSeconds(long durationSeconds) {
+   public SessionCredentialsOptions durationSeconds(long durationSeconds) {
       this.durationSeconds = durationSeconds;
       return this;
    }
@@ -59,7 +59,7 @@
    /**
     * The value provided by the MFA device.
     */
-   public TemporaryCredentialsOptions tokenCode(String tokenCode) {
+   public SessionCredentialsOptions tokenCode(String tokenCode) {
       this.tokenCode = tokenCode;
       return this;
    }
@@ -67,24 +67,24 @@
    public static class Builder {
 
       /**
-       * @see TemporaryCredentialsOptions#serialNumber
+       * @see SessionCredentialsOptions#serialNumber
        */
-      public static TemporaryCredentialsOptions serialNumber(String serialNumber) {
-         return new TemporaryCredentialsOptions().serialNumber(serialNumber);
+      public static SessionCredentialsOptions serialNumber(String serialNumber) {
+         return new SessionCredentialsOptions().serialNumber(serialNumber);
       }
 
       /**
-       * @see TemporaryCredentialsOptions#durationSeconds
+       * @see SessionCredentialsOptions#durationSeconds
        */
-      public static TemporaryCredentialsOptions durationSeconds(long durationSeconds) {
-         return new TemporaryCredentialsOptions().durationSeconds(durationSeconds);
+      public static SessionCredentialsOptions durationSeconds(long durationSeconds) {
+         return new SessionCredentialsOptions().durationSeconds(durationSeconds);
       }
 
       /**
-       * @see TemporaryCredentialsOptions#tokenCode
+       * @see SessionCredentialsOptions#tokenCode
        */
-      public static TemporaryCredentialsOptions tokenCode(String tokenCode) {
-         return new TemporaryCredentialsOptions().tokenCode(tokenCode);
+      public static SessionCredentialsOptions tokenCode(String tokenCode) {
+         return new SessionCredentialsOptions().tokenCode(tokenCode);
       }
    }
 
@@ -109,8 +109,8 @@
    }
 
    @Override
-   public TemporaryCredentialsOptions clone() {
-      return new TemporaryCredentialsOptions().serialNumber(serialNumber).durationSeconds(durationSeconds)
+   public SessionCredentialsOptions clone() {
+      return new SessionCredentialsOptions().serialNumber(serialNumber).durationSeconds(durationSeconds)
             .tokenCode(tokenCode);
    }
 
@@ -125,7 +125,7 @@
          return false;
       if (getClass() != obj.getClass())
          return false;
-      TemporaryCredentialsOptions other = TemporaryCredentialsOptions.class.cast(obj);
+      SessionCredentialsOptions other = SessionCredentialsOptions.class.cast(obj);
       return Objects.equal(this.serialNumber, other.serialNumber)
             && Objects.equal(this.durationSeconds, other.durationSeconds)
             && Objects.equal(this.tokenCode, other.tokenCode);
diff --git a/apis/sts/src/main/java/org/jclouds/sts/xml/UserAndTemporaryCredentialsHandler.java b/apis/sts/src/main/java/org/jclouds/sts/xml/UserAndSessionCredentialsHandler.java
similarity index 81%
rename from apis/sts/src/main/java/org/jclouds/sts/xml/UserAndTemporaryCredentialsHandler.java
rename to apis/sts/src/main/java/org/jclouds/sts/xml/UserAndSessionCredentialsHandler.java
index 92fffa0..59da4c4 100644
--- a/apis/sts/src/main/java/org/jclouds/sts/xml/UserAndTemporaryCredentialsHandler.java
+++ b/apis/sts/src/main/java/org/jclouds/sts/xml/UserAndSessionCredentialsHandler.java
@@ -21,10 +21,10 @@
 import static org.jclouds.util.SaxUtils.currentOrNull;
 import static org.jclouds.util.SaxUtils.equalsOrSuffix;
 
-import org.jclouds.aws.xml.TemporaryCredentialsHandler;
+import org.jclouds.aws.xml.SessionCredentialsHandler;
 import org.jclouds.http.functions.ParseSax;
 import org.jclouds.sts.domain.User;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
@@ -34,27 +34,24 @@
  * 
  * @author Adrian Cole
  */
-public class UserAndTemporaryCredentialsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<UserAndTemporaryCredentials> {
+public class UserAndSessionCredentialsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<UserAndSessionCredentials> {
 
-   private final TemporaryCredentialsHandler credsHandler;
+   private final SessionCredentialsHandler credsHandler;
 
    private StringBuilder currentText = new StringBuilder();
-   private UserAndTemporaryCredentials.Builder builder = UserAndTemporaryCredentials.builder();
+   private UserAndSessionCredentials.Builder builder = UserAndSessionCredentials.builder();
 
    @Inject
-   public UserAndTemporaryCredentialsHandler(TemporaryCredentialsHandler credsHandler) {
+   public UserAndSessionCredentialsHandler(SessionCredentialsHandler credsHandler) {
       this.credsHandler = credsHandler;
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
-   public UserAndTemporaryCredentials getResult() {
+   public UserAndSessionCredentials getResult() {
       try {
          return builder.build();
       } finally {
-         builder = UserAndTemporaryCredentials.builder();
+         builder = UserAndSessionCredentials.builder();
       }
    }
 
diff --git a/apis/sts/src/test/java/org/jclouds/sts/STSApiExpectTest.java b/apis/sts/src/test/java/org/jclouds/sts/STSApiExpectTest.java
index 0ce231d..8d0f14e 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/STSApiExpectTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/STSApiExpectTest.java
@@ -20,7 +20,7 @@
 
 import static org.jclouds.sts.options.AssumeRoleOptions.Builder.externalId;
 import static org.jclouds.sts.options.FederatedUserOptions.Builder.policy;
-import static org.jclouds.sts.options.TemporaryCredentialsOptions.Builder.serialNumber;
+import static org.jclouds.sts.options.SessionCredentialsOptions.Builder.serialNumber;
 import static org.testng.Assert.assertEquals;
 
 import java.util.concurrent.TimeUnit;
diff --git a/apis/sts/src/test/java/org/jclouds/sts/STSApiLiveTest.java b/apis/sts/src/test/java/org/jclouds/sts/STSApiLiveTest.java
index 68f8b9a..3ae1c43 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/STSApiLiveTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/STSApiLiveTest.java
@@ -22,12 +22,12 @@
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.testng.Assert.assertTrue;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.jclouds.sts.internal.BaseSTSApiLiveTest;
 import org.jclouds.sts.options.AssumeRoleOptions;
 import org.jclouds.sts.options.FederatedUserOptions;
-import org.jclouds.sts.options.TemporaryCredentialsOptions;
+import org.jclouds.sts.options.SessionCredentialsOptions;
 import org.testng.SkipException;
 import org.testng.annotations.Test;
 
@@ -39,8 +39,8 @@
 
    @Test
    protected void testCreateTemporaryCredentials() {
-      TemporaryCredentials creds = api().createTemporaryCredentials(
-            new TemporaryCredentialsOptions().durationSeconds(MINUTES.toSeconds(15)));
+      SessionCredentials creds = api().createTemporaryCredentials(
+            new SessionCredentialsOptions().durationSeconds(MINUTES.toSeconds(15)));
       checkTemporaryCredentials(creds);
       // TODO: actually login to some service
       //
@@ -53,7 +53,7 @@
 
    @Test
    protected void testCreateFederatedUser() {
-      UserAndTemporaryCredentials user = api().createFederatedUser("Bob", new FederatedUserOptions().durationSeconds(MINUTES.toSeconds(15)));
+      UserAndSessionCredentials user = api().createFederatedUser("Bob", new FederatedUserOptions().durationSeconds(MINUTES.toSeconds(15)));
       checkTemporaryCredentials(user.getCredentials());
       assertTrue(user.getUser().getId().contains("Bob"), user + " id incorrect");
       assertTrue(user.getUser().getArn().contains("Bob"), user + " arn incorrect");
@@ -63,7 +63,7 @@
    @Test
    protected void testAssumeRole() {
       String arnToAssume = getTestArn();
-      UserAndTemporaryCredentials role = api().assumeRole(arnToAssume, "session",
+      UserAndSessionCredentials role = api().assumeRole(arnToAssume, "session",
             new AssumeRoleOptions().durationSeconds(MINUTES.toSeconds(15)));
       checkTemporaryCredentials(role.getCredentials());
       assertTrue(role.getUser().getId().contains("session"), role + " id incorrect");
@@ -75,7 +75,7 @@
       throw new SkipException("TODO: need to query a valid arn to assume");
    }
 
-   private void checkTemporaryCredentials(TemporaryCredentials creds) {
+   private void checkTemporaryCredentials(SessionCredentials creds) {
       checkNotNull(creds.getAccessKeyId(), "AccessKeyId cannot be null for TemporaryCredentials.");
       checkNotNull(creds.getSecretAccessKey(), "SecretAccessKey cannot be null for TemporaryCredentials.");
       checkNotNull(creds.getSessionToken(), "SessionToken cannot be null for TemporaryCredentials.");
diff --git a/apis/sts/src/test/java/org/jclouds/sts/options/TemporaryCredentialsOptionsTest.java b/apis/sts/src/test/java/org/jclouds/sts/options/SessionCredentialsOptionsTest.java
similarity index 67%
rename from apis/sts/src/test/java/org/jclouds/sts/options/TemporaryCredentialsOptionsTest.java
rename to apis/sts/src/test/java/org/jclouds/sts/options/SessionCredentialsOptionsTest.java
index 548bce3..8f40d79 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/options/TemporaryCredentialsOptionsTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/options/SessionCredentialsOptionsTest.java
@@ -18,9 +18,9 @@
  */
 package org.jclouds.sts.options;
 
-import static org.jclouds.sts.options.TemporaryCredentialsOptions.Builder.serialNumber;
-import static org.jclouds.sts.options.TemporaryCredentialsOptions.Builder.durationSeconds;
-import static org.jclouds.sts.options.TemporaryCredentialsOptions.Builder.tokenCode;
+import static org.jclouds.sts.options.SessionCredentialsOptions.Builder.serialNumber;
+import static org.jclouds.sts.options.SessionCredentialsOptions.Builder.durationSeconds;
+import static org.jclouds.sts.options.SessionCredentialsOptions.Builder.tokenCode;
 import static org.testng.Assert.assertEquals;
 
 import org.testng.annotations.Test;
@@ -31,36 +31,36 @@
  * 
  * @author Adrian Cole
  */
-@Test(groups = "unit", testName = "TemporaryCredentialsOptionsTest")
-public class TemporaryCredentialsOptionsTest {
+@Test(groups = "unit", testName = "SessionCredentialsOptionsTest")
+public class SessionCredentialsOptionsTest {
 
    public void testSerialNumber() {
-      TemporaryCredentialsOptions options = new TemporaryCredentialsOptions().serialNumber("YourMFADeviceSerialNumber");
+      SessionCredentialsOptions options = new SessionCredentialsOptions().serialNumber("YourMFADeviceSerialNumber");
       assertEquals(ImmutableSet.of("YourMFADeviceSerialNumber"), options.buildFormParameters().get("SerialNumber"));
    }
 
    public void testSerialNumberStatic() {
-      TemporaryCredentialsOptions options = serialNumber("YourMFADeviceSerialNumber");
+      SessionCredentialsOptions options = serialNumber("YourMFADeviceSerialNumber");
       assertEquals(ImmutableSet.of("YourMFADeviceSerialNumber"), options.buildFormParameters().get("SerialNumber"));
    }
 
    public void testDurationSeconds() {
-      TemporaryCredentialsOptions options = new TemporaryCredentialsOptions().durationSeconds(3600);
+      SessionCredentialsOptions options = new SessionCredentialsOptions().durationSeconds(3600);
       assertEquals(ImmutableSet.of("3600"), options.buildFormParameters().get("DurationSeconds"));
    }
 
    public void testDurationSecondsStatic() {
-      TemporaryCredentialsOptions options = durationSeconds(3600);
+      SessionCredentialsOptions options = durationSeconds(3600);
       assertEquals(ImmutableSet.of("3600"), options.buildFormParameters().get("DurationSeconds"));
    }
 
    public void testTokenCode() {
-      TemporaryCredentialsOptions options = new TemporaryCredentialsOptions().tokenCode("123456");
+      SessionCredentialsOptions options = new SessionCredentialsOptions().tokenCode("123456");
       assertEquals(ImmutableSet.of("123456"), options.buildFormParameters().get("TokenCode"));
    }
 
    public void testTokenCodeStatic() {
-      TemporaryCredentialsOptions options = tokenCode("123456");
+      SessionCredentialsOptions options = tokenCode("123456");
       assertEquals(ImmutableSet.of("123456"), options.buildFormParameters().get("TokenCode"));
    }
 
diff --git a/apis/sts/src/test/java/org/jclouds/sts/parse/AssumeRoleResponseTest.java b/apis/sts/src/test/java/org/jclouds/sts/parse/AssumeRoleResponseTest.java
index b8a3e74..9259951 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/parse/AssumeRoleResponseTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/parse/AssumeRoleResponseTest.java
@@ -23,9 +23,9 @@
 import java.io.InputStream;
 
 import org.jclouds.http.functions.BaseHandlerTest;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.jclouds.sts.domain.User;
-import org.jclouds.sts.xml.UserAndTemporaryCredentialsHandler;
+import org.jclouds.sts.xml.UserAndSessionCredentialsHandler;
 import org.testng.annotations.Test;
 
 /**
@@ -38,18 +38,18 @@
    public void test() {
       InputStream is = getClass().getResourceAsStream("/assume_role.xml");
 
-      UserAndTemporaryCredentials expected = expected();
+      UserAndSessionCredentials expected = expected();
 
-      UserAndTemporaryCredentialsHandler handler = injector.getInstance(UserAndTemporaryCredentialsHandler.class);
-      UserAndTemporaryCredentials result = factory.create(handler).parse(is);
+      UserAndSessionCredentialsHandler handler = injector.getInstance(UserAndSessionCredentialsHandler.class);
+      UserAndSessionCredentials result = factory.create(handler).parse(is);
 
       assertEquals(result, expected);
       assertEquals(result.getUser(), expected.getUser());
       assertEquals(result.getPackedPolicySize(), expected.getPackedPolicySize());
    }
 
-   public UserAndTemporaryCredentials expected() {
-      return UserAndTemporaryCredentials.builder()
+   public UserAndSessionCredentials expected() {
+      return UserAndSessionCredentials.builder()
                         .credentials(new GetSessionTokenResponseTest().expected())
                         .user(User.fromIdAndArn("ARO123EXAMPLE123:Bob", "arn:aws:sts::123456789012:assumed-role/demo/Bob"))
                         .packedPolicySize(6).build();
diff --git a/apis/sts/src/test/java/org/jclouds/sts/parse/GetFederationTokenResponseTest.java b/apis/sts/src/test/java/org/jclouds/sts/parse/GetFederationTokenResponseTest.java
index 0a5e6e3..82e57fb 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/parse/GetFederationTokenResponseTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/parse/GetFederationTokenResponseTest.java
@@ -23,9 +23,9 @@
 import java.io.InputStream;
 
 import org.jclouds.http.functions.BaseHandlerTest;
-import org.jclouds.sts.domain.UserAndTemporaryCredentials;
+import org.jclouds.sts.domain.UserAndSessionCredentials;
 import org.jclouds.sts.domain.User;
-import org.jclouds.sts.xml.UserAndTemporaryCredentialsHandler;
+import org.jclouds.sts.xml.UserAndSessionCredentialsHandler;
 import org.testng.annotations.Test;
 
 /**
@@ -38,18 +38,18 @@
    public void test() {
       InputStream is = getClass().getResourceAsStream("/federation_token.xml");
 
-      UserAndTemporaryCredentials expected = expected();
+      UserAndSessionCredentials expected = expected();
 
-      UserAndTemporaryCredentialsHandler handler = injector.getInstance(UserAndTemporaryCredentialsHandler.class);
-      UserAndTemporaryCredentials result = factory.create(handler).parse(is);
+      UserAndSessionCredentialsHandler handler = injector.getInstance(UserAndSessionCredentialsHandler.class);
+      UserAndSessionCredentials result = factory.create(handler).parse(is);
 
       assertEquals(result, expected);
       assertEquals(result.getUser(), expected.getUser());
       assertEquals(result.getPackedPolicySize(), expected.getPackedPolicySize());
    }
 
-   public UserAndTemporaryCredentials expected() {
-      return UserAndTemporaryCredentials.builder()
+   public UserAndSessionCredentials expected() {
+      return UserAndSessionCredentials.builder()
                         .credentials(new GetSessionTokenResponseTest().expected())
                         .user(User.fromIdAndArn("123456789012:Bob", "arn:aws:sts::123456789012:federated-user/Bob"))
                         .packedPolicySize(6).build();
diff --git a/apis/sts/src/test/java/org/jclouds/sts/parse/GetSessionTokenResponseTest.java b/apis/sts/src/test/java/org/jclouds/sts/parse/GetSessionTokenResponseTest.java
index bd2aeec..163d09c 100644
--- a/apis/sts/src/test/java/org/jclouds/sts/parse/GetSessionTokenResponseTest.java
+++ b/apis/sts/src/test/java/org/jclouds/sts/parse/GetSessionTokenResponseTest.java
@@ -22,8 +22,8 @@
 
 import java.io.InputStream;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
-import org.jclouds.aws.xml.TemporaryCredentialsHandler;
+import org.jclouds.aws.domain.SessionCredentials;
+import org.jclouds.aws.xml.SessionCredentialsHandler;
 import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.http.functions.BaseHandlerTest;
 import org.testng.annotations.Test;
@@ -38,10 +38,10 @@
    public void test() {
       InputStream is = getClass().getResourceAsStream("/session_token.xml");
 
-      TemporaryCredentials expected = expected();
+      SessionCredentials expected = expected();
 
-      TemporaryCredentialsHandler handler = injector.getInstance(TemporaryCredentialsHandler.class);
-      TemporaryCredentials result = factory.create(handler).parse(is);
+      SessionCredentialsHandler handler = injector.getInstance(SessionCredentialsHandler.class);
+      SessionCredentials result = factory.create(handler).parse(is);
 
       assertEquals(result, expected);
       assertEquals(result.getAccessKeyId(), expected.getAccessKeyId());
@@ -50,8 +50,8 @@
       assertEquals(result.getExpiration(), expected.getExpiration());
    }
 
-   public TemporaryCredentials expected() {
-      return TemporaryCredentials.builder()
+   public SessionCredentials expected() {
+      return SessionCredentials.builder()
             .accessKeyId("AKIAIOSFODNN7EXAMPLE")
             .secretAccessKey("wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY")
             .sessionToken("AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT")
diff --git a/common/aws/src/main/java/org/jclouds/aws/domain/TemporaryCredentials.java b/common/aws/src/main/java/org/jclouds/aws/domain/SessionCredentials.java
similarity index 77%
rename from common/aws/src/main/java/org/jclouds/aws/domain/TemporaryCredentials.java
rename to common/aws/src/main/java/org/jclouds/aws/domain/SessionCredentials.java
index 57f8d58..4dc1f13 100644
--- a/common/aws/src/main/java/org/jclouds/aws/domain/TemporaryCredentials.java
+++ b/common/aws/src/main/java/org/jclouds/aws/domain/SessionCredentials.java
@@ -25,7 +25,7 @@
 import org.jclouds.domain.Credentials;
 
 import com.google.common.base.Objects;
-import com.google.common.base.Supplier;
+import com.google.common.base.Optional;
 
 /**
  * AWS credentials for API authentication.
@@ -36,77 +36,12 @@
  * 
  * @author Adrian Cole
  */
-public final class TemporaryCredentials extends Credentials {
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public Builder toBuilder() {
-      return builder().from(this);
-   }
-
-   public final static class Builder extends Credentials.Builder<TemporaryCredentials> {
-      private String accessKeyId;
-      private String secretAccessKey;
-      private String sessionToken;
-      private Date expiration;
-
-      @Override
-      public Builder identity(String identity) {
-         return accessKeyId(identity);
-      }
-
-      @Override
-      public Builder credential(String credential) {
-         return secretAccessKey(credential);
-      }
-
-      /**
-       * @see TemporaryCredentials#getAccessKeyId()
-       */
-      public Builder accessKeyId(String accessKeyId) {
-         this.accessKeyId = accessKeyId;
-         return this;
-      }
-
-      /**
-       * @see TemporaryCredentials#getSecretAccessKey()
-       */
-      public Builder secretAccessKey(String secretAccessKey) {
-         this.secretAccessKey = secretAccessKey;
-         return this;
-      }
-
-      /**
-       * @see TemporaryCredentials#getSessionToken()
-       */
-      public Builder sessionToken(String sessionToken) {
-         this.sessionToken = sessionToken;
-         return this;
-      }
-
-      /**
-       * @see TemporaryCredentials#getExpiration()
-       */
-      public Builder expiration(Date expiration) {
-         this.expiration = expiration;
-         return this;
-      }
-
-      public TemporaryCredentials build() {
-         return new TemporaryCredentials(accessKeyId, secretAccessKey, sessionToken, expiration);
-      }
-
-      public Builder from(TemporaryCredentials in) {
-         return this.accessKeyId(in.identity).secretAccessKey(in.credential).sessionToken(in.sessionToken)
-               .expiration(in.expiration);
-      }
-   }
+public final class SessionCredentials extends Credentials {
 
    private final String sessionToken;
-   private final Date expiration;
+   private final Optional<Date> expiration;
 
-   private TemporaryCredentials(String accessKeyId, String secretAccessKey, String sessionToken, Date expiration) {
+   private SessionCredentials(String accessKeyId, String secretAccessKey, String sessionToken, Optional<Date> expiration) {
       super(checkNotNull(accessKeyId, "accessKeyId"), checkNotNull(secretAccessKey, "secretAccessKey for %s",
             accessKeyId));
       this.sessionToken = checkNotNull(sessionToken, "sessionToken for %s", accessKeyId);
@@ -138,21 +73,15 @@
    /**
     * The date on which these credentials expire.
     */
-   public Date getExpiration() {
+   public Optional<Date> getExpiration() {
       return expiration;
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
    public int hashCode() {
       return Objects.hashCode(identity, credential, sessionToken, expiration);
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
    public boolean equals(Object obj) {
       if (this == obj)
@@ -161,17 +90,80 @@
          return false;
       if (getClass() != obj.getClass())
          return false;
-      TemporaryCredentials other = (TemporaryCredentials) obj;
+      SessionCredentials other = (SessionCredentials) obj;
       return Objects.equal(this.identity, other.identity) && Objects.equal(this.credential, other.credential)
             && Objects.equal(this.sessionToken, other.sessionToken) && Objects.equal(this.expiration, other.expiration);
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
    public String toString() {
-      return Objects.toStringHelper(this).add("accessKeyId", identity).add("sessionToken", sessionToken)
-            .add("expiration", expiration).toString();
+      return Objects.toStringHelper(this).omitNullValues().add("accessKeyId", identity)
+            .add("sessionToken", sessionToken).add("expiration", expiration.orNull()).toString();
+   }
+
+   public static Builder builder() {
+      return new Builder();
+   }
+
+   public Builder toBuilder() {
+      return builder().from(this);
+   }
+
+   public final static class Builder extends Credentials.Builder<SessionCredentials> {
+      private String accessKeyId;
+      private String secretAccessKey;
+      private String sessionToken;
+      private Optional<Date> expiration = Optional.absent();
+
+      @Override
+      public Builder identity(String identity) {
+         return accessKeyId(identity);
+      }
+
+      @Override
+      public Builder credential(String credential) {
+         return secretAccessKey(credential);
+      }
+
+      /**
+       * @see SessionCredentials#getAccessKeyId()
+       */
+      public Builder accessKeyId(String accessKeyId) {
+         this.accessKeyId = accessKeyId;
+         return this;
+      }
+
+      /**
+       * @see SessionCredentials#getSecretAccessKey()
+       */
+      public Builder secretAccessKey(String secretAccessKey) {
+         this.secretAccessKey = secretAccessKey;
+         return this;
+      }
+
+      /**
+       * @see SessionCredentials#getSessionToken()
+       */
+      public Builder sessionToken(String sessionToken) {
+         this.sessionToken = sessionToken;
+         return this;
+      }
+
+      /**
+       * @see SessionCredentials#getExpiration()
+       */
+      public Builder expiration(Date expiration) {
+         this.expiration = Optional.fromNullable(expiration);
+         return this;
+      }
+
+      public SessionCredentials build() {
+         return new SessionCredentials(accessKeyId, secretAccessKey, sessionToken, expiration);
+      }
+
+      public Builder from(SessionCredentials in) {
+         return this.accessKeyId(in.identity).secretAccessKey(in.credential).sessionToken(in.sessionToken)
+               .expiration(in.expiration.orNull());
+      }
    }
 }
diff --git a/common/aws/src/main/java/org/jclouds/aws/filters/FormSigner.java b/common/aws/src/main/java/org/jclouds/aws/filters/FormSigner.java
index a9483f2..dc55718 100644
--- a/common/aws/src/main/java/org/jclouds/aws/filters/FormSigner.java
+++ b/common/aws/src/main/java/org/jclouds/aws/filters/FormSigner.java
@@ -45,7 +45,7 @@
 import javax.ws.rs.core.HttpHeaders;
 
 import org.jclouds.Constants;
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.crypto.Crypto;
 import org.jclouds.date.TimeStamp;
 import org.jclouds.domain.Credentials;
@@ -203,8 +203,8 @@
       params.removeAll(SIGNATURE);
       params.removeAll(SECURITY_TOKEN);
       Credentials current = creds.get();
-      if (current instanceof TemporaryCredentials) {
-         params.put(SECURITY_TOKEN, TemporaryCredentials.class.cast(current).getSessionToken());
+      if (current instanceof SessionCredentials) {
+         params.put(SECURITY_TOKEN, SessionCredentials.class.cast(current).getSessionToken());
       }
       params.replaceValues(SIGNATURE_METHOD, ImmutableList.of("HmacSHA256"));
       params.replaceValues(SIGNATURE_VERSION, ImmutableList.of("2"));
diff --git a/common/aws/src/main/java/org/jclouds/aws/xml/TemporaryCredentialsHandler.java b/common/aws/src/main/java/org/jclouds/aws/xml/SessionCredentialsHandler.java
similarity index 80%
rename from common/aws/src/main/java/org/jclouds/aws/xml/TemporaryCredentialsHandler.java
rename to common/aws/src/main/java/org/jclouds/aws/xml/SessionCredentialsHandler.java
index 65f9e7e..c26f78a 100644
--- a/common/aws/src/main/java/org/jclouds/aws/xml/TemporaryCredentialsHandler.java
+++ b/common/aws/src/main/java/org/jclouds/aws/xml/SessionCredentialsHandler.java
@@ -20,7 +20,7 @@
 
 import javax.inject.Inject;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
+import org.jclouds.aws.domain.SessionCredentials;
 import org.jclouds.date.DateService;
 import org.jclouds.http.functions.ParseSax;
 import org.jclouds.util.SaxUtils;
@@ -32,32 +32,26 @@
  * 
  * @author Adrian Cole
  */
-public class TemporaryCredentialsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<TemporaryCredentials> {
+public class SessionCredentialsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<SessionCredentials> {
    private final DateService dateService;
 
    @Inject
-   protected TemporaryCredentialsHandler(DateService dateService) {
+   protected SessionCredentialsHandler(DateService dateService) {
       this.dateService = dateService;
    }
 
    private StringBuilder currentText = new StringBuilder();
-   private TemporaryCredentials.Builder builder = TemporaryCredentials.builder();
+   private SessionCredentials.Builder builder = SessionCredentials.builder();
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
-   public TemporaryCredentials getResult() {
+   public SessionCredentials getResult() {
       try {
          return builder.build();
       } finally {
-         builder = TemporaryCredentials.builder();
+         builder = SessionCredentials.builder();
       }
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
    public void endElement(String uri, String name, String qName) {
       if (qName.equals("AccessKeyId")) {
@@ -72,12 +66,8 @@
       currentText = new StringBuilder();
    }
 
-   /**
-    * {@inheritDoc}
-    */
    @Override
    public void characters(char ch[], int start, int length) {
       currentText.append(ch, start, length);
    }
-
 }
diff --git a/common/aws/src/test/java/org/jclouds/aws/filters/FormSignerTest.java b/common/aws/src/test/java/org/jclouds/aws/filters/FormSignerTest.java
index c91fe0b..fe980fc 100644
--- a/common/aws/src/test/java/org/jclouds/aws/filters/FormSignerTest.java
+++ b/common/aws/src/test/java/org/jclouds/aws/filters/FormSignerTest.java
@@ -24,7 +24,7 @@
 import javax.ws.rs.core.HttpHeaders;
 
 import org.jclouds.ContextBuilder;
-import org.jclouds.aws.xml.TemporaryCredentialsHandlerTest;
+import org.jclouds.aws.xml.SessionCredentialsHandlerTest;
 import org.jclouds.date.TimeStamp;
 import org.jclouds.domain.Credentials;
 import org.jclouds.http.HttpRequest;
@@ -84,7 +84,7 @@
 
    @Test
    void testAddsSecurityToken() {
-      HttpRequest filtered = filter(new TemporaryCredentialsHandlerTest().expected()).filter(request);
+      HttpRequest filtered = filter(new SessionCredentialsHandlerTest().expected()).filter(request);
       assertEquals(
             filtered.getPayload().getRawContent(),
             "Action=DescribeImages&ImageId.1=ami-2bb65342&SecurityToken=AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT&Signature=/8ReFVH1tvyNORsJb%2BSBieT9zvdqREQQr/olwmxC7VY%3D&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2009-11-08T15%3A54%3A08.897Z&Version=apiVersion&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE");
diff --git a/common/aws/src/test/java/org/jclouds/aws/xml/TemporaryCredentialsHandlerTest.java b/common/aws/src/test/java/org/jclouds/aws/xml/SessionCredentialsHandlerTest.java
similarity index 77%
rename from common/aws/src/test/java/org/jclouds/aws/xml/TemporaryCredentialsHandlerTest.java
rename to common/aws/src/test/java/org/jclouds/aws/xml/SessionCredentialsHandlerTest.java
index 5c11266..18053e1 100644
--- a/common/aws/src/test/java/org/jclouds/aws/xml/TemporaryCredentialsHandlerTest.java
+++ b/common/aws/src/test/java/org/jclouds/aws/xml/SessionCredentialsHandlerTest.java
@@ -22,8 +22,8 @@
 
 import java.io.InputStream;
 
-import org.jclouds.aws.domain.TemporaryCredentials;
-import org.jclouds.aws.xml.TemporaryCredentialsHandler;
+import org.jclouds.aws.domain.SessionCredentials;
+import org.jclouds.aws.xml.SessionCredentialsHandler;
 import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.http.functions.BaseHandlerTest;
 import org.testng.annotations.Test;
@@ -32,16 +32,16 @@
  * @author Adrian Cole
  */
 // NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
-@Test(groups = "unit", testName = "TemporaryCredentialsHandlerTest")
-public class TemporaryCredentialsHandlerTest extends BaseHandlerTest {
+@Test(groups = "unit", testName = "SessionCredentialsHandlerTest")
+public class SessionCredentialsHandlerTest extends BaseHandlerTest {
 
    public void test() {
       InputStream is = getClass().getResourceAsStream("/credentials.xml");
 
-      TemporaryCredentials expected = expected();
+      SessionCredentials expected = expected();
 
-      TemporaryCredentialsHandler handler = injector.getInstance(TemporaryCredentialsHandler.class);
-      TemporaryCredentials result = factory.create(handler).parse(is);
+      SessionCredentialsHandler handler = injector.getInstance(SessionCredentialsHandler.class);
+      SessionCredentials result = factory.create(handler).parse(is);
 
       assertEquals(result, expected);
       assertEquals(result.getAccessKeyId(), expected.getAccessKeyId());
@@ -50,8 +50,8 @@
       assertEquals(result.getExpiration(), expected.getExpiration());
    }
 
-   public TemporaryCredentials expected() {
-      return TemporaryCredentials.builder()
+   public SessionCredentials expected() {
+      return SessionCredentials.builder()
             .accessKeyId("AKIAIOSFODNN7EXAMPLE")
             .secretAccessKey("wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY")
             .sessionToken("AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT")