You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2014/12/08 23:52:20 UTC

jclouds-labs-google git commit: Updated Network, MachineType, Region, Route, Snapshot, TargetInstance, and Zone

Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master 70af04770 -> d3205b1b2


Updated Network, MachineType, Region, Route, Snapshot, TargetInstance, and Zone


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/d3205b1b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/d3205b1b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/d3205b1b

Branch: refs/heads/master
Commit: d3205b1b2bb36322d06c9d5fe09779413f70cd1a
Parents: 70af047
Author: Daniel Broudy <br...@google.com>
Authored: Fri Dec 5 14:53:49 2014 -0800
Committer: Ignasi Barrera <na...@apache.org>
Committed: Mon Dec 8 23:50:31 2014 +0100

----------------------------------------------------------------------
 .../functions/CreateNetworkIfNeeded.java        |  5 +-
 .../googlecomputeengine/domain/MachineType.java | 13 ++-
 .../googlecomputeengine/domain/Metadata.java    |  4 +-
 .../googlecomputeengine/domain/Network.java     |  9 ++-
 .../googlecomputeengine/domain/Region.java      |  9 ++-
 .../googlecomputeengine/domain/Route.java       | 15 ++--
 .../googlecomputeengine/domain/Snapshot.java    | 20 ++++-
 .../domain/TargetInstance.java                  |  7 +-
 .../googlecomputeengine/domain/Zone.java        | 14 +++-
 .../features/NetworkApi.java                    |  7 +-
 .../options/NetworkCreationOptions.java         | 85 ++++++++++++++++++++
 .../functions/CreateNetworkIfNeededTest.java    |  7 +-
 .../functions/FindNetworkOrCreateTest.java      |  2 +
 .../functions/NetworkToSecurityGroupTest.java   |  2 +
 .../parse/ParseMachineTypeListTest.java         |  6 ++
 .../parse/ParseMachineTypeTest.java             |  2 +
 .../parse/ParseNetworkTest.java                 |  1 +
 .../parse/ParseRegionListTest.java              |  1 +
 .../parse/ParseRegionTest.java                  |  1 +
 .../parse/ParseRouteListTest.java               |  1 +
 .../parse/ParseRouteTest.java                   |  6 +-
 .../parse/ParseSnapshotListTest.java            |  6 +-
 .../parse/ParseSnapshotTest.java                |  6 +-
 .../parse/ParseTargetInstanceListTest.java      |  4 +-
 .../parse/ParseTargetInstanceTest.java          |  4 +-
 .../parse/ParseZoneListTest.java                |  3 +
 .../parse/ParseZoneTest.java                    |  3 +
 .../src/test/resources/route_get.json           | 38 ++++++---
 .../src/test/resources/route_list.json          | 73 ++++++++++-------
 .../src/test/resources/target_instance_get.json |  2 +-
 .../src/test/resources/zone_get.json            |  1 +
 .../src/test/resources/zone_list.json           |  2 +
 .../src/test/resources/zone_list_short.json     |  1 +
 33 files changed, 277 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java
index 7030c75..3923ad7 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java
@@ -27,6 +27,7 @@ import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
 import org.jclouds.googlecomputeengine.compute.domain.NetworkAndAddressRange;
 import org.jclouds.googlecomputeengine.domain.Network;
 import org.jclouds.googlecomputeengine.domain.Operation;
+import org.jclouds.googlecomputeengine.options.NetworkCreationOptions;
 
 import com.google.common.base.Function;
 import com.google.common.base.Predicate;
