You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/11/05 20:27:42 UTC
[3/4] standardize listPage across all GCE resources.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
index 2b4562a..2b1340c 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -30,7 +31,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -52,73 +52,66 @@ import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
import org.jclouds.rest.binders.BindToJsonPayload;
-/**
- * Provides access to Images via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/images")
+@Consumes(APPLICATION_JSON)
public interface ImageApi {
- /**
- * Returns the specified image resource.
- *
- * @param imageName name of the image resource to return.
- * @return an Image resource
- */
+
+ /** Returns an image by name or null if not found. */
@Named("Images:get")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images/{image}")
+ @Path("/{image}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- Image get(@PathParam("image") String imageName);
+ Image get(@PathParam("image") String image);
- /**
- * Deletes the specified image resource.
- *
- * @param imageName name of the image resource to delete.
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field. If the image did not exist the result is null.
- */
+ /** Deletes an image by name and returns the operation in progress, or null if not found. */
@Named("Images:delete")
@DELETE
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images/{image}")
+ @Path("/{image}")
@OAuthScopes(COMPUTE_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- Operation delete(@PathParam("image") String imageName);
+ Operation delete(@PathParam("image") String image);
+
+ /**
+ * Creates an image resource in the specified project from the provided persistent disk.
+ *
+ * @param image the name of the created image
+ * @param sourceDisk fully qualified URL for the persistent disk to create the image from
+ * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
+ * you, and look for the status field.
+ */
+ @Named("Images:insert")
+ @POST
+ @Produces(APPLICATION_JSON)
+ @OAuthScopes(COMPUTE_SCOPE)
+ @MapBinder(BindToJsonPayload.class)
+ Operation createFromDisk(@PayloadParam("name") String image, @PayloadParam("sourceDisk") String sourceDisk);
/**
* Retrieves the list of image resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
*
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
* @return a page of the list
- * @see ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("Images:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseImages.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Image> listAtMarker(@QueryParam("pageToken") @Nullable String marker, ListOptions listOptions);
+ ListPage<Image> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * A paged version of ImageApi#list()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Images:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseImages.class)
@Transform(ParseImages.ToIteratorOfListPage.class)
@@ -126,35 +119,13 @@ public interface ImageApi {
Iterator<ListPage<Image>> list();
/**
- * A paged version of ImageApi#list()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see ImageApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Images:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/images")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseImages.class)
@Transform(ParseImages.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
Iterator<ListPage<Image>> list(ListOptions options);
-
- /**
- * Creates an image resource in the specified project from the provided persistent disk.
- *
- * @param imageName the name of the created image
- * @param sourceDisk fully qualified URL for the persistent disk to create the image from
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field.
- */
- @Named("Images:insert")
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/global/images")
- @OAuthScopes(COMPUTE_SCOPE)
- @MapBinder(BindToJsonPayload.class)
- Operation createImageFromPD(@PayloadParam("name") String imageName, @PayloadParam("sourceDisk") String sourceDisk);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
index 09dc36d..33ed393 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java
@@ -60,10 +60,6 @@ import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
import org.jclouds.rest.binders.BindToJsonPayload;
-/**
- * Provides access to Instances via their REST API.
- * @see InstanceApi
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
@Path("/instances")
@@ -82,7 +78,6 @@ public interface InstanceApi {
/**
* Creates a instance resource in the specified project using the data included in the request.
*
- *
* @param instance this name of the instance to be created
* @param template the instance template
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
@@ -112,18 +107,16 @@ public interface InstanceApi {
* @param token marks the beginning of the next list page
* @param listOptions listing options
* @return a page of the list
- * @see ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("Instances:list")
@GET
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseInstances.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Instance> listPage(@Nullable String token, ListOptions listOptions);
+ ListPage<Instance> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see InstanceApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Instances:list")
@GET
@@ -134,7 +127,7 @@ public interface InstanceApi {
Iterator<ListPage<Instance>> list();
/**
- * @see InstanceApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Instances:list")
@GET
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
index f78d12d..b197ab2 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import java.util.Iterator;
@@ -26,7 +27,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -44,76 +44,55 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to MachineTypes via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
-@Consumes(MediaType.APPLICATION_JSON)
+@Path("/machineTypes")
+@Consumes(APPLICATION_JSON)
public interface MachineTypeApi {
- /**
- * Returns the specified machine type resource
- *
- * @param zone the name of the zone the machine type is in
- * @param machineTypeName name of the machine type resource to return.
- * @return If successful, this method returns a MachineType resource
- */
+ /** Returns an machine type by name or null if not found. */
@Named("MachineTypes:get")
@GET
- @Path("/zones/{zone}/machineTypes/{machineType}")
+ @Path("/{machineType}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- MachineType getInZone(@PathParam("zone") String zone, @PathParam("machineType") String machineTypeName);
+ MachineType get(@PathParam("machineType") String machineType);
/**
* Retrieves the list of machine type resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
*
- * @param zone The name of the zone to list in.
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
* @return a page of the list
- * @see ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
*/
@Named("MachineTypes:list")
@GET
- @Path("/zones/{zone}/machineTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseMachineTypes.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<MachineType> listAtMarkerInZone(@PathParam("zone") String zone,
- @QueryParam("pageToken") @Nullable String marker,
- ListOptions listOptions);
+ ListPage<MachineType> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see MachineTypeApi#listInZone(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("MachineTypes:list")
@GET
- @Path("/zones/{zone}/machineTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseMachineTypes.class)
@Transform(ParseMachineTypes.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<MachineType>> listInZone(@PathParam("zone") String zone);
+ Iterator<ListPage<MachineType>> list();
/**
- * A paged version of MachineTypeApi#listInZone(String)
- *
- * @param zone the zone to list in
- * @return an Iterator that is able to fetch additional pages when required
- * @see MachineTypeApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("MachineTypes:list")
@GET
- @Path("/zones/{zone}/machineTypes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseMachineTypes.class)
@Transform(ParseMachineTypes.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<MachineType>> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
-
+ Iterator<ListPage<MachineType>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/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 c998be5..7b80233 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
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -30,7 +31,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -52,23 +52,16 @@ import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
import org.jclouds.rest.binders.BindToJsonPayload;
-/**
- * Provides access to Networks via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/networks")
+@Consumes(APPLICATION_JSON)
public interface NetworkApi {
- /**
- * Returns the specified persistent network resource.
- *
- * @param networkName name of the persistent network resource to return.
- * @return a Network resource.
- */
+ /** Returns a network by name or null if not found. */
@Named("Networks:get")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks/{network}")
+ @Path("/{network}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
Network get(@PathParam("network") String networkName);
@@ -83,9 +76,7 @@ public interface NetworkApi {
*/
@Named("Networks:insert")
@POST
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
+ @Produces(APPLICATION_JSON)
@OAuthScopes({COMPUTE_SCOPE})
@MapBinder(BindToJsonPayload.class)
Operation createInIPv4Range(@PayloadParam("name") String networkName,
@@ -102,56 +93,42 @@ public interface NetworkApi {
*/
@Named("Networks:insert")
@POST
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
+ @Produces(APPLICATION_JSON)
@OAuthScopes({COMPUTE_SCOPE})
@MapBinder(BindToJsonPayload.class)
Operation createInIPv4RangeWithGateway(@PayloadParam("name") String networkName,
@PayloadParam("IPv4Range") String IPv4Range,
@PayloadParam("gatewayIPv4") String gatewayIPv4);
- /**
- * Deletes the specified persistent network resource.
- *
- * @param networkName name of the persistent network resource to delete.
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field.
- */
+ /** Deletes a network by name and returns the operation in progress, or null if not found. */
@Named("Networks:delete")
@DELETE
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks/{network}")
+ @Path("/{network}")
@OAuthScopes(COMPUTE_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
Operation delete(@PathParam("network") String networkName);
/**
- * Retrieves the list of persistent network resources contained within the specified project.
+ * Retrieves the list of network resources available to the specified project.
* By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
* been set.
*
- * @param marker marks the beginning of the next list page
- * @param options listing options
+ * @param token marks the beginning of the next list page
+ * @param listOptions listing options
* @return a page of the list
- * @see ListOptions
*/
@Named("Networks:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Network> listAtMarker(@QueryParam("pageToken") @Nullable String marker, ListOptions options);
+ ListPage<Network> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see NetworkApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Networks:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
@Transform(ParseNetworks.ToIteratorOfListPage.class)
@@ -159,15 +136,10 @@ public interface NetworkApi {
Iterator<ListPage<Network>> list();
/**
- * A paged version of NetworkApi#list()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see NetworkApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Networks:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/networks")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseNetworks.class)
@Transform(ParseNetworks.ToIteratorOfListPage.class)
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
index 573aaa5..2a9c1a1 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -28,7 +29,6 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.NullOn400or404;
import org.jclouds.googlecomputeengine.binders.MetadataBinder;
@@ -42,25 +42,18 @@ import org.jclouds.rest.annotations.PayloadParam;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.SkipEncoding;
-/**
- * Provides access to Projects via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/projects")
+@Consumes(APPLICATION_JSON)
public interface ProjectApi {
- /**
- * Returns the specified project resource.
- *
- * @param projectName name of the project to return
- * @return if successful, this method returns a Project resource
- */
+ /** Returns a project by name or null if not found. */
@Named("Projects:get")
@GET
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@Fallback(NullOn400or404.class)
- @Path("/projects/{project}")
+ @Path("/{project}")
Project get(@PathParam("project") String projectName);
/**
@@ -83,10 +76,9 @@ public interface ProjectApi {
*/
@Named("Projects:setCommonInstanceMetadata")
@POST
- @Path("/projects/{project}/setCommonInstanceMetadata")
+ @Path("/{project}/setCommonInstanceMetadata")
@OAuthScopes(COMPUTE_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
+ @Produces(APPLICATION_JSON)
@MapBinder(MetadataBinder.class)
Operation setCommonInstanceMetadata(@PathParam("project") String projectName,
@PayloadParam("items") Map<String, String> metadata,
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
index 6480a14..6e5da47 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import java.util.Iterator;
@@ -25,7 +26,7 @@ import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
+import javax.ws.rs.QueryParam;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -34,6 +35,7 @@ import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.Region;
import org.jclouds.googlecomputeengine.functions.internal.ParseRegions;
import org.jclouds.googlecomputeengine.options.ListOptions;
+import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter;
import org.jclouds.rest.annotations.Fallback;
@@ -42,49 +44,41 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Regions via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
-@Consumes(MediaType.APPLICATION_JSON)
+@Path("/regions")
+@Consumes(APPLICATION_JSON)
public interface RegionApi {
- /**
- * Returns the specified region resource
- *
- * @param regionName name of the region resource to return.
- * @return If successful, this method returns a Region resource
- */
+ /** Returns a region by name or null if not found. */
@Named("Regions:get")
@GET
- @Path("/regions/{region}")
+ @Path("/{region}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- Region get(@PathParam("region") String regionName);
+ Region get(@PathParam("region") String region);
/**
- * Retrieves the listFirstPage of region resources available to the specified project.
- * By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
- * has not been set.
+ * Retrieves the list of region resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
*
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
+ * @return a page of the list
*/
@Named("Regions:list")
@GET
- @Path("/regions")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRegions.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Region> listAtMarker(String marker, ListOptions listOptions);
+ ListPage<Region> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see RegionApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Regions:list")
@GET
- @Path("/regions")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRegions.class)
@Transform(ParseRegions.ToIteratorOfListPage.class)
@@ -92,17 +86,13 @@ public interface RegionApi {
Iterator<ListPage<Region>> list();
/**
- * A paged version of RegionApi#listFirstPage()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see RegionApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Regions:list")
@GET
- @Path("/regions")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRegions.class)
@Transform(ParseRegions.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Region>> list(ListOptions listOptions);
+ Iterator<ListPage<Region>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
index 5a2f662..4bc0eac 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.jclouds.Fallbacks.VoidOnNotFoundOr404;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -28,7 +30,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -46,91 +47,64 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Operations via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/operations")
+@Consumes(APPLICATION_JSON)
public interface RegionOperationApi {
- /**
- * Retrieves the specified operation resource.
- *
- * @param region the region the operation is in
- * @param operationName name of the operation resource to return.
- * @return If successful, this method returns an Operation resource
- */
+ /** Returns an operation by name or null if not found. */
@Named("RegionOperations:get")
@GET
- @Path("/regions/{region}/operations/{operation}")
+ @Path("/{operation}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@Fallback(NullOnNotFoundOr404.class)
- Operation getInRegion(@PathParam("region") String region, @PathParam("operation") String operationName);
+ @Nullable
+ Operation get(@PathParam("operation") String operation);
- /**
- * Deletes the specified operation resource.
- *
- * @param region the region the operation is in
- * @param operationName name of the operation resource to delete.
- */
+ /** Deletes an operation by name. */
@Named("RegionOperations:delete")
@DELETE
- @Path("/regions/{region}/operations/{operation}")
+ @Path("/{operation}")
@OAuthScopes(COMPUTE_SCOPE)
- @Fallback(NullOnNotFoundOr404.class)
- void deleteInRegion(@PathParam("region") String region, @PathParam("operation") String operationName);
+ @Fallback(VoidOnNotFoundOr404.class)
+ void delete(@PathParam("operation") String operation);
/**
- * Retrieves the listFirstPage of operation resources contained within the specified project.
- * By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
- * has not been set.
+ * Retrieves the list of operation resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
*
- * @param region the region to list in
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
- * @return a page of the list, starting at marker
- * @see org.jclouds.googlecomputeengine.options.ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
+ * @return a page of the list
*/
@Named("RegionOperations:list")
@GET
- @Path("/regions/{region}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseRegionOperations.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Operation> listAtMarkerInRegion(@PathParam("region") String region,
- @QueryParam("pageToken") @Nullable String marker,
- ListOptions listOptions);
+ ListPage<Operation> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see RegionOperationApi#listInRegion(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("RegionOperations:list")
@GET
- @Path("/regions/{region}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseRegionOperations.class)
@Transform(ParseRegionOperations.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Operation>> listInRegion(@PathParam("region") String region);
+ Iterator<ListPage<Operation>> list();
/**
- * A paged version of RegionOperationApi#listFirstPage(String)
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see org.jclouds.collect.PagedIterable
- * @see RegionOperationApi#listAtMarkerInRegion(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("RegionOperations:list")
@GET
- @Path("/regions/{region}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseRegionOperations.class)
@Transform(ParseRegionOperations.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Operation>> listInRegion(@PathParam("region") String region, ListOptions listOptions);
+ Iterator<ListPage<Operation>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
index a2916cc..0919e6d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -30,7 +31,7 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import javax.ws.rs.QueryParam;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -53,52 +54,70 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Routes via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
-@Consumes(MediaType.APPLICATION_JSON)
+@Path("/routes")
+@Consumes(APPLICATION_JSON)
public interface RouteApi {
- /**
- * Returns the specified route resource
- *
- * @param routeName name of the region resource to return.
- * @return If successful, this method returns a Route resource
- */
+ /** Returns a route type by name or null if not found. */
@Named("Routes:get")
@GET
- @Path("/global/routes/{route}")
+ @Path("/{route}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
Route get(@PathParam("route") String routeName);
+ /** Deletes a route by name and returns the operation in progress, or null if not found. */
+ @Named("Routes:delete")
+ @DELETE
+ @Consumes(APPLICATION_JSON)
+ @Path("/{route}")
+ @OAuthScopes(COMPUTE_SCOPE)
+ @Fallback(NullOnNotFoundOr404.class)
+ @Nullable
+ Operation delete(@PathParam("route") String routeName);
+
/**
- * Retrieves the listFirstPage of route resources available to the specified project.
- * By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
- * has not been set.
+ * Creates a route resource in the specified project using the data included in the request.
*
- * @param marker marks the beginning of the next list page
+ * @param name the name of the route to be inserted.
+ * @param network the network to which to add the route
+ * @param routeOptions the options of the route to add
+ * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
+ * you, and look for the status field.
+ */
+ @Named("Routes:insert")
+ @POST
+ @Consumes(APPLICATION_JSON)
+ @Produces(APPLICATION_JSON)
+ @OAuthScopes({COMPUTE_SCOPE})
+ @MapBinder(RouteBinder.class)
+ Operation createInNetwork(@PayloadParam("name") String name,
+ @PayloadParam("network") URI network,
+ @PayloadParam("options") RouteOptions routeOptions);
+
+ /**
+ * Retrieves the list of route resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
+ *
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
- * @return a page of the listFirstPage
- * @see org.jclouds.googlecomputeengine.options.ListOptions
- * @see org.jclouds.googlecomputeengine.domain.ListPage
+ * @return a page of the list
*/
@Named("Routes:list")
@GET
- @Path("/global/routes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRoutes.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Route> listAtMarker(String marker, ListOptions listOptions);
+ ListPage<Route> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see RouteApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Routes:list")
@GET
- @Path("/global/routes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRoutes.class)
@Transform(ParseRoutes.ToIteratorOfListPage.class)
@@ -106,55 +125,13 @@ public interface RouteApi {
Iterator<ListPage<Route>> list();
/**
- * A paged version of RegionApi#listFirstPage()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see RouteApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
- * @see org.jclouds.collect.PagedIterable
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Routes:list")
@GET
- @Path("/global/routes")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseRoutes.class)
@Transform(ParseRoutes.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Route>> list(ListOptions listOptions);
-
- /**
- * Deletes the specified route resource.
- *
- * @param routeName name of the route resource to delete.
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field. If the route did not exist the result is null.
- */
- @Named("Routes:delete")
- @DELETE
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/routes/{route}")
- @OAuthScopes(COMPUTE_SCOPE)
- @Fallback(NullOnNotFoundOr404.class)
- @Nullable
- Operation delete(@PathParam("route") String routeName);
-
- /**
- * Creates a route resource in the specified project using the data included in the request.
- *
- * @param name the name of the route to be inserted.
- * @param network the network to which to add the route
- * @param routeOptions the options of the route to add
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field.
- */
- @Named("Routes:insert")
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/global/routes")
- @OAuthScopes({COMPUTE_SCOPE})
- @MapBinder(RouteBinder.class)
- Operation createInNetwork(@PayloadParam("name") String name,
- @PayloadParam("network") URI network,
- @PayloadParam("options") RouteOptions routeOptions);
-
+ Iterator<ListPage<Route>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
index 840f1d4..f3741a7 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -28,7 +29,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -47,80 +47,62 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Snapshots via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/snapshots")
+@Consumes(APPLICATION_JSON)
public interface SnapshotApi {
- /**
- * Returns the specified snapshot resource.
- *
- * @param snapshotName name of the snapshot resource to return.
- * @return a Snapshot resource.
- */
+ /** Returns a snapshot by name or null if not found. */
@Named("Snapshots:get")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/snapshots/{snapshot}")
+ @Path("/{snapshot}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- Snapshot get(@PathParam("snapshot") String snapshotName);
+ Snapshot get(@PathParam("snapshot") String snapshot);
- /**
- * Deletes the specified snapshot resource.
- *
- * @param snapshotName name of the snapshot resource to delete.
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field.
- */
+ /** Deletes a snapshot by name and returns the operation in progress, or null if not found. */
@Named("Snapshots:delete")
@DELETE
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/snapshots/{snapshot}")
+ @Path("/{snapshot}")
@OAuthScopes(COMPUTE_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- Operation delete(@PathParam("snapshot") String snapshotName);
+ Operation delete(@PathParam("snapshot") String snapshot);
/**
- * Retrieves the listPage of persistent disk resources contained within the specified project and zone.
- * By default the listPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has
- * not been set.
+ * Retrieves the list of snapshot resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
*
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
+ * @return a page of the list
*/
@Named("Snapshots:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/snapshots")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseSnapshots.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Snapshot> listAtMarker(@QueryParam("pageToken") @Nullable String marker, ListOptions listOptions);
+ ListPage<Snapshot> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * A paged version of SnapshotApi#listPage(String)
- *
- * @return an Iterator that is able to fetch additional pages when required
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Snapshots:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/snapshots")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseSnapshots.class)
@Transform(ParseSnapshots.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
Iterator<ListPage<Snapshot>> list();
+ /**
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
+ */
@Named("Snapshots:list")
@GET
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/global/snapshots")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseSnapshots.class)
@Transform(ParseSnapshots.ToIteratorOfListPage.class)
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java
index a630fd7..7054563 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -32,7 +33,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -58,23 +58,16 @@ import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
import org.jclouds.rest.binders.BindToJsonPayload;
-/**
- * Provides access to TargetPools via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticator.class)
-@Consumes(MediaType.APPLICATION_JSON)
+@Path("/targetPools")
+@Consumes(APPLICATION_JSON)
public interface TargetPoolApi {
- /**
- * Returns the specified TargetPool resource.
- *
- * @param targetPool the name of the TargetPool resource to return.
- * @return a TargetPool resource.
- */
+ /** Returns a target pool by name or null if not found. */
@Named("TargetPools:get")
@GET
- @Path("/targetPools/{targetPool}")
+ @Path("/{targetPool}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
@@ -90,53 +83,22 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:insert")
@POST
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/targetPools")
+ @Produces(APPLICATION_JSON)
+ @Path("")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(TargetPoolCreationBinder.class)
Operation create(@PayloadParam("name") String name, @PayloadParam("options") TargetPoolCreationOptions options);
- /**
- * Deletes the specified TargetPool resource.
- *
- * @param targetPool name of the persistent target pool resource to delete.
- * @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
- * you, and look for the status field.
- */
+ /** Deletes a target pool by name and returns the operation in progress, or null if not found. */
@Named("TargetPools:delete")
@DELETE
- @Path("/targetPools/{targetPool}")
+ @Path("/{targetPool}")
@OAuthScopes(COMPUTE_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
Operation delete(@PathParam("targetPool") String targetPool);
/**
- * @return an Iterator that is able to fetch additional pages when required
- * @see org.jclouds.collect.PagedIterable
- */
- @Named("TargetPools:list")
- @GET
- @Path("/targetPools")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseTargetPools.class)
- @Transform(ParseTargetPools.ToIteratorOfListPage.class)
- @Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<TargetPool>> list();
-
- /**
- * @param options @see org.jclouds.googlecomputeengine.options.ListOptions
- * @return ListPage
- */
- @Named("TargetPools:list")
- @GET
- @Path("/targetPools")
- @OAuthScopes(COMPUTE_READONLY_SCOPE)
- @ResponseParser(ParseTargetPools.class)
- @Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<TargetPool> list(ListOptions options);
-
- /**
* Adds instance to the targetPool.
*
* @param targetPool the name of the target pool.
@@ -147,7 +109,7 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:addInstance")
@POST
- @Path("/targetPools/{targetPool}/addInstance")
+ @Path("/{targetPool}/addInstance")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(TargetPoolChangeInstancesBinder.class)
@Nullable
@@ -164,7 +126,7 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:removeInstance")
@POST
- @Path("/targetPools/{targetPool}/removeInstance")
+ @Path("/{targetPool}/removeInstance")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(TargetPoolChangeInstancesBinder.class)
@Nullable
@@ -181,7 +143,7 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:addHealthCheck")
@POST
- @Path("/targetPools/{targetPool}/addHealthCheck")
+ @Path("/{targetPool}/addHealthCheck")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(TargetPoolChangeHealthChecksBinder.class)
@Nullable
@@ -199,7 +161,7 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:removeHealthChek")
@POST
- @Path("/targetPools/{targetPool}/removeHealthCheck")
+ @Path("/{targetPool}/removeHealthCheck")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(TargetPoolChangeHealthChecksBinder.class)
@Nullable
@@ -214,14 +176,13 @@ public interface TargetPoolApi {
* WARNING: failoverRatio and BackupPool must either both be set or not set. This method
* is only for updating the backup pool on a Target Pool that already has a
* failoverRatio.
- * @see <a href = "https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup"/>
*
* @return an Operation resource. To check on the status of an operation, poll the Operations resource returned to
* you, and look for the status field.
*/
@Named("TargetPools:setBackup")
@POST
- @Path("/targetPools/{targetPool}/setBackup")
+ @Path("/{targetPool}/setBackup")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(BindToJsonPayload.class)
@Nullable
@@ -238,9 +199,47 @@ public interface TargetPoolApi {
*/
@Named("TargetPools:setBackup")
@POST
- @Path("/targetPools/{targetPool}/setBackup")
+ @Path("/{targetPool}/setBackup")
@OAuthScopes(COMPUTE_SCOPE)
@MapBinder(BindToJsonPayload.class)
@Nullable
Operation setBackup(@PathParam("targetPool") String targetPool, @QueryParam("failoverRatio") Float failoverRatio, @PayloadParam("target") URI target);
+
+ /**
+ * Retrieves the list of target pool resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
+ *
+ * @param token marks the beginning of the next list page
+ * @param listOptions listing options
+ * @return a page of the list
+ */
+ @Named("TargetPools:list")
+ @GET
+ @OAuthScopes(COMPUTE_READONLY_SCOPE)
+ @ResponseParser(ParseTargetPools.class)
+ @Fallback(EmptyListPageOnNotFoundOr404.class)
+ ListPage<TargetPool> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
+
+ /**
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
+ */
+ @Named("TargetPools:list")
+ @GET
+ @OAuthScopes(COMPUTE_READONLY_SCOPE)
+ @ResponseParser(ParseTargetPools.class)
+ @Transform(ParseTargetPools.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<TargetPool>> list();
+
+ /**
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
+ */
+ @Named("TargetPools:list")
+ @GET
+ @OAuthScopes(COMPUTE_READONLY_SCOPE)
+ @ResponseParser(ParseTargetPools.class)
+ @Transform(ParseTargetPools.ToIteratorOfListPage.class)
+ @Fallback(EmptyIteratorOnNotFoundOr404.class)
+ Iterator<ListPage<TargetPool>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
index b043900..61716e3 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import java.util.Iterator;
@@ -25,7 +26,7 @@ import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
+import javax.ws.rs.QueryParam;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -34,6 +35,7 @@ import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.domain.Zone;
import org.jclouds.googlecomputeengine.functions.internal.ParseZones;
import org.jclouds.googlecomputeengine.options.ListOptions;
+import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter;
import org.jclouds.rest.annotations.Fallback;
@@ -42,49 +44,41 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Zones via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
-@Consumes(MediaType.APPLICATION_JSON)
+@Path("/zones")
+@Consumes(APPLICATION_JSON)
public interface ZoneApi {
- /**
- * Returns the specified zone resource
- *
- * @param zoneName name of the zone resource to return.
- * @return If successful, this method returns a Zone resource
- */
+ /** Returns a zone by name or null if not found. */
@Named("Zones:get")
@GET
- @Path("/zones/{zone}")
+ @Path("/{zone}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@Fallback(NullOnNotFoundOr404.class)
- Zone get(@PathParam("zone") String zoneName);
+ Zone get(@PathParam("zone") String zone);
/**
- * Retrieves the listFirstPage of zone resources available to the specified project.
- * By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
- * has not been set.
+ * Retrieves the list of zone resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
*
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
+ * @return a page of the list
*/
@Named("Zones:list")
@GET
- @Path("/zones")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseZones.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Zone> listAtMarker(String marker, ListOptions listOptions);
+ ListPage<Zone> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see ZoneApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Zones:list")
@GET
- @Path("/zones")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseZones.class)
@Transform(ParseZones.ToIteratorOfListPage.class)
@@ -92,17 +86,13 @@ public interface ZoneApi {
Iterator<ListPage<Zone>> list();
/**
- * A paged version of ZoneApi#listFirstPage()
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see ZoneApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("Zones:list")
@GET
- @Path("/zones")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
@ResponseParser(ParseZones.class)
@Transform(ParseZones.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Zone>> list(ListOptions listOptions);
+ Iterator<ListPage<Zone>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
index d486ea2..e89a10b 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.jclouds.Fallbacks.VoidOnNotFoundOr404;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
@@ -28,7 +30,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecomputeengine.GoogleComputeEngineFallbacks.EmptyIteratorOnNotFoundOr404;
@@ -46,88 +47,64 @@ import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.annotations.Transform;
-/**
- * Provides access to Operations via their REST API.
- */
@SkipEncoding({'/', '='})
@RequestFilters(OAuthAuthenticationFilter.class)
+@Path("/operations")
+@Consumes(APPLICATION_JSON)
public interface ZoneOperationApi {
- /**
- * Retrieves the specified operation resource.
- *
- * @param zone the zone the operation is in
- * @param operationName name of the operation resource to return.
- * @return If successful, this method returns an Operation resource
- */
+ /** Returns an operation by name or null if not found. */
@Named("ZoneOperations:get")
@GET
- @Path("/zones/{zone}/operations/{operation}")
+ @Path("/{operation}")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@Fallback(NullOnNotFoundOr404.class)
- Operation getInZone(@PathParam("zone") String zone, @PathParam("operation") String operationName);
+ @Nullable
+ Operation get(@PathParam("operation") String operation);
- /**
- * Deletes the specified operation resource.
- *
- * @param zone the zone the operation is in
- * @param operationName name of the operation resource to delete.
- */
+ /** Deletes an operation by name. */
@Named("ZoneOperations:delete")
@DELETE
- @Path("/zones/{zone}/operations/{operation}")
+ @Path("/{operation}")
@OAuthScopes(COMPUTE_SCOPE)
- @Fallback(NullOnNotFoundOr404.class)
- void deleteInZone(@PathParam("zone") String zone, @PathParam("operation") String operationName);
+ @Fallback(VoidOnNotFoundOr404.class)
+ void delete(@PathParam("operation") String operation);
/**
- * Retrieves the listFirstPage of operation resources contained within the specified project.
- * By default the listFirstPage as a maximum size of 100, if no options are provided or ListOptions#getMaxResults()
- * has not been set.
+ * Retrieves the list of operation resources available to the specified project.
+ * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
+ * been set.
*
- * @param zone the zone to list in
- * @param marker marks the beginning of the next list page
+ * @param token marks the beginning of the next list page
* @param listOptions listing options
- * @return a page of the list, starting at marker
+ * @return a page of the list
*/
@Named("ZoneOperations:list")
@GET
- @Path("/zones/{zone}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseZoneOperations.class)
@Fallback(EmptyListPageOnNotFoundOr404.class)
- ListPage<Operation> listAtMarkerInZone(@PathParam("zone") String zone,
- @QueryParam("pageToken") @Nullable String marker,
- ListOptions listOptions);
+ ListPage<Operation> listPage(@Nullable @QueryParam("pageToken") String token, ListOptions listOptions);
/**
- * @see ZoneOperationApi#listInZone(String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("ZoneOperations:list")
@GET
- @Path("/zones/{zone}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseZoneOperations.class)
@Transform(ParseZoneOperations.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Operation>> listInZone(@PathParam("zone") String zone);
+ Iterator<ListPage<Operation>> list();
/**
- * A paged version of ZoneOperationApi#listFirstPageInZone(String)
- *
- * @return an Iterator that is able to fetch additional pages when required
- * @see ZoneOperationApi#listAtMarkerInZone(String, String, org.jclouds.googlecomputeengine.options.ListOptions)
+ * @see #list(org.jclouds.googlecomputeengine.options.ListOptions)
*/
@Named("ZoneOperations:list")
@GET
- @Path("/zones/{zone}/operations")
@OAuthScopes(COMPUTE_READONLY_SCOPE)
- @Consumes(MediaType.APPLICATION_JSON)
@ResponseParser(ParseZoneOperations.class)
@Transform(ParseZoneOperations.ToIteratorOfListPage.class)
@Fallback(EmptyIteratorOnNotFoundOr404.class)
- Iterator<ListPage<Operation>> listInZone(@PathParam("zone") String zone, ListOptions listOptions);
+ Iterator<ListPage<Operation>> list(ListOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseToIteratorOfListPage.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseToIteratorOfListPage.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseToIteratorOfListPage.java
index 05cc6ee..66b9d75 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseToIteratorOfListPage.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseToIteratorOfListPage.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Predicates.instanceOf;
import static com.google.common.collect.Iterables.tryFind;
import java.util.Iterator;
+import java.util.List;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.options.ListOptions;
@@ -33,7 +34,7 @@ import com.google.common.base.Optional;
import com.google.common.collect.Iterators;
@Beta
-public abstract class BaseToIteratorOfListPage<T, I extends BaseToIteratorOfListPage<T, I>>
+abstract class BaseToIteratorOfListPage<T, I extends BaseToIteratorOfListPage<T, I>>
implements Function<ListPage<T>, Iterator<ListPage<T>>>, InvocationContext<I> {
private GeneratedHttpRequest request;
@@ -44,16 +45,15 @@ public abstract class BaseToIteratorOfListPage<T, I extends BaseToIteratorOfList
return Iterators.singletonIterator(input);
}
- Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class));
+ List<Object> callerArgs = request.getCaller().get().getArgs();
- Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class));
+ assert callerArgs.size() == 1 : String.format("programming error, method %s should have 1 arg: project",
+ request.getCaller().get().getInvokable());
- assert project.isPresent() :
- String.format("programming error, method %s should have a string param for the " + "project",
- request.getCaller().get().getInvokable());
+ Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class));
return new AdvancingIterator<T>(input,
- fetchNextPage(project.get().toString(), (ListOptions) listOptions.orNull()));
+ fetchNextPage((String) callerArgs.get(0), (ListOptions) listOptions.orNull()));
}
protected abstract Function<String, ListPage<T>> fetchNextPage(String projectName, ListOptions listOptions);
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java
index e522dc0..eab19e6 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Predicates.instanceOf;
import static com.google.common.collect.Iterables.tryFind;
import java.util.Iterator;
+import java.util.List;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.options.ListOptions;
@@ -33,7 +34,7 @@ import com.google.common.base.Optional;
import com.google.common.collect.Iterators;
@Beta
-public abstract class BaseWithRegionToIteratorOfListPage<T, I extends BaseWithRegionToIteratorOfListPage<T, I>>
+abstract class BaseWithRegionToIteratorOfListPage<T, I extends BaseWithRegionToIteratorOfListPage<T, I>>
implements Function<ListPage<T>, Iterator<ListPage<T>>>, InvocationContext<I> {
private GeneratedHttpRequest request;
@@ -42,20 +43,15 @@ public abstract class BaseWithRegionToIteratorOfListPage<T, I extends BaseWithRe
if (input.nextPageToken() == null)
return Iterators.singletonIterator(input);
- Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class));
+ List<Object> callerArgs = request.getCaller().get().getArgs();
- Optional<Object> region = tryFind(request.getInvocation().getArgs(), instanceOf(String.class));
+ assert callerArgs.size() == 2 : String.format("programming error, method %s should have 2 args: project, region",
+ request.getCaller().get().getInvokable());
Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class));
- assert project.isPresent() : String.format("programming error, method %s should have a string param for the "
- + "project", request.getCaller().get().getInvokable());
-
- assert region.isPresent() : String.format("programming error, method %s should have a string param for the "
- + "region", request.getCaller().get().getInvokable());
-
return new AdvancingIterator<T>(input,
- fetchNextPage(project.get().toString(), region.get().toString(), (ListOptions) listOptions.orNull()));
+ fetchNextPage((String) callerArgs.get(0), (String) callerArgs.get(1), (ListOptions) listOptions.orNull()));
}
protected abstract Function<String, ListPage<T>> fetchNextPage(String projectName,
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java
index 4d4b576..16bc345 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Predicates.instanceOf;
import static com.google.common.collect.Iterables.tryFind;
import java.util.Iterator;
+import java.util.List;
import org.jclouds.googlecomputeengine.domain.ListPage;
import org.jclouds.googlecomputeengine.options.ListOptions;
@@ -33,7 +34,7 @@ import com.google.common.base.Optional;
import com.google.common.collect.Iterators;
@Beta
-public abstract class BaseWithZoneToIteratorOfListPage<T, I extends BaseWithZoneToIteratorOfListPage<T, I>>
+abstract class BaseWithZoneToIteratorOfListPage<T, I extends BaseWithZoneToIteratorOfListPage<T, I>>
implements Function<ListPage<T>, Iterator<ListPage<T>>>, InvocationContext<I> {
private GeneratedHttpRequest request;
@@ -43,20 +44,15 @@ public abstract class BaseWithZoneToIteratorOfListPage<T, I extends BaseWithZone
return Iterators.singletonIterator(input);
}
- Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class));
+ List<Object> callerArgs = request.getCaller().get().getArgs();
- Optional<Object> zone = tryFind(request.getInvocation().getArgs(), instanceOf(String.class));
+ assert callerArgs.size() == 2 : String.format("programming error, method %s should have 2 args: project, zone",
+ request.getCaller().get().getInvokable());
Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class));
- assert project.isPresent() : String.format("programming error, method %s should have a string param for the "
- + "project", request.getCaller().get().getInvokable());
-
- assert zone.isPresent() : String.format("programming error, method %s should have a string param for the "
- + "zone", request.getCaller().get().getInvokable());
-
return new AdvancingIterator<T>(input,
- fetchNextPage(project.get().toString(), zone.get().toString(), (ListOptions) listOptions.orNull()));
+ fetchNextPage((String) callerArgs.get(0), (String) callerArgs.get(1), (ListOptions) listOptions.orNull()));
}
protected abstract Function<String, ListPage<T>> fetchNextPage(String projectName,
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java
index 24245af..35dd2c1 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java
@@ -47,7 +47,7 @@ public final class ParseAddresses extends ParseJson<ListPage<Address>> {
final String regionName, final ListOptions options) {
return new Function<String, ListPage<Address>>() {
@Override public ListPage<Address> apply(String input) {
- return api.getAddressApi(projectName).listAtMarkerInRegion(regionName, input, options);
+ return api.getAddressApi(projectName, regionName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java
index 060460d..e9aa54f 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java
@@ -47,7 +47,7 @@ public final class ParseDiskTypes extends ParseJson<ListPage<DiskType>> {
final String zoneName, final ListOptions options) {
return new Function<String, ListPage<DiskType>>() {
@Override public ListPage<DiskType> apply(String input) {
- return api.getDiskTypeApi(projectName).listAtMarkerInZone(zoneName, input, options);
+ return api.getDiskTypeApi(projectName, zoneName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java
index 02361e7..6a8173b 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java
@@ -48,7 +48,7 @@ public final class ParseDisks extends ParseJson<ListPage<Disk>> {
return new Function<String, ListPage<Disk>>() {
@Override public ListPage<Disk> apply(String input) {
- return api.getDiskApi(projectName).listAtMarkerInZone(zoneName, input, options);
+ return api.getDiskApi(projectName, zoneName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java
index 348d7a4..cfe8605 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java
@@ -47,7 +47,7 @@ public final class ParseFirewalls extends ParseJson<ListPage<Firewall>> {
final ListOptions options) {
return new Function<String, ListPage<Firewall>>() {
@Override public ListPage<Firewall> apply(String input) {
- return api.getFirewallApi(projectName).listAtMarker(input, options);
+ return api.getFirewallApi(projectName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java
index e7e1826..e8fc15d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java
@@ -49,7 +49,7 @@ public final class ParseForwardingRules extends ParseJson<ListPage<ForwardingRul
final ListOptions options) {
return new Function<String, ListPage<ForwardingRule>>() {
@Override public ListPage<ForwardingRule> apply(String input) {
- return api.getForwardingRuleApi(projectName, regionName).list(options);
+ return api.getForwardingRuleApi(projectName, regionName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java
index 99935e4..f45744f 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java
@@ -48,7 +48,7 @@ public final class ParseGlobalOperations extends ParseJson<ListPage<Operation>>
final ListOptions options) {
return new Function<String, ListPage<Operation>>() {
@Override public ListPage<Operation> apply(String input) {
- return api.getGlobalOperationApi(projectName).listAtMarker(input, options);
+ return api.getGlobalOperationApi(projectName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseHttpHealthChecks.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseHttpHealthChecks.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseHttpHealthChecks.java
index aba3d8d..da034e2 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseHttpHealthChecks.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseHttpHealthChecks.java
@@ -50,7 +50,7 @@ public final class ParseHttpHealthChecks extends ParseJson<ListPage<HttpHealthCh
return new Function<String, ListPage<HttpHealthCheck>>() {
@Override public ListPage<HttpHealthCheck> apply(String input) {
- return api.getHttpHealthCheckApi(projectName).list(options);
+ return api.getHttpHealthCheckApi(projectName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java
index ada754b..dfdabc2 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java
@@ -47,7 +47,7 @@ public final class ParseImages extends ParseJson<ListPage<Image>> {
final ListOptions options) {
return new Function<String, ListPage<Image>>() {
@Override public ListPage<Image> apply(String input) {
- return api.getImageApi(projectName).listAtMarker(input, options);
+ return api.getImageApi(projectName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java
index 0e48546..284f7cc 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java
@@ -35,8 +35,7 @@ public final class ParseMachineTypes extends ParseJson<ListPage<MachineType>> {
});
}
- public static class ToIteratorOfListPage
- extends BaseWithZoneToIteratorOfListPage<MachineType, ToIteratorOfListPage> {
+ public static class ToIteratorOfListPage extends BaseWithZoneToIteratorOfListPage<MachineType, ToIteratorOfListPage> {
private final GoogleComputeEngineApi api;
@@ -49,7 +48,7 @@ public final class ParseMachineTypes extends ParseJson<ListPage<MachineType>> {
return new Function<String, ListPage<MachineType>>() {
@Override public ListPage<MachineType> apply(String input) {
- return api.getMachineTypeApi(projectName).listAtMarkerInZone(zoneName, input, options);
+ return api.getMachineTypeApi(projectName, zoneName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java
index 4d0a716..ad0837c 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java
@@ -47,7 +47,7 @@ public final class ParseNetworks extends ParseJson<ListPage<Network>> {
final ListOptions options) {
return new Function<String, ListPage<Network>>() {
@Override public ListPage<Network> apply(String input) {
- return api.getNetworkApi(projectName).listAtMarker(input, options);
+ return api.getNetworkApi(projectName).listPage(input, options);
}
};
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java
index 95a39d8..8b19bd4 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java
@@ -48,7 +48,7 @@ public final class ParseRegionOperations extends ParseJson<ListPage<Operation>>
final String regionName, final ListOptions options) {
return new Function<String, ListPage<Operation>>() {
@Override public ListPage<Operation> apply(String input) {
- return api.getRegionOperationApi(projectName).listAtMarkerInRegion(regionName, input, options);
+ return api.getRegionOperationApi(projectName, regionName).listPage(input, options);
}
};
}