http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
index 9865609..836846e 100644
--- 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
@@ -17,31 +17,28 @@
 
 package org.jclouds.googlecloudstorage.domain.templates;
 
+import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
-import org.jclouds.googlecloudstorage.domain.DomainUtils;
 import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.google.common.hash.HashCode;
-import com.google.common.io.BaseEncoding;
 import com.google.common.net.MediaType;
 
 public class ObjectTemplate {
 
-   protected String name;
-   protected Long size;
-   protected String cacheControl;
-   protected String contentDisposition;
-   protected String contentEncoding;
-   protected String contentLanguage;
-   protected String contentType;
-   protected String crc32c;
-   protected String md5Hash;
+   private String name;
+   private Long size;
+   private String cacheControl;
+   private String contentDisposition;
+   private String contentEncoding;
+   private String contentLanguage;
+   private String contentType;
+   private String crc32c;
+   private String md5Hash;
    private Map<String, String> metadata = Maps.newLinkedHashMap();
-   protected Set<ObjectAccessControls> acl = Sets.newLinkedHashSet();
+   private List<ObjectAccessControls> acl = Lists.newArrayList();
 
    public ObjectTemplate name(String name) {
       this.name = name;
@@ -93,13 +90,13 @@ public class ObjectTemplate {
       return this;
    }
 
-   public ObjectTemplate crc32c(HashCode crc32c) {
-      this.crc32c = 
BaseEncoding.base64().encode(DomainUtils.reverse(crc32c.asBytes()));
+   public ObjectTemplate crc32c(String crc32c) {
+      this.crc32c = crc32c;
       return this;
    }
 
-   public ObjectTemplate md5Hash(HashCode md5Hash) {
-      this.md5Hash = BaseEncoding.base64().encode(md5Hash.asBytes());
+   public ObjectTemplate md5Hash(String md5Hash) {
+      this.md5Hash = crc32c;
       return this;
    }
 
@@ -108,80 +105,44 @@ public class ObjectTemplate {
       return this;
    }
 
-   public ObjectTemplate acl(Set<ObjectAccessControls> acl) {
+   public ObjectTemplate acl(List<ObjectAccessControls> acl) {
       this.acl.addAll(acl);
       return this;
    }
 
-   public String getCacheControl() {
+   public String cacheControl() {
       return cacheControl;
    }
 
-   public String getContentDisposition() {
+   public String contentDisposition() {
       return contentDisposition;
    }
 
-   public String getContentEncoding() {
+   public String contentEncoding() {
       return contentEncoding;
    }
 
-   public String getContentLanguage() {
+   public String contentLanguage() {
       return contentLanguage;
    }
 
-   public String getContentType() {
+   public String contentType() {
       return contentType;
    }
 
-   public HashCode getCrc32cHashcode() {
-      if (crc32c != null) {
-         HashCode hc = 
HashCode.fromBytes(DomainUtils.reverse(BaseEncoding.base64().decode(crc32c)));
-         return hc;
-      }
-      return null;
-   }
-
-   public HashCode getMd5HashCode() {
-      if (md5Hash != null) {
-         HashCode hc = 
HashCode.fromBytes(BaseEncoding.base64().decode(md5Hash));
-         return hc;
-      }
-      return null;
-   }
-
-   public Map<String, String> getAllCustomMetadata() {
+   public Map<String, String> metadata() {
       return metadata;
    }
 
-   public String getName() {
+   public String name() {
       return name;
    }
 
-   public Long getSize() {
+   public Long size() {
       return size;
    }
 
-   public Set<ObjectAccessControls> getAcl() {
+   public List<ObjectAccessControls> acl() {
       return acl;
    }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static ObjectTemplate fromObjectTemplate(ObjectTemplate 
objectTemplate) {
-      return Builder.fromObjectTemplate(objectTemplate);
-   }
-
-   public static class Builder {
-
-      public static ObjectTemplate fromObjectTemplate(ObjectTemplate in) {
-         return new 
ObjectTemplate().name(in.getName()).size(in.getSize()).acl(in.getAcl())
-                  
.cacheControl(in.getCacheControl()).contentDisposition(in.getContentDisposition())
-                  
.contentEncoding(in.getContentEncoding()).contentLanguage(in.getContentLanguage())
-                  
.contentType(in.getContentType()).md5Hash(in.getMd5HashCode())
-                  
.customMetadata(in.getAllCustomMetadata()).crc32c(in.getCrc32cHashcode());
-
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
index 338b3ba..3d428da 100644
--- 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
 
 import static 
org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
 
+import java.util.List;
+
 import javax.inject.Named;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -31,7 +33,6 @@ import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.javax.annotation.Nullable;
@@ -41,6 +42,7 @@ import org.jclouds.rest.annotations.BinderParam;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.PATCH;
 import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
 import org.jclouds.rest.annotations.SkipEncoding;
 import org.jclouds.rest.binders.BindToJsonPayload;
 
@@ -130,7 +132,8 @@ public interface BucketAccessControlsApi {
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
    @Nullable
-   ListBucketAccessControls listBucketAccessControls(@PathParam("bucket") 
String bucketName);
+   @SelectJson("items")
+   List<BucketAccessControls> listBucketAccessControls(@PathParam("bucket") 
String bucketName);
 
    /**
     * Updates an ACL entry on the specified bucket

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
index 54dca83..9fda891 100644
--- 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
 
 import static 
org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
 
+import java.util.List;
+
 import javax.inject.Named;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -31,10 +33,9 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import 
org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import 
org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.oauth.v2.config.OAuthScopes;
@@ -43,6 +44,7 @@ import org.jclouds.rest.annotations.BinderParam;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.PATCH;
 import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
 import org.jclouds.rest.annotations.SkipEncoding;
 import org.jclouds.rest.binders.BindToJsonPayload;
 
@@ -75,8 +77,8 @@ public interface DefaultObjectAccessControlsApi {
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
    @Nullable
-   DefaultObjectAccessControls 
getDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
-            @PathParam("entity") String entity);
+   ObjectAccessControls getDefaultObjectAccessControls(@PathParam("bucket") 
String bucketName,
+         @PathParam("entity") String entity);
 
    /**
     * Creates a new ACL entry for specified object
@@ -94,8 +96,8 @@ public interface DefaultObjectAccessControlsApi {
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/b/{bucket}/defaultObjectAcl")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
-   DefaultObjectAccessControls 
createDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
-            @BinderParam(BindToJsonPayload.class) 
DefaultObjectAccessControlsTemplate template);
+   ObjectAccessControls createDefaultObjectAccessControls(@PathParam("bucket") 
String bucketName,
+            @BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate 
template);
 
    /**
     * Permanently deletes the DefaultObjectAcessControl entry for the 
specified entity on the specified bucket.
@@ -108,7 +110,6 @@ public interface DefaultObjectAccessControlsApi {
     *
     * @return If successful, this method returns an empty response body
     */
-
    @Named("DefaultObjectAccessControls:delete")
    @DELETE
    @Consumes(MediaType.APPLICATION_JSON)
@@ -124,10 +125,6 @@ public interface DefaultObjectAccessControlsApi {
     *
     * @param bucketName
     *           Name of the bucket which contains the object
-    * @param objectName
-    *           Name of the bucket of that ACL is related
-    * @param generation
-    *           If present, selects a specific revision of this object
     *
     * @return ListObjectAccessControls resource
     *
@@ -141,20 +138,18 @@ public interface DefaultObjectAccessControlsApi {
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
    @Nullable
-   ListDefaultObjectAccessControls 
listDefaultObjectAccessControls(@PathParam("bucket") String bucketName);
+   @SelectJson("items")
+   List<ObjectAccessControls> 
listDefaultObjectAccessControls(@PathParam("bucket") String bucketName);
 
    /**
     * Retrieves ACL entries on a specified object
     *
     * @param bucketName
     *           Name of the bucket which contains the object
-    * @param generation
-    *           If present, selects a specific revision of this object
     *
     * @return DefaultObjectAccessControls resource
     *
     */
-
    @Named("DefaultObjectAccessControls:update")
    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
@@ -162,22 +157,16 @@ public interface DefaultObjectAccessControlsApi {
    @Path("/b/{bucket}/defaultObjectAcl/{entity}")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
-   DefaultObjectAccessControls 
updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+   ObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") 
String bucketName,
             @PathParam("entity") String entity,
-            @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls 
payload);
+            @BinderParam(BindToJsonPayload.class) ObjectAccessControls 
payload);
 
    /**
     * Retrieves ACL entries on a specified object
     *
     * @param bucketName
     *           Name of the bucket which contains the object
-    * @param generation
-    *           If present, selects a specific revision of this object
-    *
-    * @return DefaultObjectAccessControls resource
-    *
     */
-
    @Named("DefaultObjectAccessControls:update")
    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
@@ -185,9 +174,9 @@ public interface DefaultObjectAccessControlsApi {
    @Path("/b/{bucket}/defaultObjectAcl/{entity}")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
-   DefaultObjectAccessControls 
updateDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+   ObjectAccessControls updateDefaultObjectAccessControls(@PathParam("bucket") 
String bucketName,
             @PathParam("entity") String entity,
-            @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls 
payload,
+            @BinderParam(BindToJsonPayload.class) ObjectAccessControls payload,
             @QueryParam("role") ObjectRole role);
 
    /**
@@ -195,13 +184,7 @@ public interface DefaultObjectAccessControlsApi {
     *
     * @param bucketName
     *           Name of the bucket which contains the object
-    * @param generation
-    *           If present, selects a specific revision of this object
-    *
-    * @return DefaultObjectAccessControls resource
-    *
     */
-
    @Named("DefaultObjectAccessControls:patch")
    @PATCH
    @Consumes(MediaType.APPLICATION_JSON)
@@ -209,7 +192,7 @@ public interface DefaultObjectAccessControlsApi {
    @Path("/b/{bucket}/defaultObjectAcl/{entity}")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
-   DefaultObjectAccessControls 
patchDefaultObjectAccessControls(@PathParam("bucket") String bucketName,
+   ObjectAccessControls patchDefaultObjectAccessControls(@PathParam("bucket") 
String bucketName,
             @PathParam("entity") String entity,
-            @BinderParam(BindToJsonPayload.class) DefaultObjectAccessControls 
payload);
+            @BinderParam(BindToJsonPayload.class) ObjectAccessControls 
payload);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
index 5645757..5b0e0a9 100644
--- 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
@@ -18,6 +18,8 @@ package org.jclouds.googlecloudstorage.features;
 
 import static 
org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
 
+import java.util.List;
+
 import javax.inject.Named;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -31,7 +33,6 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.googlecloudstorage.domain.ListObjectAccessControls;
 import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
 import org.jclouds.javax.annotation.Nullable;
@@ -41,6 +42,7 @@ import org.jclouds.rest.annotations.BinderParam;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.PATCH;
 import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.SelectJson;
 import org.jclouds.rest.annotations.SkipEncoding;
 import org.jclouds.rest.binders.BindToJsonPayload;
 
@@ -93,7 +95,6 @@ public interface ObjectAccessControlsApi {
     *
     * @return an {@link ObjectAccessControls }
     */
-
    @Named("ObjectAccessControls:get")
    @GET
    @Consumes(MediaType.APPLICATION_JSON)
@@ -116,7 +117,6 @@ public interface ObjectAccessControlsApi {
     *
     * @return an {@link ObjectAccessControls }
     */
-
    @Named("ObjectAccessControls:insert")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
@@ -140,7 +140,6 @@ public interface ObjectAccessControlsApi {
     *
     * @return an {@link ObjectAccessControls }
     */
-
    @Named("ObjectAccessControls:insert")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
@@ -185,7 +184,6 @@ public interface ObjectAccessControlsApi {
     *           The entity holding the permission. Can be user-userId, 
user-emailAddress, group-groupId,
     *           group-emailAddress, allUsers, or allAuthenticatedUsers
     */
-
    @Named("ObjectAccessControls:delete")
    @DELETE
    @Consumes(MediaType.APPLICATION_JSON)
@@ -201,13 +199,7 @@ public interface ObjectAccessControlsApi {
     *           Name of the bucket which contains the object
     * @param objectName
     *           Name of the bucket of that acl is related
-    * @param generation
-    *           If present, selects a specific revision of this object
-    *
-    * @return {@link ListObjectAccessControls } resource
-    *
     */
-
    @Named("ObjectAccessControls:list")
    @GET
    @Consumes(MediaType.APPLICATION_JSON)
@@ -215,8 +207,9 @@ public interface ObjectAccessControlsApi {
    @Path("/b/{bucket}/o/{object}/acl")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
+   @SelectJson("items")
    @Nullable
-   ListObjectAccessControls listObjectAccessControls(@PathParam("bucket") 
String bucketName,
+   List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") 
String bucketName,
             @PathParam("object") String objectName);
 
    /**
@@ -229,10 +222,7 @@ public interface ObjectAccessControlsApi {
     * @param generation
     *           If present, selects a specific revision of this object
     *
-    * @return a {@link ListObjectAccessControls }
-    *
     */
-
    @Named("ObjectAccessControls:list")
    @GET
    @Consumes(MediaType.APPLICATION_JSON)
@@ -240,8 +230,9 @@ public interface ObjectAccessControlsApi {
    @Path("/b/{bucket}/o/{object}/acl")
    @OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
    @Fallback(NullOnNotFoundOr404.class)
+   @SelectJson("items")
    @Nullable
-   ListObjectAccessControls listObjectAccessControls(@PathParam("bucket") 
String bucketName,
+   List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") 
String bucketName,
             @PathParam("object") String objectName, @QueryParam("generation") 
Long generation);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
new file mode 100644
index 0000000..3cec1b4
--- /dev/null
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.internal;
+
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class NullSafeCopies {
+
+   public static <K, V> Map<K, V> copyOf(@Nullable Map<K, V> map) {
+      return map != null ? ImmutableMap.copyOf(map) : ImmutableMap.<K, V>of();
+   }
+
+   public static <E> List<E> copyOf(@Nullable List<E> list) {
+      return list != null ? ImmutableList.copyOf(list) : ImmutableList.<E>of();
+   }
+
+   private NullSafeCopies() {
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
index fa3c318..ec0effa 100644
--- 
a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
+++ 
b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToResumableUpload.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.googlecloudstorage.parser;
 
+import static com.google.common.base.Preconditions.checkArgument;
+
 import java.util.regex.Pattern;
 
 import org.jclouds.googlecloudstorage.domain.ResumableUpload;
@@ -41,16 +43,19 @@ public class ParseToResumableUpload implements 
Function<HttpResponse, ResumableU
       if (range != null) {
          upperLimit = getUpperLimitFromRange(range);
          lowerLimit = getLowerLimitFromRange(range);
+         if (lowerLimit != null && upperLimit != null) {
+            checkArgument(lowerLimit < upperLimit, "lower range must less than 
upper range, was: %s - %s", lowerLimit,
+                  upperLimit);
+         }
       }
 
-      return 
ResumableUpload.builder().statusCode(response.getStatusCode()).contentLength(contentLength)
-               
.uploadId(uploadId).rangeUpperValue(upperLimit).rangeLowerValue(lowerLimit).build();
+      return ResumableUpload.create(response.getStatusCode(), contentLength, 
uploadId, upperLimit, lowerLimit);
    }
 
    // Return the Id of the Upload
    private String getUploadId(String sessionUri) {
       return 
Splitter.on(Pattern.compile("\\&")).trimResults().omitEmptyStrings().withKeyValueSeparator("=")
-               .split(sessionUri).get("upload_id");
+            .split(sessionUri).get("upload_id");
    }
 
    private long getUpperLimitFromRange(String range) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
 
b/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
deleted file mode 100644
index 7528137..0000000
--- 
a/google-cloud-storage/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.jclouds.googlecloudstorage.GoogleCloudStorageApiMetadata

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
index da61901..89ec40b 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
@@ -23,7 +23,7 @@ import static org.testng.AssertJUnit.assertNull;
 
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
 import 
org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
 import org.jclouds.googlecloudstorage.parse.BucketAclGetTest;
@@ -109,11 +109,9 @@ public class BucketAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       BucketAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                insertRequest, 
CREATE_BUCKETACL_RESPONSE).getBucketAccessControlsApi();
 
-      BucketAccessControlsTemplate template = new 
BucketAccessControlsTemplate().entity("allAuthenticatedUsers").role(
-               Role.WRITER);
+      BucketAccessControlsTemplate template = 
BucketAccessControlsTemplate.create("allAuthenticatedUsers", Role.WRITER);
 
       assertEquals(api.createBucketAccessControls(EXPECTED_TEST_BUCKET, 
template), new BucketAclInsertTest().expected());
-
    }
 
    // Test deleteBucketAccessControls
@@ -160,7 +158,7 @@ public class BucketAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       BucketAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                update, updateResponse).getBucketAccessControlsApi();
 
-      BucketAccessControlsTemplate template = new 
BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
+      BucketAccessControlsTemplate template = 
BucketAccessControlsTemplate.create("allUsers", Role.OWNER);
 
       assertEquals(api.updateBucketAccessControls(EXPECTED_TEST_BUCKET, 
"allUsers", template),
                new BucketAclUpdateTest().expected());
@@ -183,7 +181,7 @@ public class BucketAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       BucketAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                patchRequest, patchResponse).getBucketAccessControlsApi();
 
-      BucketAccessControlsTemplate template = new 
BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
+      BucketAccessControlsTemplate template = 
BucketAccessControlsTemplate.create("allUsers", Role.OWNER);
 
       assertEquals(api.patchBucketAccessControls(EXPECTED_TEST_BUCKET, 
"allUsers", template),
                new BucketAclUpdateTest().expected());

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
index 93b2268..c44c38b 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
@@ -19,13 +19,12 @@ package org.jclouds.googlecloudstorage.features;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
+import java.util.List;
 import java.util.UUID;
 
 import org.jclouds.googlecloudstorage.domain.Bucket;
 import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
-import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
 import 
org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
@@ -48,21 +47,21 @@ public class BucketAccessControlsApiLiveTest extends 
BaseGoogleCloudStorageApiLi
    @Test(groups = "live")
    public void testCreateBucketAcl() {
       createBucket(BUCKET_NAME);
-      BucketAccessControlsTemplate bucketAcl = new 
BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
+      BucketAccessControlsTemplate bucketAcl = 
BucketAccessControlsTemplate.create("allUsers", Role.READER);
       BucketAccessControls response = 
api().createBucketAccessControls(BUCKET_NAME, bucketAcl);
 
       assertNotNull(response);
-      assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
+      assertEquals(response.id(), BUCKET_NAME + "/allUsers");
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucketAcl")
    public void testUpdateBucketAcl() {
-      BucketAccessControlsTemplate template = new 
BucketAccessControlsTemplate().entity("allUsers").role(Role.WRITER);
+      BucketAccessControlsTemplate template = 
BucketAccessControlsTemplate.create("allUsers", Role.WRITER);
       BucketAccessControls response = 
api().updateBucketAccessControls(BUCKET_NAME, "allUsers", template);
 
       assertNotNull(response);
-      assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
-      assertEquals(response.getRole(), Role.WRITER);
+      assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+      assertEquals(response.role(), Role.WRITER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
@@ -70,27 +69,25 @@ public class BucketAccessControlsApiLiveTest extends 
BaseGoogleCloudStorageApiLi
       BucketAccessControls response = 
api().getBucketAccessControls(BUCKET_NAME, "allUsers");
 
       assertNotNull(response);
-      assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
-      assertEquals(response.getRole(), Role.WRITER);
+      assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+      assertEquals(response.role(), Role.WRITER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
    public void testListBucketAcl() {
-      ListBucketAccessControls response = 
api().listBucketAccessControls(BUCKET_NAME);
+      List<BucketAccessControls> response = 
api().listBucketAccessControls(BUCKET_NAME);
 
       assertNotNull(response);
-      assertEquals(response.getKind(), Kind.BUCKET_ACCESS_CONTROLS);
-      assertNotNull(response.getItems());
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
    public void testPatchBucketAcl() {
-      BucketAccessControlsTemplate template = new 
BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
+      BucketAccessControlsTemplate template = 
BucketAccessControlsTemplate.create("allUsers", Role.READER);
       BucketAccessControls response = 
api().patchBucketAccessControls(BUCKET_NAME, "allUsers", template);
 
       assertNotNull(response);
-      assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
-      assertEquals(response.getRole(), Role.READER);
+      assertEquals(response.id(), BUCKET_NAME + "/allUsers");
+      assertEquals(response.role(), Role.READER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testPatchBucketAcl")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
index 6721ddc..ef41d71 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
@@ -26,7 +26,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
 import org.jclouds.googlecloudstorage.options.GetBucketOptions;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 3458706..c0ca7c6 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -18,26 +18,26 @@ package org.jclouds.googlecloudstorage.features;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
 
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
+import org.jclouds.googlecloudstorage.domain.Bucket;
+import org.jclouds.googlecloudstorage.domain.Bucket.Cors;
+import org.jclouds.googlecloudstorage.domain.Bucket.Logging;
+import org.jclouds.googlecloudstorage.domain.Bucket.Versioning;
 import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
 import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
-import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
 import org.jclouds.googlecloudstorage.domain.ListPage;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.Logging;
-import org.jclouds.googlecloudstorage.domain.internal.Versioning;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
 import org.jclouds.googlecloudstorage.options.DeleteBucketOptions;
@@ -71,27 +71,26 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
       BucketAccessControls acl = 
BucketAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers").role(Role.OWNER)
                .build();
-      DefaultObjectAccessControls oac = 
DefaultObjectAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
+      ObjectAccessControls oac = 
ObjectAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
                .role(ObjectRole.OWNER).build();
-      BucketCors bucketCors = 
BucketCors.builder().addOrigin("http://example.appspot.com";).addMethod("GET")
-               
.addMethod("HEAD").addResponseHeader("x-meta-goog-custom").maxAgeSeconds(10).build();
-      Versioning version = Versioning.builder().enalbled(true).build();
+      Cors cors = Cors.create(Arrays.asList("http://example.appspot.com";), 
Arrays.asList("GET", "HEAD"),
+            Arrays.asList("x-meta-goog-custom"), 10);
+      Versioning version = Versioning.create(true);
 
-      Logging log = 
Logging.builder().logBucket(LOG_BUCKET_NAME).logObjectPrefix(BUCKET_NAME).build();
+      Logging log = Logging.create(LOG_BUCKET_NAME, BUCKET_NAME);
 
       BucketTemplate template = new 
BucketTemplate().name(BUCKET_NAME).addAcl(acl).addDefaultObjectAccessControls(oac)
                .versioning(version).location(Location.US_CENTRAL2).logging(log)
-               
.storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(bucketCors);
+               
.storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(cors);
 
       Bucket response = api().createBucket(PROJECT_NUMBER, template);
 
       assertNotNull(response);
-      assertNotNull(response.getCors());
-      assertTrue(response.getCors().size() == 1);
-      assertEquals(response.getKind(), Kind.BUCKET);
-      assertEquals(response.getName(), BUCKET_NAME);
-      assertEquals(response.getLocation(), Location.US_CENTRAL2);
-      assertTrue(response.getVersioning().isEnabled());
+      assertNotNull(response.cors());
+      assertTrue(response.cors().size() == 1);
+      assertEquals(response.name(), BUCKET_NAME);
+      assertEquals(response.location(), Location.US_CENTRAL2);
+      assertTrue(response.versioning().enabled());
    }
 
    @Test(groups = "live", dependsOnMethods = { "testCreateBucket" })
@@ -105,27 +104,25 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
    @Test(groups = "live")
    public void testCreateBucketWithOptions() {
-
-      DefaultObjectAccessControls oac = 
DefaultObjectAccessControls.builder().bucket(BUCKET_NAME_WITHOPTIONS)
+      ObjectAccessControls oac = 
ObjectAccessControls.builder().bucket(BUCKET_NAME_WITHOPTIONS)
                .entity("allUsers").role(ObjectRole.OWNER).build();
-      BucketCors bucketCors = 
BucketCors.builder().addOrigin("http://example.appspot.com";).addMethod("GET")
-               
.addMethod("HEAD").addResponseHeader("x-meta-goog-custom").maxAgeSeconds(10).build();
-      Versioning version = Versioning.builder().enalbled(true).build();
+      Cors cors = Cors.create(Arrays.asList("http://example.appspot.com";), 
Arrays.asList("GET", "HEAD"),
+            Arrays.asList("x-meta-goog-custom"), 10);
+      Versioning version = Versioning.create(true);
 
       BucketTemplate template = new 
BucketTemplate().name(BUCKET_NAME_WITHOPTIONS).addDefaultObjectAccessControls(oac)
                .versioning(version).location(Location.US_CENTRAL2)
-               
.storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(bucketCors);
+               
.storageClass(StorageClass.DURABLE_REDUCED_AVAILABILITY).addCORS(cors);
 
       InsertBucketOptions options = new 
InsertBucketOptions().projection(Projection.FULL);
 
       Bucket response = api().createBucket(PROJECT_NUMBER, template, options);
 
       assertNotNull(response);
-      assertNotNull(response.getCors());
-      assertEquals(response.getKind(), Kind.BUCKET);
-      assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
-      assertEquals(response.getLocation(), Location.US_CENTRAL2);
-      assertTrue(response.getVersioning().isEnabled());
+      assertNotNull(response.cors());
+      assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
+      assertEquals(response.location(), Location.US_CENTRAL2);
+      assertTrue(response.versioning().enabled());
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -136,8 +133,8 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       Bucket response = api().updateBucket(BUCKET_NAME, template);
 
       assertNotNull(response);
-      assertEquals(response.getName(), BUCKET_NAME);
-      assertNotNull(response.getAcl());
+      assertEquals(response.name(), BUCKET_NAME);
+      assertNotNull(response.acl());
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucketWithOptions")
@@ -150,10 +147,10 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
       assertNotNull(response);
 
-      metageneration = response.getMetageneration();
+      metageneration = response.metageneration();
 
-      assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
-      assertNotNull(response.getAcl());
+      assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
+      assertNotNull(response.acl());
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -161,8 +158,7 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       Bucket response = api().getBucket(BUCKET_NAME);
 
       assertNotNull(response);
-      assertEquals(response.getName(), BUCKET_NAME);
-      assertEquals(response.getKind(), Kind.BUCKET);
+      assertEquals(response.name(), BUCKET_NAME);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateBucketWithOptions")
@@ -171,8 +167,7 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       Bucket response = api().getBucket(BUCKET_NAME_WITHOPTIONS, options);
 
       assertNotNull(response);
-      assertEquals(response.getName(), BUCKET_NAME_WITHOPTIONS);
-      assertEquals(response.getKind(), Kind.BUCKET);
+      assertEquals(response.name(), BUCKET_NAME_WITHOPTIONS);
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucket")
@@ -192,14 +187,14 @@ public class BucketApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testCreateBucket")
    public void testPatchBucket() {
-      Logging logging = 
Logging.builder().logBucket(LOG_BUCKET_NAME).logObjectPrefix(BUCKET_NAME).build();
+      Logging logging = Logging.create(LOG_BUCKET_NAME, BUCKET_NAME);
       BucketTemplate template = new 
BucketTemplate().name(BUCKET_NAME).logging(logging);
 
       Bucket response = api().patchBucket(BUCKET_NAME, template);
 
       assertNotNull(response);
-      assertEquals(response.getName(), BUCKET_NAME);
-      assertEquals(response.getLogging().getLogBucket(), LOG_BUCKET_NAME);
+      assertEquals(response.name(), BUCKET_NAME);
+      assertEquals(response.logging().logBucket(), LOG_BUCKET_NAME);
    }
 
    @Test(groups = "live", dependsOnMethods = { "testListBucket", 
"testGetBucket", "testUpdateBucket" })

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
index 2e09031..15bd44f 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
@@ -23,9 +23,9 @@ import static org.testng.AssertJUnit.assertNull;
 
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import 
org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import 
org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
 import org.jclouds.googlecloudstorage.parse.DefaultObjectAclGetTest;
 import org.jclouds.googlecloudstorage.parse.DefaultObjectAclInsertTest;
@@ -115,8 +115,7 @@ public class DefaultObjectAccessControlsApiExpectTest 
extends BaseGoogleCloudSto
       DefaultObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
                TOKEN_RESPONSE, insertRequest, 
CREATE_DEFAULT_OBJECT_ACL_RESPONSE).getDefaultObjectAccessControlsApi();
 
-      DefaultObjectAccessControlsTemplate template = new 
DefaultObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", ObjectRole.OWNER);
 
       assertEquals(api.createDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, 
template),
                new DefaultObjectAclInsertTest().expected());
@@ -166,8 +165,7 @@ public class DefaultObjectAccessControlsApiExpectTest 
extends BaseGoogleCloudSto
       DefaultObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
                TOKEN_RESPONSE, update, 
updateResponse).getDefaultObjectAccessControlsApi();
 
-      DefaultObjectAccessControls options = 
DefaultObjectAccessControls.builder().entity("allUsers")
-               .role(ObjectRole.OWNER).build();
+      ObjectAccessControls options = 
ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
 
       assertEquals(api.updateDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, 
"allUsers", options),
                new DefaultObjectAclInsertTest().expected());
@@ -191,8 +189,7 @@ public class DefaultObjectAccessControlsApiExpectTest 
extends BaseGoogleCloudSto
       DefaultObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
                TOKEN_RESPONSE, update, 
updateResponse).getDefaultObjectAccessControlsApi();
 
-      DefaultObjectAccessControls options = 
DefaultObjectAccessControls.builder().entity("allUsers")
-               .role(ObjectRole.OWNER).build();
+      ObjectAccessControls options = 
ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
 
       assertEquals(api.updateDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, 
"allUsers", options, ObjectRole.OWNER),
                new DefaultObjectAclInsertTest().expected());
@@ -215,8 +212,7 @@ public class DefaultObjectAccessControlsApiExpectTest 
extends BaseGoogleCloudSto
       DefaultObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE),
                TOKEN_RESPONSE, update, 
updateResponse).getDefaultObjectAccessControlsApi();
 
-      DefaultObjectAccessControls options = 
DefaultObjectAccessControls.builder().entity("allUsers")
-               .role(ObjectRole.OWNER).build();
+      ObjectAccessControls options = 
ObjectAccessControls.builder().entity("allUsers").role(ObjectRole.OWNER).build();
 
       assertEquals(api.patchDefaultObjectAccessControls(EXPECTED_TEST_BUCKET, 
"allUsers", options),
                new DefaultObjectAclInsertTest().expected());

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
index 4e131c5..d15391e 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
@@ -19,15 +19,14 @@ package org.jclouds.googlecloudstorage.features;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
+import java.util.List;
 import java.util.UUID;
 
 import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
 import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
-import 
org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import 
org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
 import org.testng.annotations.Test;
 
@@ -48,56 +47,50 @@ public class DefaultObjectAccessControlsApiLiveTest extends 
BaseGoogleCloudStora
    @Test(groups = "live")
    public void testCreateDefaultObjectAcl() {
       createBucket(BUCKET_NAME);
-      DefaultObjectAccessControlsTemplate template = new 
DefaultObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.READER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", ObjectRole.READER);
 
-      DefaultObjectAccessControls response = 
api().createDefaultObjectAccessControls(BUCKET_NAME, template);
+      ObjectAccessControls response = 
api().createDefaultObjectAccessControls(BUCKET_NAME, template);
 
       assertNotNull(response);
-      assertEquals(response.getEntity(), "allUsers");
-      assertEquals(response.getRole(), ObjectRole.READER);
+      assertEquals(response.entity(), "allUsers");
+      assertEquals(response.role(), ObjectRole.READER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateDefaultObjectAcl")
    public void testUpdateDefaultObjectAcl() {
-      DefaultObjectAccessControls defaultObjectAcl = 
DefaultObjectAccessControls.builder().bucket(BUCKET_NAME)
+      ObjectAccessControls defaultObjectAcl = 
ObjectAccessControls.builder().bucket(BUCKET_NAME)
                .entity("allUsers").role(ObjectRole.OWNER).build();
-      DefaultObjectAccessControls response = 
api().updateDefaultObjectAccessControls(BUCKET_NAME, "allUsers",
-               defaultObjectAcl);
+      ObjectAccessControls response = 
api().updateDefaultObjectAccessControls(BUCKET_NAME, "allUsers", 
defaultObjectAcl);
 
       assertNotNull(response);
-      assertEquals(response.getEntity(), "allUsers");
-      assertEquals(response.getRole(), ObjectRole.OWNER);
+      assertEquals(response.entity(), "allUsers");
+      assertEquals(response.role(), ObjectRole.OWNER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
    public void testGetDefaultObjectAcl() {
-      DefaultObjectAccessControls response = 
api().getDefaultObjectAccessControls(BUCKET_NAME, "allUsers");
+      ObjectAccessControls response = 
api().getDefaultObjectAccessControls(BUCKET_NAME, "allUsers");
 
       assertNotNull(response);
-      assertEquals(response.getEntity(), "allUsers");
-      assertEquals(response.getRole(), ObjectRole.OWNER);
+      assertEquals(response.entity(), "allUsers");
+      assertEquals(response.role(), ObjectRole.OWNER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
    public void testListDefaultObjectAcl() {
-      ListDefaultObjectAccessControls response = 
api().listDefaultObjectAccessControls(BUCKET_NAME);
-
+      List<ObjectAccessControls> response = 
api().listDefaultObjectAccessControls(BUCKET_NAME);
       assertNotNull(response);
-      assertEquals(response.getKind(), Kind.OBJECT_ACCESS_CONTROLS);
-      assertNotNull(response.getItems());
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateDefaultObjectAcl")
    public void testPatchDefaultObjectAcl() {
-      DefaultObjectAccessControls defaultObjectAcl = 
DefaultObjectAccessControls.builder().bucket(BUCKET_NAME)
+      ObjectAccessControls defaultObjectAcl = 
ObjectAccessControls.builder().bucket(BUCKET_NAME)
                .entity("allUsers").role(ObjectRole.READER).build();
-      DefaultObjectAccessControls response = 
api().patchDefaultObjectAccessControls(BUCKET_NAME, "allUsers",
-               defaultObjectAcl);
+      ObjectAccessControls response = 
api().patchDefaultObjectAccessControls(BUCKET_NAME, "allUsers", 
defaultObjectAcl);
 
       assertNotNull(response);
-      assertEquals(response.getEntity(), "allUsers");
-      assertEquals(response.getRole(), ObjectRole.READER);
+      assertEquals(response.entity(), "allUsers");
+      assertEquals(response.role(), ObjectRole.READER);
    }
 
    @Test(groups = "live", dependsOnMethods = "testPatchDefaultObjectAcl")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
index e40a020..2c7562b 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
@@ -17,13 +17,13 @@
 
 package org.jclouds.googlecloudstorage.features;
 
+import static 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole.OWNER;
 import static 
org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.STORAGE_FULLCONTROL_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.AssertJUnit.assertNull;
 
 import javax.ws.rs.core.MediaType;
 
-import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
 import 
org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
 import org.jclouds.googlecloudstorage.parse.ObjectAclGetTest;
@@ -151,8 +151,7 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                insertRequest, 
CREATE_OBJECT_ACL_RESPONSE).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity(EXPECTED_TEST_USER_ENTITY)
-               .role(ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create(EXPECTED_TEST_USER_ENTITY, OWNER);
 
       assertEquals(api.createObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, template),
                new ObjectAclInsertTest().expected());
@@ -173,8 +172,8 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                insertRequest, 
CREATE_OBJECT_ACL_RESPONSE).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity(
-               
"user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = ObjectAccessControlsTemplate
+            
.create("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
 OWNER);
 
       assertEquals(
                api.createObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, template, Long.valueOf(100)),
@@ -199,8 +198,7 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                update, updateResponse).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", OWNER);
 
       assertEquals(api.updateObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, "allUsers", template),
                new ObjectAclUpdateTest().expected());
@@ -223,8 +221,7 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                update, updateResponse).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", OWNER);
 
       assertEquals(
                api.updateObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, "allUsers", template,
@@ -248,8 +245,7 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                patchRequest, patchResponse).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", OWNER);
 
       assertEquals(api.patchObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, "allUsers", template),
                new ObjectAclUpdateTest().expected());
@@ -272,8 +268,7 @@ public class ObjectAccessControlsApiExpectTest extends 
BaseGoogleCloudStorageApi
       ObjectAccessControlsApi api = 
requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), 
TOKEN_RESPONSE,
                patchRequest, patchResponse).getObjectAccessControlsApi();
 
-      ObjectAccessControlsTemplate template = new 
ObjectAccessControlsTemplate().entity("allUsers").role(
-               ObjectRole.OWNER);
+      ObjectAccessControlsTemplate template = 
ObjectAccessControlsTemplate.create("allUsers", OWNER);
       assertEquals(
                api.patchObjectAccessControls(EXPECTED_TEST_BUCKET, 
EXPECTED_TEST_OBJECT, "allUsers", template,
                         Long.valueOf(100)), new 
ObjectAclUpdateTest().expected());

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index 6319683..b133b63 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -16,13 +16,14 @@
  */
 package org.jclouds.googlecloudstorage.features;
 
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
+import static com.google.common.io.BaseEncoding.base64;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.entry;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
 
 import java.io.IOException;
-import java.util.Set;
+import java.util.List;
 import java.util.UUID;
 
 import javax.ws.rs.core.MediaType;
@@ -34,7 +35,6 @@ import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection
 import org.jclouds.googlecloudstorage.domain.GCSObject;
 import org.jclouds.googlecloudstorage.domain.ListPage;
 import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.Resource.Kind;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
 import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
 import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
@@ -56,12 +56,12 @@ import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-import com.beust.jcommander.internal.Sets;
+import com.beust.jcommander.internal.Lists;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.hash.HashCode;
-import com.google.common.hash.HashFunction;
 import com.google.common.hash.Hashing;
 import com.google.common.io.ByteSource;
+import com.google.common.primitives.Bytes;
 
 public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
 
@@ -79,8 +79,8 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
    private Long metageneration;
    private Long generation;
-   private HashCode hcMd5;
-   private HashCode hcCrc32c;
+   private String md5Hash;
+   private String crc32c;
 
    private ObjectApi api() {
       return api.getObjectApi();
@@ -117,8 +117,8 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
                payload.getPayload().getContentMetadata().getContentLength(), 
payload.getPayload(), options);
 
       assertNotNull(gcsObject);
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
    }
 
    @Test(groups = "live", dependsOnMethods = "testSimpleUpload")
@@ -130,7 +130,7 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       assertNotNull(meta);
       assertEquals(meta.getContentType(), "text/plain");
 
-      
testPayload.getPayload().getContentMetadata().setContentDisposition("attachement");
+      
testPayload.getPayload().getContentMetadata().setContentDisposition("attachment");
 
       
assertEquals(ByteStreams2.toByteArrayAndClose(impl.getPayload().openStream()),
                
ByteStreams2.toByteArrayAndClose(testPayload.getPayload().openStream()));
@@ -147,16 +147,14 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().simpleUpload(BUCKET_NAME, "image/jpeg", 
contentLength, payload, options);
 
       assertNotNull(gcsObject);
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
 
       // This is a client side validation of md5
-      HashFunction hf = Hashing.md5();
-      hcMd5 = hf.newHasher().putBytes(testSource.read()).hash();
-
-      assertEquals(gcsObject.getMd5HashCode(), hcMd5);
+      md5Hash = base64().encode(testSource.hash(Hashing.md5()).asBytes());
+      // TODO: crc32c = without making a compile dep on guava 18.
 
-      // TODO: crc32c validation without making a compile dep on guava 18+
+      checkHashCodes(gcsObject);
    }
 
    @Test(groups = "live", dependsOnMethods = "testSimpleUpload")
@@ -165,12 +163,12 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
       assertNotNull(gcsObject);
 
-      metageneration = gcsObject.getMetageneration();
-      generation = gcsObject.getGeneration();
+      metageneration = gcsObject.metageneration();
+      generation = gcsObject.generation();
 
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
-      assertEquals(gcsObject.getContentType(), "text/plain");
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+      assertEquals(gcsObject.contentType(), "text/plain");
    }
 
    @Test(groups = "live", dependsOnMethods = "testGetObject")
@@ -181,10 +179,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().getObject(BUCKET_NAME, UPLOAD_OBJECT_NAME, 
options);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
-      assertEquals(gcsObject.getContentType(), "text/plain");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+      assertEquals(gcsObject.contentType(), "text/plain");
    }
 
    @Test(groups = "live", dependsOnMethods = "testGetObject")
@@ -192,9 +190,9 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().copyObject(BUCKET_NAME2, COPIED_OBJECT_NAME, 
BUCKET_NAME, UPLOAD_OBJECT_NAME);
 
       assertNotNull(gcsObject);
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
-      assertEquals(gcsObject.getName(), COPIED_OBJECT_NAME);
-      assertEquals(gcsObject.getContentType(), "text/plain");
+      assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+      assertEquals(gcsObject.name(), COPIED_OBJECT_NAME);
+      assertEquals(gcsObject.contentType(), "text/plain");
 
       // Test for data
 
@@ -214,10 +212,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
                .copyObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME, BUCKET_NAME, 
UPLOAD_OBJECT_NAME, options);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME);
-      assertEquals(gcsObject.getContentType(), "text/plain");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME);
+      assertEquals(gcsObject.contentType(), "text/plain");
    }
 
    @Test(groups = "live", dependsOnMethods = "testCopyObjectWithOptions")
@@ -226,31 +224,29 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
                .role(ObjectRole.OWNER).build();
 
       ObjectTemplate destination = new 
ObjectTemplate().contentType("text/plain").addAcl(oacl);
-      Set<GCSObject> sourceList = Sets.newLinkedHashSet();
+      List<GCSObject> sourceList = Lists.newArrayList();
       sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
       sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
 
-      ComposeObjectTemplate requestTemplate = new 
ComposeObjectTemplate().sourceObjects(sourceList).destination(
-               destination);
+      ComposeObjectTemplate requestTemplate = 
ComposeObjectTemplate.create(sourceList, destination);
 
       GCSObject gcsObject = api().composeObjects(BUCKET_NAME2, 
COMPOSED_OBJECT, requestTemplate);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
-      assertEquals(gcsObject.getName(), COMPOSED_OBJECT);
-      assertEquals(gcsObject.getContentType(), "text/plain");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+      assertEquals(gcsObject.name(), COMPOSED_OBJECT);
+      assertEquals(gcsObject.contentType(), "text/plain");
    }
 
    @Test(groups = "live", dependsOnMethods = "testComposeObject")
    public void testComposeObjectWithOptions() {
       ObjectTemplate destination = new 
ObjectTemplate().contentType(MediaType.APPLICATION_JSON);
-      Set<GCSObject> sourceList = Sets.newLinkedHashSet();
+      List<GCSObject> sourceList = Lists.newArrayList();
       sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
       sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
 
-      ComposeObjectTemplate requestTemplate = new 
ComposeObjectTemplate().sourceObjects(sourceList).destination(
-               destination);
+      ComposeObjectTemplate requestTemplate = 
ComposeObjectTemplate.create(sourceList, destination);
 
       ComposeObjectOptions options = new 
ComposeObjectOptions().destinationPredefinedAcl(
                
DestinationPredefinedAcl.BUCKET_OWNER_READ).ifMetagenerationNotMatch(RANDOM_LONG);
@@ -258,10 +254,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().composeObjects(BUCKET_NAME2, 
COMPOSED_OBJECT2, requestTemplate, options);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME2);
-      assertEquals(gcsObject.getName(), COMPOSED_OBJECT2);
-      assertEquals(gcsObject.getContentType(), MediaType.APPLICATION_JSON);
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME2);
+      assertEquals(gcsObject.name(), COMPOSED_OBJECT2);
+      assertEquals(gcsObject.contentType(), MediaType.APPLICATION_JSON);
    }
 
    @Test(groups = "live", dependsOnMethods = "testComposeObjectWithOptions")
@@ -270,7 +266,6 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
 
       assertNotNull(list);
       assertEquals(list.get(0) instanceof GCSObject, true);
-      assertEquals(list.getKind(), Kind.OBJECTS);
    }
 
    @Test(groups = "live", dependsOnMethods = "testComposeObjectWithOptions")
@@ -278,13 +273,12 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       ListObjectOptions options = new ListObjectOptions().maxResults(1);
       ListPage<GCSObject> list = api().listObjects(BUCKET_NAME, options);
 
-      while (list.nextMarker().isPresent()) {
+      while (list.nextPageToken() != null) {
          assertNotNull(list);
          assertEquals(list.get(0) instanceof GCSObject, true);
          assertEquals(list.size(), 1);
-         assertEquals(list.getKind(), Kind.OBJECTS);
 
-         options = new 
ListObjectOptions().maxResults(1).pageToken(list.getNextPageToken());
+         options = new 
ListObjectOptions().maxResults(1).pageToken(list.nextPageToken());
          list = api().listObjects(BUCKET_NAME, options);
       }
    }
@@ -299,10 +293,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().updateObject(BUCKET_NAME, 
UPLOAD_OBJECT_NAME2, template);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
-      assertEquals(gcsObject.getContentType(), "image/jpeg");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+      assertEquals(gcsObject.contentType(), "image/jpeg");
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateObject")
@@ -321,12 +315,12 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().updateObject(BUCKET_NAME, 
UPLOAD_OBJECT_NAME2, template, options);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
-      assertEquals(gcsObject.getContentType(), "image/jpeg");
-      assertNotNull(gcsObject.getAllMetadata());
-      assertNotNull(gcsObject.getAllMetadata().get(METADATA_KEY), 
METADATA_VALUE);
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+      assertEquals(gcsObject.contentType(), "image/jpeg");
+      assertNotNull(gcsObject.metadata());
+      assertNotNull(gcsObject.metadata().get(METADATA_KEY), METADATA_VALUE);
    }
 
    @Test(groups = "live", dependsOnMethods = "testUpdateObjectWithOptions")
@@ -338,10 +332,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       GCSObject gcsObject = api().patchObject(BUCKET_NAME, 
UPLOAD_OBJECT_NAME2, template);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
-      assertEquals(gcsObject.getContentType(), "image/jpeg");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+      assertEquals(gcsObject.contentType(), "image/jpeg");
    }
 
    @Test(groups = "live", dependsOnMethods = "testPatchObject")
@@ -352,16 +346,17 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       UpdateObjectOptions options = new 
UpdateObjectOptions().ifMetagenerationNotMatch(RANDOM_LONG)
                .ifGenerationNotMatch(RANDOM_LONG);
 
+
       ObjectTemplate template = new 
ObjectTemplate().addAcl(oacl).contentType("image/jpeg")
                .contentDisposition("attachment");
       GCSObject gcsObject = api().patchObject(BUCKET_NAME, 
UPLOAD_OBJECT_NAME2, template, options);
 
       assertNotNull(gcsObject);
-      assertNotNull(gcsObject.getAcl());
-      assertEquals(gcsObject.getBucket(), BUCKET_NAME);
-      assertEquals(gcsObject.getName(), UPLOAD_OBJECT_NAME2);
-      assertEquals(gcsObject.getContentType(), "image/jpeg");
-      assertEquals(gcsObject.getContentDisposition(), "attachment");
+      assertNotNull(gcsObject.acl());
+      assertEquals(gcsObject.bucket(), BUCKET_NAME);
+      assertEquals(gcsObject.name(), UPLOAD_OBJECT_NAME2);
+      assertEquals(gcsObject.contentType(), "image/jpeg");
+      assertEquals(gcsObject.contentDisposition(), "attachment");
    }
 
    @Test(groups = "live", dependsOnMethods = "testPatchObjectsWithOptions")
@@ -377,23 +372,21 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
                .role(ObjectRole.OWNER).build();
 
       // This would trigger server side validation of md5
-      hcMd5 = byteSource.hash(Hashing.md5());
-
-      // TODO: template.crc32c without making a compile dep on guava 18.
+      md5Hash = base64().encode(byteSource.hash(Hashing.md5()).asBytes());
+      // TODO: crc32c = without making a compile dep on guava 18
 
       
template.contentType("image/jpeg").addAcl(oacl).size(contentLength).name(MULTIPART_UPLOAD_OBJECT)
-               
.contentLanguage("en").contentDisposition("attachment").md5Hash(hcMd5)
-               .customMetadata("custommetakey1", 
"custommetavalue1").crc32c(hcCrc32c)
+               
.contentLanguage("en").contentDisposition("attachment").md5Hash(md5Hash)
+               .customMetadata("custommetakey1", 
"custommetavalue1").crc32c(crc32c)
                .customMetadata(ImmutableMap.of("Adrian", "powderpuff"));
 
       GCSObject gcsObject = api().multipartUpload(BUCKET_NAME, template, 
payloadImpl.getPayload());
 
-      assertThat(gcsObject.getBucket()).isEqualTo(BUCKET_NAME);
-      assertThat(gcsObject.getName()).isEqualTo(MULTIPART_UPLOAD_OBJECT);
-      assertThat(gcsObject.getMd5HashCode()).isEqualTo(hcMd5);
-      assertThat(gcsObject.getCrc32cHashcode()).isEqualTo(hcCrc32c);
+      assertThat(gcsObject.bucket()).isEqualTo(BUCKET_NAME);
+      assertThat(gcsObject.name()).isEqualTo(MULTIPART_UPLOAD_OBJECT);
+      checkHashCodes(gcsObject);
 
-      assertThat(gcsObject.getAllMetadata()).contains(entry("custommetakey1", 
"custommetavalue1"),
+      assertThat(gcsObject.metadata()).contains(entry("custommetakey1", 
"custommetavalue1"),
                entry("Adrian", "powderpuff")).doesNotContainKey("adrian");
 
       PayloadEnclosingImpl impl = api().download(BUCKET_NAME, 
MULTIPART_UPLOAD_OBJECT);
@@ -402,6 +395,13 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
                
ByteStreams2.toByteArrayAndClose(payloadImpl.getPayload().openStream()));
    }
 
+   private void checkHashCodes(GCSObject gcsObject) {
+      assertEquals(HashCode.fromBytes(base64().decode(gcsObject.md5Hash())), 
md5Hash);
+      if (crc32c != null) {
+         
assertEquals(HashCode.fromBytes(reverse(base64().decode(gcsObject.crc32c()))), 
crc32c);
+      }
+   }
+
    @Test(groups = "live", dependsOnMethods = "testMultipartJpegUpload")
    public void testDeleteObject() {
       api().deleteObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME);
@@ -425,4 +425,10 @@ public class ObjectApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTest {
       api.getBucketApi().deleteBucket(BUCKET_NAME);
       api.getBucketApi().deleteBucket(BUCKET_NAME2);
    }
+
+   private static byte[] reverse(byte[] b) {
+      List<Byte> hashByte = Bytes.asList(b);
+      List<Byte> reversedList = 
com.google.common.collect.Lists.reverse(hashByte);
+      return Bytes.toArray(reversedList);
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
index d484ae9..7718281 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
@@ -16,23 +16,22 @@
  */
 package org.jclouds.googlecloudstorage.features;
 
-import static javax.ws.rs.core.Response.Status.OK;
 import static javax.ws.rs.core.Response.Status.CREATED;
-
+import static javax.ws.rs.core.Response.Status.OK;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNotEquals;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.testng.Assert.assertNotNull;
+
 import java.io.IOException;
 import java.util.UUID;
 
-import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
 import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.DomainUtils;
+import 
org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 import org.jclouds.googlecloudstorage.domain.ResumableUpload;
 import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
 import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
-import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
 import 
org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
 import org.jclouds.io.Payloads;
 import org.jclouds.io.payloads.ByteSourcePayload;
@@ -80,22 +79,22 @@ public class ResumableUploadApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTes
       ResumableUpload initResponse = api().initResumableUpload(BUCKET_NAME, 
"image/jpeg", contentLength, template);
 
       assertNotNull(initResponse);
-      assertEquals(initResponse.getStatusCode().intValue(), 
OK.getStatusCode());
-      assertNotNull(initResponse.getUploadId());
+      assertEquals(initResponse.statusCode(), OK.getStatusCode());
+      assertNotNull(initResponse.uploadId());
 
-      String uploadId = initResponse.getUploadId();
+      String uploadId = initResponse.uploadId();
 
       // Upload the payload
       ByteSourcePayload payload = Payloads.newByteSourcePayload(byteSource);
       ResumableUpload uploadResponse = api().upload(BUCKET_NAME, uploadId, 
"image/jpeg", byteSource.read().length + "",
                payload);
 
-      assertEquals(uploadResponse.getStatusCode().intValue(), 
OK.getStatusCode());
+      assertEquals(uploadResponse.statusCode(), OK.getStatusCode());
 
       // CheckStatus
       ResumableUpload status = api().checkStatus(BUCKET_NAME, uploadId, "bytes 
*/*");
 
-      int code = status.getStatusCode();
+      int code = status.statusCode();
       assertNotEquals(code, INCOMPLETE);
    }
 
@@ -117,15 +116,15 @@ public class ResumableUploadApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTes
       ResumableUpload initResponse = api().initResumableUpload(BUCKET_NAME, 
"application/pdf", contentLength, template);
 
       assertNotNull(initResponse);
-      assertEquals(initResponse.getStatusCode().intValue(), 
OK.getStatusCode());
-      assertNotNull(initResponse.getUploadId());
+      assertEquals(initResponse.statusCode(), OK.getStatusCode());
+      assertNotNull(initResponse.uploadId());
 
       // Get the upload_id for the session
-      String uploadId = initResponse.getUploadId();
+      String uploadId = initResponse.uploadId();
 
       // Check the status first
       ResumableUpload status = api().checkStatus(BUCKET_NAME, uploadId, "bytes 
*/*");
-      int code = status.getStatusCode();
+      int code = status.statusCode();
       assertEquals(code, INCOMPLETE);
 
       // Uploads in 2 chunks.
@@ -137,16 +136,16 @@ public class ResumableUploadApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTes
       // Uploading First chunk
       ByteSourcePayload payload = 
Payloads.newByteSourcePayload(byteSource.slice(offset, chunkSize));
       long length = byteSource.slice(offset, chunkSize).size();
-      String Content_Range = DomainUtils.generateContentRange(0L, length, 
totalSize);
+      String Content_Range = generateContentRange(0L, length, totalSize);
       ResumableUpload uploadResponse = api().chunkUpload(BUCKET_NAME, 
uploadId, "application/pdf", length,
                Content_Range, payload);
 
-      int code2 = uploadResponse.getStatusCode();
+      int code2 = uploadResponse.statusCode();
       assertEquals(code2, INCOMPLETE);
 
       // Read uploaded length
-      long lowerValue = uploadResponse.getRangeLowerValue();
-      long uploaded = uploadResponse.getRangeUpperValue();
+      long lowerValue = uploadResponse.rangeLowerValue();
+      long uploaded = uploadResponse.rangeUpperValue();
 
       assertThat(lowerValue).isEqualTo(0);
       assertThat(uploaded).isEqualTo(chunkSize - 1); // confirms chunk is 
totally uploaded
@@ -157,11 +156,11 @@ public class ResumableUploadApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTes
       ByteSourcePayload payload2 = 
Payloads.newByteSourcePayload(byteSource.slice(uploaded + 1,
                byteSource.read().length - uploaded - 1));
       // Upload the 2nd chunk
-      String Content_Range2 = DomainUtils.generateContentRange(uploaded + 1, 
totalSize - 1, totalSize);
+      String Content_Range2 = generateContentRange(uploaded + 1, totalSize - 
1, totalSize);
       ResumableUpload resumeResponse = api().chunkUpload(BUCKET_NAME, 
uploadId, "application/pdf", resumeLength,
                Content_Range2, payload2);
 
-      int code3 = resumeResponse.getStatusCode();
+      int code3 = resumeResponse.statusCode();
       assertThat(code3).isIn(OK.getStatusCode(), CREATED.getStatusCode()); // 
200 or 201 if upload succeeded
    }
 
@@ -171,4 +170,8 @@ public class ResumableUploadApiLiveTest extends 
BaseGoogleCloudStorageApiLiveTes
       api.getObjectApi().deleteObject(BUCKET_NAME, CHUNKED_OBJECT_NAME);
       api.getBucketApi().deleteBucket(BUCKET_NAME);
    }
+
+   private static String generateContentRange(Long lowerLimit, Long 
upperLimit, Long totalSize) {
+      return "bytes " + lowerLimit + "-" + upperLimit + "/" + totalSize;
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b8670b16/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
----------------------------------------------------------------------
diff --git 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
index c1c41c7..21494f0 100644
--- 
a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
+++ 
b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
@@ -16,13 +16,11 @@
  */
 package org.jclouds.googlecloudstorage.parse;
 
-import java.net.URI;
-
 import javax.ws.rs.Consumes;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls.Role;
 import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
 
 public class BucketAclGetTest extends 
BaseGoogleCloudStorageParseTest<BucketAccessControls> {
@@ -36,8 +34,6 @@ public class BucketAclGetTest extends 
BaseGoogleCloudStorageParseTest<BucketAcce
    @Consumes(MediaType.APPLICATION_JSON)
    public BucketAccessControls expected() {
       return 
BucketAccessControls.builder().bucket("jcloudtestbucket").entity("allUsers").role(Role.READER)
-               .etag("CAM=")
-               
.selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers";))
                .id("jcloudtestbucket/allUsers").build();
    }
 }

Reply via email to