@@ -51,8 +52,10 @@ public final class CreateNetworkIfNeeded implements Function<NetworkAndAddressRa
       }
 
       if (input.gateway() != null) {
+         NetworkCreationOptions options = new NetworkCreationOptions.Builder(input.name(), input.rangeIPv4())
+            .gatewayIPv4(input.gateway()).build();
          AtomicReference<Operation> operation = Atomics.newReference(api.networks()
-               .createInIPv4RangeWithGateway(input.name(), input.rangeIPv4(), input.gateway()));
+               .createInIPv4Range(options));
          operationDone.apply(operation);
 
          checkState(operation.get().httpErrorStatusCode() == null,

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java
index 973a4b1..cc3389d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java
@@ -19,6 +19,7 @@ package org.jclouds.googlecomputeengine.domain;
 import static org.jclouds.googlecloud.internal.NullSafeCopies.copyOf;
 
 import java.net.URI;
+import java.util.Date;
 import java.util.List;
 
 import org.jclouds.javax.annotation.Nullable;
@@ -46,6 +47,8 @@ public abstract class MachineType {
 
    public abstract String id();
 
+   public abstract Date creationTimestamp();
+
    public abstract URI selfLink();
 
    public abstract String name();
@@ -56,6 +59,8 @@ public abstract class MachineType {
 
    public abstract int memoryMb();
 
+   @Nullable public abstract Integer imageSpaceGb();
+
    public abstract List<ScratchDisk> scratchDisks();
 
    public abstract int maximumPersistentDisks();
@@ -68,12 +73,12 @@ public abstract class MachineType {
    @Nullable public abstract Deprecated deprecated();
 
    @SerializedNames(
-         { "id", "selfLink", "name", "description", "guestCpus", "memoryMb", "scratchDisks", "maximumPersistentDisks",
+         { "id", "creationTimestamp", "selfLink", "name", "description", "guestCpus", "memoryMb", "imageSpaceGb", "scratchDisks", "maximumPersistentDisks",
                "maximumPersistentDisksSizeGb", "zone", "deprecated" })
-   public static MachineType create(String id, URI selfLink, String name, String description, int guestCpus,
-         int memoryMb, List<ScratchDisk> scratchDisks, int maximumPersistentDisks, long maximumPersistentDisksSizeGb,
+   public static MachineType create(String id, Date creationTimestamp, URI selfLink, String name, String description, int guestCpus,
+         int memoryMb, Integer imageSpaceGb, List<ScratchDisk> scratchDisks, int maximumPersistentDisks, long maximumPersistentDisksSizeGb,
          String zone, Deprecated deprecated) {
-      return new AutoValue_MachineType(id, selfLink, name, description, guestCpus, memoryMb, copyOf(scratchDisks),
+      return new AutoValue_MachineType(id, creationTimestamp, selfLink, name, description, guestCpus, memoryMb, imageSpaceGb, copyOf(scratchDisks),
             maximumPersistentDisks, maximumPersistentDisksSizeGb, zone, deprecated);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java
index 25f39f0..60b8abd 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java
@@ -34,13 +34,13 @@ import com.google.auto.value.AutoValue;
 public abstract class Metadata implements Cloneable {
 
    @AutoValue
-   abstract static class Entry {
+   public abstract static class Entry {
       abstract String key();
 
       abstract String value();
 
       @SerializedNames({ "key", "value" })
-      static Entry create(String key, String value) {
+      public static Entry create(String key, String value) {
          return new AutoValue_Metadata_Entry(key, value);
       }
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java
index 3b7eef9..7b30cff 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java
@@ -17,6 +17,7 @@
 package org.jclouds.googlecomputeengine.domain;
 
 import java.net.URI;
+import java.util.Date;
 
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.json.SerializedNames;
@@ -31,6 +32,8 @@ public abstract class Network {
 
    public abstract String id();
 
+   public abstract Date creationTimestamp();
+
    public abstract URI selfLink();
 
    public abstract String name();
@@ -49,10 +52,10 @@ public abstract class Network {
     */
    @Nullable public abstract String gatewayIPv4();
 
-   @SerializedNames({ "id", "selfLink", "name", "description", "IPv4Range", "gatewayIPv4" })
-   public static Network create(String id, URI selfLink, String name, String description, String rangeIPv4,
+   @SerializedNames({ "id", "creationTimestamp", "selfLink", "name", "description", "IPv4Range", "gatewayIPv4" })
+   public static Network create(String id, Date creationTimestamp, URI selfLink, String name, String description, String rangeIPv4,
          String gatewayIPv4) {
-      return new AutoValue_Network(id, selfLink, name, description, rangeIPv4, gatewayIPv4);
+      return new AutoValue_Network(id, creationTimestamp, selfLink, name, description, rangeIPv4, gatewayIPv4);
    }
 
    Network() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java
index f055091..91d4cf1 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java
@@ -19,6 +19,7 @@ package org.jclouds.googlecomputeengine.domain;
 import static org.jclouds.googlecloud.internal.NullSafeCopies.copyOf;
 
 import java.net.URI;
+import java.util.Date;
 import java.util.List;
 
 import org.jclouds.javax.annotation.Nullable;
@@ -36,6 +37,8 @@ public abstract class Region {
 
    public abstract String id();
 
+   public abstract Date creationTimestamp();
+
    public abstract URI selfLink();
 
    public abstract String name();
@@ -48,10 +51,10 @@ public abstract class Region {
 
    public abstract List<Quota> quotas();
 
-   @SerializedNames({ "id", "selfLink", "name", "description", "status", "zones", "quotas" })
-   public static Region create(String id, URI selfLink, String name, String description, Status status, List<URI> zones,
+   @SerializedNames({ "id", "creationTimestamp", "selfLink", "name", "description", "status", "zones", "quotas" })
+   public static Region create(String id, Date creationTimestamp, URI selfLink, String name, String description, Status status, List<URI> zones,
          List<Quota> quotas) {
-      return new AutoValue_Region(id, selfLink, name, description, status, copyOf(zones), copyOf(quotas));
+      return new AutoValue_Region(id, creationTimestamp, selfLink, name, description, status, copyOf(zones), copyOf(quotas));
    }
 
    Region() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java
index ac8774f..ed0737e 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java
@@ -19,8 +19,8 @@ package org.jclouds.googlecomputeengine.domain;
 import static org.jclouds.googlecloud.internal.NullSafeCopies.copyOf;
 
 import java.net.URI;
+import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.json.SerializedNames;
@@ -34,12 +34,13 @@ public abstract class Route {
    public abstract static class Warning {
       public abstract String code(); // TODO: enum
 
+      // TODO: create common Warning resource.
       @Nullable public abstract String message();
 
-      public abstract Map<String, String> data();
+      public abstract List<Metadata.Entry> data();
 
       @SerializedNames({ "code", "message", "data" })
-      public static Warning create(String code, String message, Map<String, String> data) {
+      public static Warning create(String code, String message, List<Metadata.Entry> data) {
          return new AutoValue_Route_Warning(code, message, copyOf(data));
       }
 
@@ -49,6 +50,8 @@ public abstract class Route {
 
    public abstract String id();
 
+   public abstract Date creationTimestamp();
+
    public abstract URI selfLink();
 
    public abstract String name();
@@ -86,12 +89,12 @@ public abstract class Route {
    public abstract List<Warning> warnings();
 
    @SerializedNames(
-         { "id", "selfLink", "name", "description", "network", "tags", "destRange", "priority", "nextHopInstance",
+         { "id", "creationTimestamp", "selfLink", "name", "description", "network", "tags", "destRange", "priority", "nextHopInstance",
                "nextHopIp", "nextHopNetwork", "nextHopGateway", "warnings" })
-   public static Route create(String id, URI selfLink, String name, String description, URI network, List<String> tags,
+   public static Route create(String id, Date creationTimestamp, URI selfLink, String name, String description, URI network, List<String> tags,
          String destRange, int priority, URI nextHopInstance, String nextHopIp, URI nextHopNetwork, URI nextHopGateway,
          List<Warning> warnings) {
-      return new AutoValue_Route(id, selfLink, name, description, network, copyOf(tags), destRange, priority,
+      return new AutoValue_Route(id, creationTimestamp, selfLink, name, description, network, copyOf(tags), destRange, priority,
             nextHopInstance, nextHopIp, nextHopNetwork, nextHopGateway, copyOf(warnings));
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Snapshot.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Snapshot.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Snapshot.java
index 22838ce..50b7356 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Snapshot.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Snapshot.java
@@ -17,6 +17,8 @@
 package org.jclouds.googlecomputeengine.domain;
 
 import java.net.URI;
+import java.util.Date;
+import java.util.List;
 
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.json.SerializedNames;
@@ -30,6 +32,8 @@ public abstract class Snapshot {
 
    public abstract URI selfLink();
 
+   public abstract Date creationTimestamp();
+
    public abstract String name();
 
    @Nullable public abstract String description();
@@ -52,10 +56,18 @@ public abstract class Snapshot {
     */
    public abstract String sourceDiskId();
 
-   @SerializedNames({ "id", "selfLink", "name", "description", "diskSizeGb", "status", "sourceDisk", "sourceDiskId" })
-   public static Snapshot create(String id, URI selfLink, String name, String description, int diskSizeGb, String status,
-         URI sourceDisk, String sourceDiskId) {
-      return new AutoValue_Snapshot(id, selfLink, name, description, diskSizeGb, status, sourceDisk, sourceDiskId);
+   @Nullable public abstract Long storageBytes();
+
+   @Nullable public abstract String storageByteStatus();
+
+   @Nullable public abstract List<String> licenses();
+
+   @SerializedNames({ "id", "selfLink", "creationTimestamp", "name", "description", "diskSizeGb", "status",
+      "sourceDisk", "sourceDiskId", "storageBytes", "storageByteStatus", "licenses" })
+   public static Snapshot create(String id, URI selfLink, Date creationTimestamp, String name, String description,
+         int diskSizeGb, String status, URI sourceDisk, String sourceDiskId, Long storageBytes, String storageByteStatus, List<String> licenses) {
+      return new AutoValue_Snapshot(id, selfLink, creationTimestamp, name, description, diskSizeGb, status,
+            sourceDisk, sourceDiskId, storageBytes, storageByteStatus, licenses);
    }
 
    Snapshot() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetInstance.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetInstance.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetInstance.java
index 656bc8f..f477572 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetInstance.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetInstance.java
@@ -27,6 +27,7 @@ import com.google.auto.value.AutoValue;
 @AutoValue
 public abstract class TargetInstance {
 
+   public abstract String id();
    public abstract String creationTimestamp();
    public abstract String name();
    @Nullable public abstract String description();
@@ -35,11 +36,11 @@ public abstract class TargetInstance {
    @Nullable public abstract URI instance();
    public abstract URI selfLink();
 
-   @SerializedNames({"creationTimestamp", "name", "description", "zone",
+   @SerializedNames({"id", "creationTimestamp", "name", "description", "zone",
       "natPolicy", "instance", "selfLink"})
-   public static TargetInstance create(String creationTimestamp, String name,
+   public static TargetInstance create(String id, String creationTimestamp, String name,
          String description, URI zone, String natPolicy, URI instance, URI selfLink){
-      return new AutoValue_TargetInstance(creationTimestamp, name, description, zone,
+      return new AutoValue_TargetInstance(id, creationTimestamp, name, description, zone,
             natPolicy, instance, selfLink);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java
index 68b9a31..70f9fb6 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java
@@ -61,6 +61,8 @@ public abstract class Zone {
 
    public abstract String id();
 
+   public abstract Date creationTimestamp();
+
    public abstract URI selfLink();
 
    public abstract String name();
@@ -75,14 +77,18 @@ public abstract class Zone {
     */
    public abstract List<MaintenanceWindow> maintenanceWindows();
 
+   @Nullable public abstract Deprecated deprecated();
+
+   public abstract String region();
+
    /** The machine types that can be used in this zone. */
    public abstract List<String> availableMachineTypes();
 
    @SerializedNames(
-         { "id", "selfLink", "name", "description", "status", "maintenanceWindows", "availableMachineTypes" })
-   public static Zone create(String id, URI selfLink, String name, String description, Status status,
-         List<MaintenanceWindow> maintenanceWindows, List<String> availableMachineTypes) {
-      return new AutoValue_Zone(id, selfLink, name, description, status, copyOf(maintenanceWindows),
+         { "id", "creationTimestamp", "selfLink", "name", "description", "status", "maintenanceWindows", "deprecated", "region", "availableMachineTypes" })
+   public static Zone create(String id, Date creationTimestamp, URI selfLink, String name, String description, Status status,
+         List<MaintenanceWindow> maintenanceWindows, Deprecated deprecated, String region, List<String> availableMachineTypes) {
+      return new AutoValue_Zone(id, creationTimestamp, selfLink, name, description, status, copyOf(maintenanceWindows), deprecated, region,
             copyOf(availableMachineTypes));
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
index 4cdd8b9..c975784 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
@@ -38,8 +38,10 @@ import org.jclouds.googlecomputeengine.domain.Network;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.internal.BaseToIteratorOfListPage;
 import org.jclouds.googlecomputeengine.options.ListOptions;
+import org.jclouds.googlecomputeengine.options.NetworkCreationOptions;
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.oauth.v2.filters.OAuthFilter;
+import org.jclouds.rest.annotations.BinderParam;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.MapBinder;
 import org.jclouds.rest.annotations.PayloadParam;
@@ -90,10 +92,7 @@ public interface NetworkApi {
    @Named("Networks:insert")
    @POST
    @Produces(APPLICATION_JSON)
-   @MapBinder(BindToJsonPayload.class)
-   Operation createInIPv4RangeWithGateway(@PayloadParam("name") String networkName,
-                                          @PayloadParam("IPv4Range") String IPv4Range,
-                                          @PayloadParam("gatewayIPv4") String gatewayIPv4);
+   Operation createInIPv4Range(@BinderParam(BindToJsonPayload.class) NetworkCreationOptions options);
 
    /** Deletes a network by name and returns the operation in progress, or null if not found. */
    @Named("Networks:delete")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/NetworkCreationOptions.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/NetworkCreationOptions.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/NetworkCreationOptions.java
new file mode 100644
index 0000000..3003322
--- /dev/null
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/NetworkCreationOptions.java
@@ -0,0 +1,85 @@
+/*
+ * 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.googlecomputeengine.options;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import com.google.auto.value.AutoValue;
+
+/**
+ * Represents a network used to enable instance communication.
+ */
+@AutoValue
+public abstract class NetworkCreationOptions {
+
+   public abstract String name();
+
+   @Nullable public abstract String description();
+
+   /**
+    * The range of internal addresses that are legal on this network. This range is a CIDR
+    * specification, for example: {@code 192.168.0.0/16}.
+    */
+   public abstract String rangeIPv4();
+
+   /**
+    * This must be within the range specified by IPv4Range, and is typically the first usable address in that range.
+    * If not specified, the default value is the first usable address in IPv4Range.
+    */
+   @Nullable public abstract String gatewayIPv4();
+
+   @SerializedNames({ "name", "description", "IPv4Range", "gatewayIPv4" })
+   public static NetworkCreationOptions create(String name, String description, String rangeIPv4,
+         String gatewayIPv4) {
+      return new AutoValue_NetworkCreationOptions(name, description, rangeIPv4, gatewayIPv4);
+   }
+
+   NetworkCreationOptions() {
+   }
+
+   public static class Builder {
+      private String name;
+      private String description;
+      private String rangeIPv4;
+      private String gatewayIPv4;
+
+      public Builder(String name, String rangeIPv4){
+         this.name = name;
+         this.rangeIPv4 = rangeIPv4;
+      }
+
+      public Builder description(String description) {
+         this.description = description;
+         return this;
+      }
+
+      public Builder gatewayIPv4(String gatewayIPv4) {
+         this.gatewayIPv4 = gatewayIPv4;
+         return this;
+      }
+
+      public NetworkCreationOptions build() {
+         checkNotNull(name, "NetworkCreationOptions name cannot be null");
+         checkNotNull(rangeIPv4, "NetworkCreationOptions rangeIPv4 cannot be null");
+         return create(name, description, rangeIPv4, gatewayIPv4);
+      }
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java
index 75e8bd7..8a5dd8f 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java
@@ -24,12 +24,14 @@ import static org.testng.Assert.assertEquals;
 
 import java.net.URI;
 
+import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
 import org.jclouds.googlecomputeengine.compute.domain.NetworkAndAddressRange;
 import org.jclouds.googlecomputeengine.compute.predicates.AtomicOperationDone;
 import org.jclouds.googlecomputeengine.domain.Network;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.features.NetworkApi;
+import org.jclouds.googlecomputeengine.options.NetworkCreationOptions;
 import org.jclouds.googlecomputeengine.parse.ParseGlobalOperationTest;
 import org.testng.annotations.Test;
 
@@ -48,6 +50,7 @@ public class CreateNetworkIfNeededTest {
 
       Network network = Network.create( //
             "abcd", // id
+            new SimpleDateFormatDateService().iso8601DateParse("2014-07-18T09:47:30.826-07:00"), // creationTimestamp
             URI.create(BASE_URL + "/party/global/networks/this-network"), // selfLink
             "this-network", // name
             null, // description
@@ -84,6 +87,7 @@ public class CreateNetworkIfNeededTest {
 
       Network network = Network.create( //
             "abcd", // id
+            new SimpleDateFormatDateService().iso8601DateParse("2014-07-18T09:47:30.826-07:00"), // creationTimestamp
             URI.create(BASE_URL + "/party/global/networks/this-network"), // selfLink
             "this-network", // name
             null, // description
@@ -95,7 +99,8 @@ public class CreateNetworkIfNeededTest {
 
       expect(api.networks()).andReturn(nwApi).atLeastOnce();
 
-      expect(nwApi.createInIPv4RangeWithGateway("this-network", "0.0.0.0/0", "1.2.3.4")).andReturn(createOp);
+      expect(nwApi.createInIPv4Range(new NetworkCreationOptions.Builder("this-network", "0.0.0.0/0")
+         .gatewayIPv4("1.2.3.4").build())).andReturn(createOp);
       expect(resources.operation(createOp.selfLink())).andReturn(createOp);
       expect(nwApi.get("this-network")).andReturn(null);
       expect(nwApi.get("this-network")).andReturn(network);

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java
index dfe4036..137f004 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java
@@ -25,6 +25,7 @@ import static org.testng.Assert.assertEquals;
 import java.net.URI;
 import java.util.concurrent.atomic.AtomicReference;
 
+import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
 import org.jclouds.googlecomputeengine.compute.domain.NetworkAndAddressRange;
 import org.jclouds.googlecomputeengine.compute.predicates.AtomicOperationDone;
@@ -46,6 +47,7 @@ public class FindNetworkOrCreateTest {
    private static final String BASE_URL = "https://www.googleapis.com/compute/v1/projects";
    private static final Network NETWORK = Network.create( //
          "abcd", // id
+         new SimpleDateFormatDateService().iso8601DateParse("2014-07-18T09:47:30.826-07:00"), // creationTimestamp
          URI.create(BASE_URL + "/party/global/networks/this-network"), // selfLink
          "this-network", // name
          null, // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
index d42cab5..97b730b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
@@ -29,6 +29,7 @@ import static org.testng.Assert.assertTrue;
 import java.net.URI;
 
 import org.jclouds.compute.domain.SecurityGroup;
+import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecloud.domain.ForwardingListPage;
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
 import org.jclouds.googlecomputeengine.domain.Network;
@@ -59,6 +60,7 @@ public class NetworkToSecurityGroupTest {
 
       Network network = Network.create( //
             "abcd", // id
+            new SimpleDateFormatDateService().iso8601DateParse("2014-07-18T09:47:30.826-07:00"), // creationTimestamp
             URI.create("https://www.googleapis.com/compute/v1/projects/party/global/networks/party-test"),
             "party-test", // name
             "some description", // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
index c563789..2d5977e 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
@@ -47,11 +47,13 @@ public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<L
    public ListPage<MachineType> expected(String baseUrl) {
       MachineType machineType1 = MachineType.create( //
             "4618642685664990776", // id
+            parse("2013-04-25T13:32:49.088-07:00"), // creationTimestamp
             URI.create(baseUrl + "/party/zones/us-central1-a/machineTypes/f1-micro"), // selfLink
             "f1-micro", // name
             "1 vCPU (shared physical core) and 0.6 GB RAM", // description
             1, // guestCpus
             614, // memoryMb
+            null, // imageSpaceGb
             null, // scratchDisks
             4, // maximumPersistentDisks
             3072, // maximumPersistentDisksSizeGb
@@ -60,11 +62,13 @@ public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<L
       );
       MachineType machineType2 = MachineType.create( //
             "12907738072351752276", // id
+            parse("2012-06-07T20:48:14.670"), // creationTimestamp
             URI.create(baseUrl + "/party/zones/us-central1-a/machineTypes/n1-standard-1"), // selfLink
             "n1-standard-1", // name
             "1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk", // description
             1, // guestCpus
             3840, // memoryMb
+            null, // imageSpaceGb
             null, // scratchDisks
             16, // maximumPersistentDisks
             128, // maximumPersistentDisksSizeGb
@@ -73,11 +77,13 @@ public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<L
       );
       MachineType machineType3 = MachineType.create( //
             "12908560709887590691", // id
+            parse("2012-06-07T20:51:19.936"), // creationTimestamp
             URI.create(baseUrl + "/party/zones/us-central1-a/machineTypes/n1-standard-8-d"), // selfLink
             "n1-standard-8-d", // name
             "8 vCPUs, 30 GB RAM, a 10 GB ephemeral root disk, and 2 extra 1770 GB ephemeral disks", // description
             8, // guestCpus
             30720, // memoryMb
+            null, // imageSpaceGb
             ImmutableList.of(MachineType.ScratchDisk.create(1770), MachineType.ScratchDisk.create(1770)), // scratchDisks
             16, // maximumPersistentDisks
             1024, // maximumPersistentDisksSizeGb

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
index 490ed5b..893dcab 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
@@ -46,11 +46,13 @@ public class ParseMachineTypeTest extends BaseGoogleComputeEngineParseTest<Machi
    public MachineType expected(String baseUrl) {
       return MachineType.create( //
             "12907738072351752276", // id
+            parse("2012-06-07T20:48:14.670"), // creationTimestamp
             URI.create(baseUrl + "/party/zones/us-central1-a/machineTypes/n1-standard-1"), // selfLink
             "n1-standard-1", // name
             "1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk", // description
             1, // guestCpus
             3840, // memoryMb
+            null, // imageSpaceGb
             ImmutableList.of(ScratchDisk.create(1770), ScratchDisk.create(1770)), // scratchDisks
             16, // maximumPersistentDisks
             128, // maximumPersistentDisksSizeGb

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
index 5b92ed3..fc29125 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
@@ -43,6 +43,7 @@ public class ParseNetworkTest extends BaseGoogleComputeEngineParseTest<Network>
    public Network expected(String baseUrl) {
       return Network.create( //
             "13024414170909937976", // id
+            parse("2012-10-24T20:13:19.967"), // creationTimestamp
             URI.create(baseUrl + "/party/networks/jclouds-test"), // selfLink
             "default", // name
             "Default network for the project", // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
index 5f83a5b..61f96b3 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
@@ -49,6 +49,7 @@ public class ParseRegionListTest extends BaseGoogleComputeEngineParseTest<ListPa
       Region region1 = new ParseRegionTest().expected(baseUrl);
       Region region2 = Region.create( //
             "6396763663251190992", // id
+            parse("2013-07-08T14:40:37.939-07:00"), // creationTimestamp
             URI.create(baseUrl + "/party/regions/us-central2"), // selfLink
             "us-central2", // name
             "us-central2", // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
index 6a81a90..611c794 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
@@ -46,6 +46,7 @@ public class ParseRegionTest extends BaseGoogleComputeEngineParseTest<Region> {
    public Region expected(String baseUrl) {
       return Region.create( //
             "12912210600542709766", // id
+            parse("2013-07-08T14:40:37.939-07:00"), // creationTimestamp
             URI.create(baseUrl + "/party/regions/us-central1"), // selfLink
             "us-central1", // name
             "us-central1", // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
index 8235ec7..5aac869 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
@@ -47,6 +47,7 @@ public class ParseRouteListTest extends BaseGoogleComputeEngineParseTest<ListPag
       Route route1 = new ParseRouteTest().expected(baseUrl);
       Route route2 = Route.create( //
             "507025480040058551", // id
+            parse("2013-07-08T14:40:38.502-07:00"), // creationTimestamp
             URI.create(baseUrl + "/party/global/routes/default-route-fc92a41ecb5a8d17"), // selfLink
             "default-route-fc92a41ecb5a8d17", // name
             "Default route to the Internet.", // description

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
index 0dd5ba4..22ab3a5 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
@@ -22,7 +22,9 @@ import java.net.URI;
 
 import javax.ws.rs.Consumes;
 
+import org.jclouds.googlecomputeengine.domain.Metadata;
 import org.jclouds.googlecomputeengine.domain.Route;
+import org.jclouds.googlecomputeengine.domain.Route.Warning;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
@@ -45,6 +47,7 @@ public class ParseRouteTest extends BaseGoogleComputeEngineParseTest<Route> {
    public Route expected(String baseUrl) {
       return Route.create( //
             "7241926205630356071", // id
+            parse("2013-07-08T14:40:38.502-07:00"), // creationTimestamp
             URI.create(baseUrl + "/party/global/routes/default-route-c99ebfbed0e1f375"), // selfLink
             "default-route-c99ebfbed0e1f375", // name
             "Default route to the virtual network.", // description
@@ -56,7 +59,8 @@ public class ParseRouteTest extends BaseGoogleComputeEngineParseTest<Route> {
             null, // nextHopIp
             URI.create(baseUrl + "/party/global/networks/default"), // nextHopNetwork
             null, // nextHopGateway
-            null // warnings
+            ImmutableList.of(Warning.create("NO_RESULTS_ON_PAGE", "This is an example warning", ImmutableList.of(
+                  Metadata.Entry.create("scope", "There are no results for scope 'zones/asia-east1-b' on this page.")))) // warnings
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
index 6cd691a..b3c0f66 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
@@ -49,12 +49,16 @@ public class ParseSnapshotListTest extends BaseGoogleComputeEngineParseTest<List
       Snapshot snapshot2 = Snapshot.create( //
             "13895715048576107883", // id
             URI.create(baseUrl + "/party/global/snapshots/test-snap2"), // selfLink
+            parse("2013-07-26T12:57:01.927-07:00"), // creationTimestamp
             "test-snap2", // name
             "", // description
             10, // sizeGb
             "READY", // status
             URI.create(baseUrl + "/party/zones/us-central1-a/disks/testimage1"), // sourceDisk
-            "8243603669926824540"// sourceDiskId
+            "8243603669926824540", // sourceDiskId
+            null, // storageBytes
+            null, // storageByteStatus
+            null // licenses
       );
       return ForwardingListPage.create( //
             ImmutableList.of(snapshot1, snapshot2), // items

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
index 3247934..6f922c4 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
@@ -44,12 +44,16 @@ public class ParseSnapshotTest extends BaseGoogleComputeEngineParseTest<Snapshot
       return Snapshot.create( //
             "9734455566806191190", // id
             URI.create(baseUrl + "/party/global/snapshots/test-snap"), // selfLink
+            parse("2013-07-26T12:54:23.173-07:00"), // creationTimestamp
             "test-snap", // name
             "", // description
             10, // sizeGb
             "READY", // status
             URI.create(baseUrl + "/party/zones/us-central1-a/disks/testimage1"), // sourceDisk
-            "8243603669926824540"// sourceDiskId
+            "8243603669926824540", // sourceDiskId
+            null, // storageBytes
+            null, // storageByteStatus
+            null // licenses
       );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceListTest.java
index 4af9d4d..694dd0b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceListTest.java
@@ -46,7 +46,9 @@ public class ParseTargetInstanceListTest extends BaseGoogleComputeEngineParseTes
    public ListPage<TargetInstance> expected(String baseURL){
       return ForwardingListPage.create( //
             ImmutableList.of(new ParseTargetInstanceTest().expected(baseURL),
-                  TargetInstance.create("2014-11-20T17:35:17.268-08:00", // creationTimestamp
+                  TargetInstance.create(
+                        "7362436693678237415", // id
+                        "2014-11-20T17:35:17.268-08:00", // creationTimestamp
                         "target-instance-2", // name
                         null, // description
                         URI.create(baseURL + "/party/zones/us-central1-a"), // zone

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceTest.java
index deae9f4..ab78036 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetInstanceTest.java
@@ -40,7 +40,9 @@ public class ParseTargetInstanceTest extends BaseGoogleComputeEngineParseTest<Ta
    }
 
    public TargetInstance expected(String baseUrl) {
-      return TargetInstance.create("2014-07-18T09:47:30.826-07:00", // creationTimestamp
+      return TargetInstance.create(
+            "13050421646334304115", // id
+            "2014-07-18T09:47:30.826-07:00", // creationTimestamp
             "target-instance-1", // name
             "A pretty cool target instance", // description
             URI.create(baseUrl + "/party/zones/us-central1-a"), // zone

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
index 06b8808..05f610d 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
@@ -43,6 +43,7 @@ public class ParseZoneListTest extends BaseGoogleComputeEngineParseTest<ListPage
       Zone zone1 = new ParseZoneTest().expected();
       Zone zone2 = Zone.create( //
             "13024414164050619686", // id
+            parse("2012-10-24T20:13:19.271"), // creationTimestamp
             URI.create(BASE_URL + "/party/zones/us-central1-b"), // selfLink
             "us-central1-b", // name
             "us-central1-b", // description
@@ -54,6 +55,8 @@ public class ParseZoneListTest extends BaseGoogleComputeEngineParseTest<ListPage
                         parse("2013-02-17T08:00:00.000"), // beginTime
                         parse("2013-03-03T08:00:00.000") // endTime)
                   )), //
+            null, // deprecated
+            "us-central1", // region
             null // availableMachineTypes
       );
       return ForwardingListPage.create( //

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
index b2fd488..2a472c9 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
@@ -40,6 +40,7 @@ public class ParseZoneTest extends BaseGoogleComputeEngineParseTest<Zone> {
    public Zone expected() {
       return Zone.create( //
             "13020128040171887099", // id
+            parse("2012-10-19T16:42:54.131"), // creationTimestamp
             URI.create(BASE_URL + "/party/zones/us-central1-a"), // selfLink
             "us-central1-a", // name
             "us-central1-a", // description
@@ -51,6 +52,8 @@ public class ParseZoneTest extends BaseGoogleComputeEngineParseTest<Zone> {
                         parse("2012-11-10T20:00:00.000"), // beginTime
                         parse("2012-12-02T20:00:00.000") // endTime)
                   )), //
+            null, // deprecated
+            "us-central1", // region
             null // availableMachineTypes
       );
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/route_get.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/route_get.json b/google-compute-engine/src/test/resources/route_get.json
index a2fcb9b..ee649fd 100644
--- a/google-compute-engine/src/test/resources/route_get.json
+++ b/google-compute-engine/src/test/resources/route_get.json
@@ -1,14 +1,28 @@
 {
-
-    "kind": "compute#route",
-    "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-c99ebfbed0e1f375",
-    "id": "7241926205630356071",
-    "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
-    "name": "default-route-c99ebfbed0e1f375",
-    "description": "Default route to the virtual network.",
-    "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
-    "destRange": "10.240.0.0/16",
-    "priority": 1000,
-    "nextHopNetwork": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
-    "tags": [ "fooTag", "barTag" ]
+  "kind": "compute#route",
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-c99ebfbed0e1f375",
+  "id": "7241926205630356071",
+  "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
+  "name": "default-route-c99ebfbed0e1f375",
+  "description": "Default route to the virtual network.",
+  "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
+  "destRange": "10.240.0.0/16",
+  "priority": 1000,
+  "nextHopNetwork": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
+  "tags": [
+    "fooTag",
+    "barTag"
+  ],
+  "warnings": [
+    {
+      "code": "NO_RESULTS_ON_PAGE",
+      "message": "This is an example warning",
+      "data": [
+        {
+          "key": "scope",
+          "value": "There are no results for scope 'zones/asia-east1-b' on this page."
+        }
+      ]
+    }
+  ]
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/route_list.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/route_list.json b/google-compute-engine/src/test/resources/route_list.json
index 8c69688..2dca138 100644
--- a/google-compute-engine/src/test/resources/route_list.json
+++ b/google-compute-engine/src/test/resources/route_list.json
@@ -1,34 +1,47 @@
 {
-    "kind": "compute#routeList",
-    "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes",
-    "id": "projects/party/global/routes",
-    "items": [
+  "kind": "compute#routeList",
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes",
+  "id": "projects/party/global/routes",
+  "items": [
+    {
+      "kind": "compute#route",
+      "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-c99ebfbed0e1f375",
+      "id": "7241926205630356071",
+      "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
+      "name": "default-route-c99ebfbed0e1f375",
+      "description": "Default route to the virtual network.",
+      "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
+      "destRange": "10.240.0.0/16",
+      "priority": 1000,
+      "nextHopNetwork": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
+      "tags": [
+        "fooTag",
+        "barTag"
+      ],
+      "warnings": [
         {
-
-            "kind": "compute#route",
-            "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-c99ebfbed0e1f375",
-            "id": "7241926205630356071",
-            "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
-            "name": "default-route-c99ebfbed0e1f375",
-            "description": "Default route to the virtual network.",
-            "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
-            "destRange": "10.240.0.0/16",
-            "priority": 1000,
-            "nextHopNetwork": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
-            "tags": [ "fooTag", "barTag" ]
-        },
-        {
-
-            "kind": "compute#route",
-            "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-fc92a41ecb5a8d17",
-            "id": "507025480040058551",
-            "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
-            "name": "default-route-fc92a41ecb5a8d17",
-            "description": "Default route to the Internet.",
-            "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
-            "destRange": "0.0.0.0/0",
-            "priority": 1000,
-            "nextHopGateway": "https://www.googleapis.com/compute/v1/projects/party/global/gateways/default-internet-gateway"
+          "code": "NO_RESULTS_ON_PAGE",
+          "message": "This is an example warning",
+          "data": [
+            {
+              "key": "scope",
+              "value": "There are no results for scope 'zones/asia-east1-b' on this page."
+            }
+          ]
         }
-    ]
+      ]
+    },
+    {
+      "kind": "compute#route",
+      "selfLink": "https://www.googleapis.com/compute/v1/projects/party/global/routes/default-route-fc92a41ecb5a8d17",
+      "id": "507025480040058551",
+      "creationTimestamp": "2013-07-08T14:40:38.502-07:00",
+      "name": "default-route-fc92a41ecb5a8d17",
+      "description": "Default route to the Internet.",
+      "network": "https://www.googleapis.com/compute/v1/projects/party/global/networks/default",
+      "destRange": "0.0.0.0/0",
+      "priority": 1000,
+      "nextHopGateway": "https://www.googleapis.com/compute/v1/projects/party/global/gateways/default-internet-gateway"
+    }
+  ]
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/target_instance_get.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/target_instance_get.json b/google-compute-engine/src/test/resources/target_instance_get.json
index 89607d8..b90f527 100644
--- a/google-compute-engine/src/test/resources/target_instance_get.json
+++ b/google-compute-engine/src/test/resources/target_instance_get.json
@@ -1,6 +1,6 @@
 {
   "kind": "compute#targetInstance",
-  "id": 13050421646334304115,
+  "id": "13050421646334304115",
   "creationTimestamp": "2014-07-18T09:47:30.826-07:00",
   "name": "target-instance-1",
   "description": "A pretty cool target instance",

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/zone_get.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_get.json b/google-compute-engine/src/test/resources/zone_get.json
index 886b58e..4ad9133 100644
--- a/google-compute-engine/src/test/resources/zone_get.json
+++ b/google-compute-engine/src/test/resources/zone_get.json
@@ -5,6 +5,7 @@
    "selfLink": "https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a",
    "name": "us-central1-a",
    "description": "us-central1-a",
+   "region": "us-central1",
    "status": "DOWN",
    "maintenanceWindows": [
       {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/zone_list.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_list.json b/google-compute-engine/src/test/resources/zone_list.json
index ab8b960..c32c44b 100644
--- a/google-compute-engine/src/test/resources/zone_list.json
+++ b/google-compute-engine/src/test/resources/zone_list.json
@@ -11,6 +11,7 @@
          "name": "us-central1-a",
          "description": "us-central1-a",
          "status": "DOWN",
+         "region": "us-central1",
          "maintenanceWindows": [
             {
                "name": "2012-11-10-planned-outage",
@@ -28,6 +29,7 @@
          "name": "us-central1-b",
          "description": "us-central1-b",
          "status": "UP",
+         "region": "us-central1",
          "maintenanceWindows": [
             {
                "name": "2013-02-17-planned-outage",

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d3205b1b/google-compute-engine/src/test/resources/zone_list_short.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_list_short.json b/google-compute-engine/src/test/resources/zone_list_short.json
index 2b2eafe..c13ed95 100644
--- a/google-compute-engine/src/test/resources/zone_list_short.json
+++ b/google-compute-engine/src/test/resources/zone_list_short.json
@@ -11,6 +11,7 @@
          "name": "us-central1-a",
          "description": "us-central1-a",
          "status": "DOWN",
+         "region": "us-central1",
          "maintenanceWindows": [
             {
                "name": "2012-11-10-planned-outage",