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/10/05 22:15:21 UTC
[1/5] JCLOUDS-40 unasync vcloud-director
Repository: jclouds-labs
Updated Branches:
refs/heads/master 0cbcf181c -> d7bc430c6
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
index ec8dbdb..e25f8be 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
@@ -16,98 +16,101 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.QueryParams;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.RoleReferences;
import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
import org.jclouds.vcloud.director.v1_5.features.QueryApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-/**
- * Provides synchronous access to {@link AdminQuery} objects.
- *
- * @see AdminQueryAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface AdminQueryApi extends QueryApi {
-
+
/**
- * Retrieves a list of {@link Group}s for organization the org admin belongs to by using REST API general QueryHandler
- *
+ * Retrieves a list of {@link Group}s for organization the org admin belongs to by using REST API general
+ * QueryHandler
+ *
* <pre>
* GET /admin/groups/query
* </pre>
- *
- * @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/groups/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords groupsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords groupsQuery(String filter);
-
/**
* Retrieves a list of {@link Org}s by using REST API general QueryHandler.
*
* <pre>
* GET /admin/orgs/query
* </pre>
- *
- * @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/orgs/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords orgsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords orgsQuery(String filter);
-
/**
* Retrieves a list of {@link Right}s by using REST API general QueryHandler.
*
* <pre>
* GET /admin/rights/query
* </pre>
- *
- * @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/rights/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords rightsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords rightsQuery(String filter);
-
/**
* Retrieves a list of {@link Role}s by using REST API general QueryHandler.
*
* <pre>
* GET /admin/roles/query
* </pre>
- *
- * @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/roles/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords rolesQueryAll();
- /** @see #queryAll() */
- QueryResultRecords rolesQuery(String filter);
-
/**
* Retrieves a list of {@link RoleReference}s by using REST API general QueryHandler.
*
* <pre>
* GET /admin/roles/query?format=references
* </pre>
- *
- * @see #rolesQueryAll(String)
*/
+ @GET
+ @Path("/admin/roles/query")
+ @Consumes
+ @QueryParams(keys = { "format" }, values = { "references" })
+ @JAXBResponseParser
RoleReferences roleReferencesQueryAll();
-
+
/**
* Retrieves a list of {@link User}s by using REST API general QueryHandler.
*
* <pre>
* GET /admin/strandedUsers/query
* </pre>
- *
- * @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/strandedUsers/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords strandedUsersQueryAll();
- /** @see #queryAll() */
- QueryResultRecords strandedUsersQuery(String filter);
-
/**
* Retrieves a list of {@link User}s by using REST API general QueryHandler.
*
@@ -117,11 +120,12 @@ public interface AdminQueryApi extends QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/users/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords usersQueryAll();
- /** @see #queryAll() */
- QueryResultRecords usersQuery(String filter);
-
/**
* Retrieves a list of {@link Vdc}s by using REST API general QueryHandler.
*
@@ -131,8 +135,9 @@ public interface AdminQueryApi extends QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/admin/vdcs/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords vdcsQueryAll();
-
- /** @see #queryAll() */
- QueryResultRecords vdcsQuery(String filter);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
deleted file mode 100644
index 98f6d6d..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.RoleReferences;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
-import org.jclouds.vcloud.director.v1_5.features.QueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to {@link AdminQuery} objects.
- *
- * @see AdminQueryApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminQueryAsyncApi extends QueryAsyncApi {
-
- @GET
- @Path("/admin/groups/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> groupsQueryAll();
-
- @GET
- @Path("/admin/groups/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> groupsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/orgs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> orgsQueryAll();
-
- @GET
- @Path("/admin/orgs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> orgsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/rights/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> rightsQueryAll();
-
- @GET
- @Path("/admin/rights/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> rightsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/roles/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> rolesQueryAll();
-
- @GET
- @Path("/admin/roles/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> rolesQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/roles/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<RoleReferences> roleReferencesQueryAll();
-
- @GET
- @Path("/admin/strandedUsers/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> strandedUsersQueryAll();
-
- @GET
- @Path("/admin/strandedUsers/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> strandedUsersQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/users/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> usersQueryAll();
-
- @GET
- @Path("/admin/users/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> usersQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/admin/vdcs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vdcsQueryAll();
-
- @GET
- @Path("/admin/vdcs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vdcsQuery(@QueryParam("filter") String filter);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
index efa3795..ae18e8f 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
@@ -16,17 +16,30 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.AdminVdc;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.features.VdcApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-/**
- * Provides synchronous access to {@link AdminVdc}.
- *
- * @see AdminVdcAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface AdminVdcApi extends VdcApi {
/**
@@ -39,42 +52,80 @@ public interface AdminVdcApi extends VdcApi {
* @return the admin vDC or null if not found
*/
@Override
- AdminVdc get(String vdcUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminVdc get(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
@Override
- AdminVdc get(URI vdcAdminHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminVdc get(@EndpointParam URI vdcAdminHref);
/**
* Modifies a Virtual Data Center. Virtual Data Center could be enabled or disabled.
* Additionally it could have one of these states FAILED_CREATION(-1), NOT_READY(0),
* READY(1), UNKNOWN(1) and UNRECOGNIZED(3).
*/
- Task edit(String vdcUrn, AdminVdc vdc);
-
- Task edit(URI vdcAdminHref, AdminVdc vdc);
+ @PUT
+ @Consumes
+ @Produces(VCloudDirectorMediaType.ADMIN_VDC)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn, AdminVdc vdc);
+
+ @PUT
+ @Consumes
+ @Produces(VCloudDirectorMediaType.ADMIN_VDC)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI vdcAdminHref, AdminVdc vdc);
/**
* Deletes a Virtual Data Center. The Virtual Data Center should be disabled when remove is issued.
* Otherwise error code 400 Bad Request is returned.
*/
// TODO Saw what exception, instead of 400
- Task remove(String vdcUrn);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ Task remove(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
- Task remove(URI vdcAdminHref);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ Task remove(@EndpointParam URI vdcAdminHref);
/**
* Enables a Virtual Data Center. This operation enables disabled Virtual Data Center.
* If it is already enabled this operation has no effect.
*/
- void enable(String vdcUrn);
-
- void enable(URI vdcAdminHref);
+ @POST
+ @Consumes
+ @Path("/action/enable")
+ @JAXBResponseParser
+ void enable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
+
+ @POST
+ @Consumes
+ @Path("/action/enable")
+ @JAXBResponseParser
+ void enable(@EndpointParam URI vdcAdminHref);
/**
* Disables a Virtual Data Center. If the Virtual Data Center is disabled this operation does not
* have an effect.
*/
- void disable(String vdcUrn);
+ @POST
+ @Consumes
+ @Path("/action/disable")
+ @JAXBResponseParser
+ void disable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
- void disable(URI vdcAdminHref);
+ @POST
+ @Consumes
+ @Path("/action/disable")
+ @JAXBResponseParser
+ void disable(@EndpointParam URI vdcAdminHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
deleted file mode 100644
index 74ac1d9..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.AdminVdc;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.features.VdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see AdminVdcApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminVdcAsyncApi extends VdcAsyncApi {
- /**
- * @see AdminVdcApi#get(String)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminVdc> get(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
-
- /**
- * @see AdminVdcApi#edit(String, AdminVdc)
- */
- @PUT
- @Consumes
- @Produces(VCloudDirectorMediaType.ADMIN_VDC)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn, AdminVdc vdc);
-
- /**
- * @see AdminVdcApi#remove(String)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
-
- /**
- * @see AdminVdcApi#enable(String)
- */
- @POST
- @Consumes
- @Path("/action/enable")
- @JAXBResponseParser
- ListenableFuture<Void> enable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
-
- /**
- * @see AdminVdcApi#disable(String)
- */
- @POST
- @Consumes
- @Path("/action/disable")
- @JAXBResponseParser
- ListenableFuture<Void> disable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
-
- /**
- * @see AdminVdcApi#get(URI)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminVdc> get(@EndpointParam URI vdcAdminHref);
-
- /**
- * @see AdminVdcApi#edit(URI, AdminVdc)
- */
- @PUT
- @Consumes
- @Produces(VCloudDirectorMediaType.ADMIN_VDC)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI vdcAdminHref, AdminVdc vdc);
-
- /**
- * @see AdminVdcApi#remove(URI)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam URI vdcAdminHref);
-
- /**
- * @see AdminVdcApi#enable(URI)
- */
- @POST
- @Consumes
- @Path("/action/enable")
- @JAXBResponseParser
- ListenableFuture<Void> enable(@EndpointParam URI vdcAdminHref);
-
- /**
- * @see AdminVdcApi#disable(URI)
- */
- @POST
- @Consumes
- @Path("/action/disable")
- @JAXBResponseParser
- ListenableFuture<Void> disable(@EndpointParam URI vdcAdminHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
index 36292ed..892ff08 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
@@ -16,14 +16,31 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.GROUP;
+
import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Group;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Group} objects.
- *
- * @see GroupAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface GroupApi {
/**
@@ -33,12 +50,23 @@ public interface GroupApi {
* POST /admin/org/{id}/groups
* </pre>
*
- * @param orgUrn the admin org to add the group in
- * @return the addd group
+ * @param adminUrn the admin org to add the group in
+ * @return the added group
*/
- Group addGroupToOrg(Group group, String orgUrn);
-
- Group addGroupToOrg(Group group, URI orgHref);
+ @POST
+ @Path("/groups")
+ @Consumes(GROUP)
+ @Produces(GROUP)
+ @JAXBResponseParser
+ Group addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group,
+ @EndpointParam(parser = URNToAdminHref.class) String adminUrn);
+
+ @POST
+ @Path("/groups")
+ @Consumes(GROUP)
+ @Produces(GROUP)
+ @JAXBResponseParser
+ Group addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group, @EndpointParam URI adminUrn);
/**
* Retrieves a group.
@@ -47,12 +75,20 @@ public interface GroupApi {
* GET /admin/group/{id}
* </pre>
*
- * @param groupString the reference for the group
+ * @param groupUrn the reference for the group
* @return a group
*/
- Group get(String groupUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Group get(@EndpointParam(parser = URNToHref.class) String groupUrn);
- Group get(URI groupHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Group get(@EndpointParam URI groupUri);
/**
* Modifies a group.
@@ -63,9 +99,18 @@ public interface GroupApi {
*
* @return the edited group
*/
- Group edit(String groupUrn, Group group);
+ @PUT
+ @Consumes(GROUP)
+ @Produces(GROUP)
+ @JAXBResponseParser
+ Group edit(@EndpointParam(parser = URNToHref.class) String groupUrn,
+ @BinderParam(BindToXMLPayload.class) Group group);
- Group edit(URI groupHref, Group group);
+ @PUT
+ @Consumes(GROUP)
+ @Produces(GROUP)
+ @JAXBResponseParser
+ Group edit(@EndpointParam URI groupUrn, @BinderParam(BindToXMLPayload.class) Group group);
/**
* Deletes a group.
@@ -74,8 +119,13 @@ public interface GroupApi {
* DELETE /admin/group/{id}
* </pre>
*/
- void remove(String groupUrn);
-
- void remove(URI groupHref);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam(parser = URNToHref.class) String groupUrn);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam URI groupUrn);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
deleted file mode 100644
index 49830ba..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Group;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see GroupApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface GroupAsyncApi {
-
- /**
- * @see GroupApi#addGroupToOrg(Group, String)
- */
- @POST
- @Path("/groups")
- @Consumes(VCloudDirectorMediaType.GROUP)
- @Produces(VCloudDirectorMediaType.GROUP)
- @JAXBResponseParser
- ListenableFuture<Group> addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group,
- @EndpointParam(parser = URNToAdminHref.class) String adminUrn);
-
- /**
- * @see GroupApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Group> get(@EndpointParam(parser = URNToHref.class) String groupUri);
-
- /**
- * @see GroupApi#edit(String, Group)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.GROUP)
- @Produces(VCloudDirectorMediaType.GROUP)
- @JAXBResponseParser
- ListenableFuture<Group> edit(@EndpointParam(parser = URNToHref.class) String groupUrn,
- @BinderParam(BindToXMLPayload.class) Group group);
-
- /**
- * @see GroupApi#remove(String)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam(parser = URNToHref.class) String groupUrn);
-
- /**
- * @see GroupApi#addGroupToOrg(Group, URI)
- */
- @POST
- @Path("/groups")
- @Consumes(VCloudDirectorMediaType.GROUP)
- @Produces(VCloudDirectorMediaType.GROUP)
- @JAXBResponseParser
- ListenableFuture<Group> addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group, @EndpointParam URI adminUrn);
-
- /**
- * @see GroupApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Group> get(@EndpointParam URI groupUri);
-
- /**
- * @see GroupApi#edit(URI, Group)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.GROUP)
- @Produces(VCloudDirectorMediaType.GROUP)
- @JAXBResponseParser
- ListenableFuture<Group> edit(@EndpointParam URI groupUrn, @BinderParam(BindToXMLPayload.class) Group group);
-
- /**
- * @see GroupApi#remove(URI)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam URI groupUrn);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
index 63cec6c..fc5a583 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
@@ -16,14 +16,31 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.USER;
+
import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.User;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link User} objects.
- *
- * @see UserAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface UserApi {
/**
@@ -37,9 +54,19 @@ public interface UserApi {
* the urn for the org
* @return the addd user
*/
- User addUserToOrg(User user, String orgUrn);
+ @POST
+ @Path("/users")
+ @Consumes(USER)
+ @Produces(USER)
+ @JAXBResponseParser User addUserToOrg(@BinderParam(BindToXMLPayload.class) User user,
+ @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- User addUserToOrg(User user, URI orgAdminHref);
+ @POST
+ @Path("/users")
+ @Consumes(USER)
+ @Produces(USER)
+ @JAXBResponseParser
+ User addUserToOrg(@BinderParam(BindToXMLPayload.class) User user, @EndpointParam URI orgAdminHref);
/**
* Retrieves a user. This entity could be enabled or disabled.
@@ -52,9 +79,17 @@ public interface UserApi {
* the reference for the user
* @return a user
*/
- User get(String userUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ User get(@EndpointParam(parser = URNToHref.class) String userUrn);
- User get(URI userHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ User get(@EndpointParam URI userHref);
/**
* Modifies a user. The user object could be enabled or disabled. Note: the lock status cannot be
@@ -68,9 +103,17 @@ public interface UserApi {
* the reference for the user
* @return the modified user
*/
- User edit(String userUrn, User user);
-
- User edit(URI userHref, User user);
+ @PUT
+ @Consumes(USER)
+ @Produces(USER)
+ @JAXBResponseParser
+ User edit(@EndpointParam(parser = URNToHref.class) String userUrn, @BinderParam(BindToXMLPayload.class) User user);
+
+ @PUT
+ @Consumes(USER)
+ @Produces(USER)
+ @JAXBResponseParser
+ User edit(@EndpointParam URI userHref, @BinderParam(BindToXMLPayload.class) User user);
/**
* Deletes a user. Enabled and disabled users could be removed.
@@ -79,9 +122,15 @@ public interface UserApi {
* DELETE /admin/catalog/{id}
* </pre>
*/
- void remove(String userUrn);
-
- void remove(URI userHref);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam(parser = URNToHref.class) String userUrn);
+
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam URI userHref);
/**
* Unlocks a user.
@@ -90,7 +139,15 @@ public interface UserApi {
* POST /admin/user/{id}/action/unlock
* </pre>
*/
- void unlock(String userUrn);
+ @POST
+ @Path("/action/unlock")
+ @Consumes
+ @JAXBResponseParser
+ void unlock(@EndpointParam(parser = URNToHref.class) String userUrn);
- void unlock(URI userHref);
+ @POST
+ @Path("/action/unlock")
+ @Consumes
+ @JAXBResponseParser
+ void unlock(@EndpointParam URI userHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
deleted file mode 100644
index b66026a..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.User;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see UserApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface UserAsyncApi {
-
- /**
- * @see UserApi#addUserToOrg(User, String)
- */
- @POST
- @Path("/users")
- @Consumes(VCloudDirectorMediaType.USER)
- @Produces(VCloudDirectorMediaType.USER)
- @JAXBResponseParser
- ListenableFuture<User> addUserToOrg(@BinderParam(BindToXMLPayload.class) User user,
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see UserApi#addUserToOrg(User, URI)
- */
- @POST
- @Path("/users")
- @Consumes(VCloudDirectorMediaType.USER)
- @Produces(VCloudDirectorMediaType.USER)
- @JAXBResponseParser
- ListenableFuture<User> addUserToOrg(@BinderParam(BindToXMLPayload.class) User user,
- @EndpointParam URI orgAdminHref);
-
- /**
- * @see UserApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<User> get(@EndpointParam(parser = URNToHref.class) String userUrn);
-
- /**
- * @see UserApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<User> get(@EndpointParam URI userHref);
-
- /**
- * @see UserApi#edit(String, User)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.USER)
- @Produces(VCloudDirectorMediaType.USER)
- @JAXBResponseParser
- ListenableFuture<User> edit(@EndpointParam(parser = URNToHref.class) String userUrn,
- @BinderParam(BindToXMLPayload.class) User user);
-
- /**
- * @see UserApi#edit(URI, User)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.USER)
- @Produces(VCloudDirectorMediaType.USER)
- @JAXBResponseParser
- ListenableFuture<User> edit(@EndpointParam URI userHref, @BinderParam(BindToXMLPayload.class) User user);
-
- /**
- * @see UserApi#remove(String)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam(parser = URNToHref.class) String userUrn);
-
- /**
- * @see UserApi#remove(URI)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam URI userHref);
-
- /**
- * @see UserApi#unlock(String)
- */
- @POST
- @Path("/action/unlock")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> unlock(@EndpointParam(parser = URNToHref.class) String userUrn);
-
- /**
- * @see UserApi#unlock(URI)
- */
- @POST
- @Path("/action/unlock")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> unlock(@EndpointParam URI userHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
index 54717f3..a417597 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
@@ -24,35 +24,31 @@ import org.jclouds.domain.Credentials;
import org.jclouds.lifecycle.Closer;
import org.jclouds.location.Provider;
import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
import org.jclouds.rest.Utils;
-import org.jclouds.rest.internal.RestContextImpl;
+import org.jclouds.rest.internal.ApiContextImpl;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorContext;
import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
import com.google.common.base.Supplier;
import com.google.inject.Injector;
import com.google.inject.TypeLiteral;
@Singleton
-public class VCloudDirectorContextImpl extends RestContextImpl<VCloudDirectorApi, VCloudDirectorAsyncApi> implements
- VCloudDirectorContext {
- private final RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> adminContext;
+public class VCloudDirectorContextImpl extends ApiContextImpl<VCloudDirectorApi> implements VCloudDirectorContext {
+ private final ApiContext<VCloudDirectorAdminApi> adminContext;
@Inject
VCloudDirectorContextImpl(@Name String name, ProviderMetadata providerMetadata,
@Provider Supplier<Credentials> creds, Utils utils, Closer closer, Injector injector,
- RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> adminContext) {
- super(name, providerMetadata, creds, utils, closer, injector, TypeLiteral.get(VCloudDirectorApi.class),
- TypeLiteral.get(VCloudDirectorAsyncApi.class));
+ ApiContext<VCloudDirectorAdminApi> adminContext) {
+ super(name, providerMetadata, creds, utils, closer, injector, TypeLiteral.get(VCloudDirectorApi.class));
this.adminContext = adminContext;
}
@Override
- public RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> getAdminContext() {
+ public ApiContext<VCloudDirectorAdminApi> getAdminContext() {
return adminContext;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
index 4d03f84..272789b 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
@@ -17,29 +17,42 @@
package org.jclouds.vcloud.director.v1_5.login;
import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.MapBinder;
+import org.jclouds.rest.annotations.PayloadParam;
+import org.jclouds.rest.annotations.ResponseParser;
+import org.jclouds.vcloud.director.v1_5.binders.BindUserOrgAndPasswordAsBasicAuthorizationHeader;
import org.jclouds.vcloud.director.v1_5.domain.Session;
import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
+import org.jclouds.vcloud.director.v1_5.parsers.SessionWithTokenFromXMLAndHeader;
-/**
- * Provides synchronous access to Session.
- * <p/>
- *
- * @see SessionAsyncApi
- */
public interface SessionApi {
- /**
- * TODO
- */
- SessionWithToken loginUserInOrgWithPassword(URI loginUrl, String user, String org, String password);
+ @POST
+ @Consumes
+ @ResponseParser(SessionWithTokenFromXMLAndHeader.class)
+ @MapBinder(BindUserOrgAndPasswordAsBasicAuthorizationHeader.class)
+ SessionWithToken loginUserInOrgWithPassword(@EndpointParam URI loginUrl,
+ @PayloadParam("user") String user, @PayloadParam("org") String org,
+ @PayloadParam("password") String password);
- /**
- * TODO
- */
- Session getSessionWithToken(URI session, String authenticationToken);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ Session getSessionWithToken(@EndpointParam URI session,
+ @HeaderParam("x-vcloud-authorization") String authenticationToken);
- /**
- * TODO
- */
- void logoutSessionWithToken(URI session, String authenticationToken);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void logoutSessionWithToken(@EndpointParam URI session,
+ @HeaderParam("x-vcloud-authorization") String authenticationToken);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
deleted file mode 100644
index fa9b487..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.login;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.vcloud.director.v1_5.binders.BindUserOrgAndPasswordAsBasicAuthorizationHeader;
-import org.jclouds.vcloud.director.v1_5.domain.Session;
-import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
-import org.jclouds.vcloud.director.v1_5.parsers.SessionWithTokenFromXMLAndHeader;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to Session via their REST API.
- * <p/>
- *
- * @see SessionApi
- */
-public interface SessionAsyncApi {
-
- /**
- * @see SessionApi#loginUserInOrgWithPassword
- */
- @POST
- @Consumes
- @ResponseParser(SessionWithTokenFromXMLAndHeader.class)
- @MapBinder(BindUserOrgAndPasswordAsBasicAuthorizationHeader.class)
- ListenableFuture<SessionWithToken> loginUserInOrgWithPassword(@EndpointParam URI loginUrl,
- @PayloadParam("user") String user, @PayloadParam("org") String org,
- @PayloadParam("password") String password);
-
- /**
- * @see SessionApi#getSessionWithToken
- */
- @GET
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Session> getSessionWithToken(@EndpointParam URI session,
- @HeaderParam("x-vcloud-authorization") String authenticationToken);
-
- /**
- * @see SessionApi#logoutSessionWithToken
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> logoutSessionWithToken(@EndpointParam URI session,
- @HeaderParam("x-vcloud-authorization") String authenticationToken);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
index ba9e856..a4f98d9 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
@@ -16,10 +16,21 @@
*/
package org.jclouds.vcloud.director.v1_5.user;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
+import java.io.Closeable;
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+
import org.jclouds.rest.annotations.Delegate;
import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.Entity;
import org.jclouds.vcloud.director.v1_5.domain.Session;
import org.jclouds.vcloud.director.v1_5.features.CatalogApi;
@@ -34,16 +45,13 @@ import org.jclouds.vcloud.director.v1_5.features.VAppApi;
import org.jclouds.vcloud.director.v1_5.features.VAppTemplateApi;
import org.jclouds.vcloud.director.v1_5.features.VdcApi;
import org.jclouds.vcloud.director.v1_5.features.VmApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
import com.google.inject.Provides;
-/**
- * Provides synchronous access to VCloudDirector.
- *
- * @see VCloudDirectorAsyncApi
- */
-public interface VCloudDirectorApi {
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
+public interface VCloudDirectorApi extends Closeable {
/**
* Redirects to the URL of an entity with the given VCD ID.
@@ -52,7 +60,12 @@ public interface VCloudDirectorApi {
* GET /entity/{id}
* </pre>
*/
- Entity resolveEntity(String urn);
+ @GET
+ @Path("/entity/{id}")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Entity resolveEntity(@PathParam("id") String id);
/**
* @return the current login session
@@ -61,7 +74,7 @@ public interface VCloudDirectorApi {
Session getCurrentSession();
/**
- * @return asynchronous access to query features
+ * @return synchronous access to query features
*/
@Delegate
QueryApi getQueryApi();
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
deleted file mode 100644
index 70fc600..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.user;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.Delegate;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.Entity;
-import org.jclouds.vcloud.director.v1_5.domain.Session;
-import org.jclouds.vcloud.director.v1_5.features.CatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.MetadataAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.NetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.OrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.QueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.TaskAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.UploadAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppTemplateAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VmAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.inject.Provides;
-
-/**
- * Provides asynchronous access to VCloudDirector via their REST API.
- *
- * @see VCloudDirectorApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VCloudDirectorAsyncApi {
-
- /**
- * @see VCloudDirectorApi#resolveEntity(String)
- */
- @GET
- @Path("/entity/{id}")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Entity> resolveEntity(@PathParam("id") String id);
-
- /**
- *
- * @return the current login session
- */
- @Provides
- Session getCurrentSession();
-
- /**
- * @return asynchronous access to query features
- */
- @Delegate
- QueryAsyncApi getQueryApi();
-
- /**
- * @return asynchronous access to {@link Org} features
- */
- @Delegate
- OrgAsyncApi getOrgApi();
-
- /**
- * @return asynchronous access to {@link Task} features
- */
- @Delegate
- TaskAsyncApi getTaskApi();
-
- /**
- * @return asynchronous access to {@link Network} features
- */
- @Delegate
- NetworkAsyncApi getNetworkApi();
-
- /**
- * @return asynchronous access to {@link Catalog} features
- */
- @Delegate
- CatalogAsyncApi getCatalogApi();
-
- /**
- * @return asynchronous access to {@link Media} features
- */
- @Delegate
- CatalogAsyncApi getMediaApi();
-
- /**
- * @return asynchronous access to {@link Vdc} features
- */
- @Delegate
- VdcAsyncApi getVdcApi();
-
- /**
- * @return asynchronous access to Upload features
- */
- @Delegate
- UploadAsyncApi getUploadApi();
-
- /**
- * @return asynchronous access to {@link VApp} features
- */
- @Delegate
- VAppAsyncApi getVAppApi();
-
- /**
- * @return asynchronous access to {@link VAppTemplate} features
- */
- @Delegate
- VAppTemplateAsyncApi getVAppTemplateApi();
-
- /**
- * @return asynchronous access to {@link Vm} features
- */
- @Delegate
- VmAsyncApi getVmApi();
-
- /**
- * @return asynchronous access to {@link Metadata} features
- */
- @Delegate
- MetadataAsyncApi getMetadataApi(@EndpointParam(parser = URNToHref.class) String urn);
-
- @Delegate
- MetadataAsyncApi getMetadataApi(@EndpointParam URI href);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
index 7d03e12..201b1db 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
@@ -17,7 +17,7 @@
package org.jclouds.vcloud.director.v1_5;
import org.jclouds.View;
-import org.jclouds.rest.internal.BaseRestApiMetadataTest;
+import org.jclouds.apis.internal.BaseApiMetadataTest;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
@@ -25,7 +25,7 @@ import com.google.common.reflect.TypeToken;
@Test(groups = "unit", testName = "VCloudDirectorApiMetadataTest")
//TODO: BaseComputeServiceApiMetadataTest
-public class VCloudDirectorApiMetadataTest extends BaseRestApiMetadataTest {
+public class VCloudDirectorApiMetadataTest extends BaseApiMetadataTest {
public VCloudDirectorApiMetadataTest() {
super(new VCloudDirectorApiMetadata(), ImmutableSet.<TypeToken<? extends View>>of());
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
index d522bea..b3576ad 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
@@ -55,13 +55,11 @@ import org.jclouds.apis.BaseContextLiveTest;
import org.jclouds.date.DateService;
import org.jclouds.io.Payloads;
import org.jclouds.logging.Logger;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
import org.jclouds.vcloud.director.testng.FormatApiResultsListener;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorApiMetadata;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorContext;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
import org.jclouds.vcloud.director.v1_5.domain.Catalog;
import org.jclouds.vcloud.director.v1_5.domain.Checks;
import org.jclouds.vcloud.director.v1_5.domain.Link;
@@ -130,7 +128,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends BaseContextLiveTest<
public Predicate<Task> retryTaskSuccess;
public Predicate<Task> retryTaskSuccessLong;
- protected RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> adminContext;
+ protected ApiContext<VCloudDirectorAdminApi> adminContext;
protected Session adminSession;
protected Session session;
@@ -207,8 +205,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends BaseContextLiveTest<
return getRoleReferenceFor(name, adminContext);
}
- public static Reference getRoleReferenceFor(String name,
- RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> adminContext) {
+ public static Reference getRoleReferenceFor(String name, ApiContext<VCloudDirectorAdminApi> adminContext) {
RoleReferences roles = adminContext.getApi().getQueryApi().roleReferencesQueryAll();
// backend in a builder to strip out unwanted xml cruft that the api chokes on
return Reference.builder().fromReference(find(roles.getReferences(), ReferencePredicates.nameEquals(name)))
@@ -739,7 +736,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends BaseContextLiveTest<
@Override
protected TypeToken<VCloudDirectorContext> contextType() {
- return VCloudDirectorApiMetadata.CONTEXT_TOKEN;
+ return TypeToken.of(VCloudDirectorContext.class);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
deleted file mode 100644
index 9104486..0000000
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.internal;
-
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-
-public abstract class BaseVCloudDirectorRestApiExpectTest extends BaseVCloudDirectorExpectTest<VCloudDirectorApi> {
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
index b59441f..183e8cc 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
@@ -20,10 +20,10 @@ import static org.testng.Assert.assertEquals;
import java.net.URI;
-import org.jclouds.apis.ApiMetadata;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
-import org.jclouds.rest.AnonymousRestApiMetadata;
+import org.jclouds.providers.AnonymousProviderMetadata;
+import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Link;
@@ -119,8 +119,7 @@ public class SessionApiExpectTest extends BaseRestApiExpectTest<SessionApi> {
}
@Override
- protected ApiMetadata createApiMetadata() {
- return AnonymousRestApiMetadata.forClientMappedToAsyncClient(SessionApi.class, SessionAsyncApi.class)
- .toBuilder().defaultEndpoint("https://vcloudbeta.bluelock.com/api").build();
+ protected ProviderMetadata createProviderMetadata() {
+ return AnonymousProviderMetadata.forApiOnEndpoint(SessionApi.class, "https://vcloudbeta.bluelock.com/api");
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
index 761012b..e59757d 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
@@ -26,9 +26,8 @@ import org.jclouds.ContextBuilder;
import org.jclouds.apis.BaseContextLiveTest;
import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
import org.jclouds.vcloud.director.testng.FormatApiResultsListener;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants;
import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Listeners;
@@ -42,7 +41,7 @@ import com.google.common.reflect.TypeToken;
*/
@Listeners(FormatApiResultsListener.class)
@Test(groups = { "live", "user" }, testName = "SessionApiLiveTest")
-public class SessionApiLiveTest extends BaseContextLiveTest<RestContext<SessionApi, SessionAsyncApi>> {
+public class SessionApiLiveTest extends BaseContextLiveTest<ApiContext<SessionApi>> {
public SessionApiLiveTest() {
provider = "vcloud-director";
@@ -84,13 +83,14 @@ public class SessionApiLiveTest extends BaseContextLiveTest<RestContext<SessionA
}
@Override
- protected TypeToken<RestContext<SessionApi, SessionAsyncApi>> contextType() {
- return VCloudDirectorConstants.SESSION_CONTEXT_TYPE;
+ protected TypeToken<ApiContext<SessionApi>> contextType() {
+ return new TypeToken<ApiContext<SessionApi>>() {
+ };
}
@Override
protected ProviderMetadata createProviderMetadata() {
- return AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(SessionApi.class, SessionAsyncApi.class, endpoint);
+ return AnonymousProviderMetadata.forApiOnEndpoint(SessionApi.class, endpoint);
}
@Override
[5/5] git commit: JCLOUDS-40 unasync vcloud-director
Posted by ad...@apache.org.
JCLOUDS-40 unasync vcloud-director
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/d7bc430c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/d7bc430c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/d7bc430c
Branch: refs/heads/master
Commit: d7bc430c6d8d66f0c91818f074bef6bba8846b8d
Parents: 0cbcf18
Author: Adrian Cole <ac...@twitter.com>
Authored: Sun Oct 5 12:53:06 2014 -0700
Committer: Adrian Cole <ad...@apache.org>
Committed: Sun Oct 5 13:15:09 2014 -0700
----------------------------------------------------------------------
.../v1_5/VCloudDirectorApiMetadata.java | 22 +-
.../director/v1_5/VCloudDirectorConstants.java | 34 -
.../director/v1_5/VCloudDirectorContext.java | 10 +-
.../v1_5/admin/VCloudDirectorAdminApi.java | 8 +-
.../v1_5/admin/VCloudDirectorAdminAsyncApi.java | 101 --
.../config/VCloudDirectorHttpApiModule.java | 158 +++
.../config/VCloudDirectorRestClientModule.java | 232 -----
.../director/v1_5/features/CatalogApi.java | 102 +-
.../director/v1_5/features/CatalogAsyncApi.java | 143 ---
.../vcloud/director/v1_5/features/MediaApi.java | 99 +-
.../director/v1_5/features/MediaAsyncApi.java | 155 ---
.../director/v1_5/features/MetadataApi.java | 63 +-
.../v1_5/features/MetadataAsyncApi.java | 102 --
.../director/v1_5/features/NetworkApi.java | 29 +-
.../director/v1_5/features/NetworkAsyncApi.java | 58 --
.../vcloud/director/v1_5/features/OrgApi.java | 34 +-
.../director/v1_5/features/OrgAsyncApi.java | 69 --
.../vcloud/director/v1_5/features/QueryApi.java | 143 +--
.../director/v1_5/features/QueryAsyncApi.java | 192 ----
.../vcloud/director/v1_5/features/TaskApi.java | 53 +-
.../director/v1_5/features/TaskAsyncApi.java | 88 --
.../director/v1_5/features/UploadApi.java | 18 +-
.../director/v1_5/features/UploadAsyncApi.java | 41 -
.../vcloud/director/v1_5/features/VAppApi.java | 778 +++++++++++----
.../director/v1_5/features/VAppAsyncApi.java | 624 ------------
.../director/v1_5/features/VAppTemplateApi.java | 268 ++++-
.../v1_5/features/VAppTemplateAsyncApi.java | 363 -------
.../vcloud/director/v1_5/features/VdcApi.java | 187 +++-
.../director/v1_5/features/VdcAsyncApi.java | 252 -----
.../vcloud/director/v1_5/features/VmApi.java | 747 +++++++++++---
.../director/v1_5/features/VmAsyncApi.java | 974 -------------------
.../v1_5/features/admin/AdminCatalogApi.java | 162 ++-
.../features/admin/AdminCatalogAsyncApi.java | 238 -----
.../v1_5/features/admin/AdminNetworkApi.java | 65 +-
.../features/admin/AdminNetworkAsyncApi.java | 108 --
.../v1_5/features/admin/AdminOrgApi.java | 247 ++++-
.../v1_5/features/admin/AdminOrgAsyncApi.java | 355 -------
.../v1_5/features/admin/AdminQueryApi.java | 89 +-
.../v1_5/features/admin/AdminQueryAsyncApi.java | 132 ---
.../v1_5/features/admin/AdminVdcApi.java | 85 +-
.../v1_5/features/admin/AdminVdcAsyncApi.java | 137 ---
.../director/v1_5/features/admin/GroupApi.java | 86 +-
.../v1_5/features/admin/GroupAsyncApi.java | 123 ---
.../director/v1_5/features/admin/UserApi.java | 91 +-
.../v1_5/features/admin/UserAsyncApi.java | 142 ---
.../internal/VCloudDirectorContextImpl.java | 18 +-
.../vcloud/director/v1_5/login/SessionApi.java | 49 +-
.../director/v1_5/login/SessionAsyncApi.java | 75 --
.../director/v1_5/user/VCloudDirectorApi.java | 29 +-
.../v1_5/user/VCloudDirectorAsyncApi.java | 150 ---
.../v1_5/VCloudDirectorApiMetadataTest.java | 4 +-
.../internal/BaseVCloudDirectorApiLiveTest.java | 11 +-
.../BaseVCloudDirectorRestApiExpectTest.java | 23 -
.../v1_5/login/SessionApiExpectTest.java | 9 +-
.../director/v1_5/login/SessionApiLiveTest.java | 12 +-
55 files changed, 2834 insertions(+), 5753 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java
index bf8ce70..d1759a5 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadata.java
@@ -26,20 +26,12 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.PROPERTY_
import java.net.URI;
import java.util.Properties;
-import org.jclouds.rest.internal.BaseRestApiMetadata;
-import org.jclouds.vcloud.director.v1_5.config.VCloudDirectorRestClientModule;
+import org.jclouds.rest.internal.BaseHttpApiMetadata;
+import org.jclouds.vcloud.director.v1_5.config.VCloudDirectorHttpApiModule;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
-import com.google.common.reflect.TypeToken;
+public class VCloudDirectorApiMetadata extends BaseHttpApiMetadata {
-/**
- * Implementation of {@link ApiMetadata} for VCloudDirector 1.5 API
- */
-public class VCloudDirectorApiMetadata extends BaseRestApiMetadata {
-
- public static final TypeToken<VCloudDirectorContext> CONTEXT_TOKEN = typeToken(VCloudDirectorContext.class);
-
@Override
public Builder toBuilder() {
return new Builder().fromApiMetadata(this);
@@ -54,7 +46,7 @@ public class VCloudDirectorApiMetadata extends BaseRestApiMetadata {
}
public static Properties defaultProperties() {
- Properties properties = BaseRestApiMetadata.defaultProperties();
+ Properties properties = BaseHttpApiMetadata.defaultProperties();
/** FIXME this should not be the default */
properties.setProperty(PROPERTY_SESSION_INTERVAL, Integer.toString(30 * 60));
@@ -70,10 +62,10 @@ public class VCloudDirectorApiMetadata extends BaseRestApiMetadata {
return properties;
}
- public static class Builder extends BaseRestApiMetadata.Builder<Builder> {
+ public static class Builder extends BaseHttpApiMetadata.Builder<VCloudDirectorApi, Builder> {
protected Builder() {
- super(VCloudDirectorApi.class, VCloudDirectorAsyncApi.class);
+ super(VCloudDirectorApi.class);
id("vcloud-director")
.name("vCloud Director 1.5 API")
.identityName("User at Organization (user@org)")
@@ -82,7 +74,7 @@ public class VCloudDirectorApiMetadata extends BaseRestApiMetadata {
.version("1.5")
.defaultProperties(VCloudDirectorApiMetadata.defaultProperties())
.context(typeToken(VCloudDirectorContext.class))
- .defaultModule(VCloudDirectorRestClientModule.class);
+ .defaultModule(VCloudDirectorHttpApiModule.class);
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorConstants.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorConstants.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorConstants.java
index df72510..a8bb741 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorConstants.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorConstants.java
@@ -16,12 +16,6 @@
*/
package org.jclouds.vcloud.director.v1_5;
-import org.jclouds.rest.RestContext;
-import org.jclouds.vcloud.director.v1_5.login.SessionAsyncApi;
-import org.jclouds.vcloud.director.v1_5.login.SessionApi;
-
-import com.google.common.reflect.TypeToken;
-
/**
* Constants used by VCloudDirector apis
*/
@@ -37,40 +31,12 @@ public final class VCloudDirectorConstants {
public static final String PROPERTY_VCLOUD_DIRECTOR_VERSION_SCHEMA = "jclouds.vcloud-director.version.schema";
- /** Name of the default org that your vApp will join, if an org isn't explicitly specified. */
- public static final String PROPERTY_VCLOUD_DIRECTOR_DEFAULT_ORG = "jclouds.vcloud-director.defaults.org";
-
- /** Name of the default catalog to query, if it isn't explicitly specified. */
- public static final String PROPERTY_VCLOUD_DIRECTOR_DEFAULT_CATALOG = "jclouds.vcloud-director.defaults.catalog";
-
- /** Name of the VDC that your vApp will join, if a vDC isn't explicitly specified. */
- public static final String PROPERTY_VCLOUD_DIRECTOR_DEFAULT_VDC = "jclouds.vcloud-director.defaults.vdc";
-
- /** Name of the default network, in the default VDC that your vApp will join. */
- public static final String PROPERTY_VCLOUD_DIRECTOR_DEFAULT_NETWORK = "jclouds.vcloud-director.defaults.network";
-
- /** TODO javadoc */
- // public static final String PROPERTY_VCLOUD_DEFAULT_FENCEMODE = "jclouds.vcloud-director.defaults.fencemode";
-
/** TODO javadoc */
public static final String PROPERTY_VCLOUD_DIRECTOR_XML_NAMESPACE = "jclouds.vcloud-director.xml.ns";
/** TODO javadoc */
public static final String PROPERTY_VCLOUD_DIRECTOR_XML_SCHEMA = "jclouds.vcloud-director.xml.schema";
- // TODO put these somewhere else, maybe core?
-
- /** TODO javadoc */
- public static final String PROPERTY_DNS_NAME_LEN_MIN = "jclouds.dns_name_length_min";
-
- /** TODO javadoc */
- public static final String PROPERTY_NS_NAME_LEN_MAX = "jclouds.dns_name_length_max";
-
- /** TODO javadoc */
- public static final TypeToken<RestContext<SessionApi, SessionAsyncApi>> SESSION_CONTEXT_TYPE =
- new TypeToken<RestContext<SessionApi, SessionAsyncApi>>() {
- };
-
private VCloudDirectorConstants() {
throw new AssertionError("intentionally unimplemented");
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorContext.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorContext.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorContext.java
index ea81039..8718bd2 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorContext.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorContext.java
@@ -16,17 +16,15 @@
*/
package org.jclouds.vcloud.director.v1_5;
-import org.jclouds.rest.RestContext;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
+import org.jclouds.rest.ApiContext;
import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
import org.jclouds.vcloud.director.v1_5.internal.VCloudDirectorContextImpl;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
import com.google.inject.ImplementedBy;
@ImplementedBy(VCloudDirectorContextImpl.class)
-public interface VCloudDirectorContext extends RestContext<VCloudDirectorApi, VCloudDirectorAsyncApi> {
-
- RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> getAdminContext();
+public interface VCloudDirectorContext extends ApiContext<VCloudDirectorApi> {
+
+ ApiContext<VCloudDirectorAdminApi> getAdminContext();
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminApi.java
index bd3e308..96641cc 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminApi.java
@@ -20,6 +20,7 @@ import java.net.URI;
import org.jclouds.rest.annotations.Delegate;
import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.features.MetadataApi;
import org.jclouds.vcloud.director.v1_5.features.admin.AdminCatalogApi;
import org.jclouds.vcloud.director.v1_5.features.admin.AdminNetworkApi;
@@ -28,14 +29,11 @@ import org.jclouds.vcloud.director.v1_5.features.admin.AdminQueryApi;
import org.jclouds.vcloud.director.v1_5.features.admin.AdminVdcApi;
import org.jclouds.vcloud.director.v1_5.features.admin.GroupApi;
import org.jclouds.vcloud.director.v1_5.features.admin.UserApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-/**
- * Provides synchronous access to VCloudDirector Admin.
- *
- * @see VCloudDirectorAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface VCloudDirectorAdminApi extends VCloudDirectorApi {
/**
* @return asynchronous access to admin query features
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminAsyncApi.java
deleted file mode 100644
index c55c851..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/admin/VCloudDirectorAdminAsyncApi.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.admin;
-
-import java.net.URI;
-
-import org.jclouds.rest.annotations.Delegate;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.features.MetadataAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminCatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminNetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminOrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminQueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminVdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.GroupAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.UserAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
-
-/**
- * Provides asynchronous access to VCloudDirector Admin via their REST API.
- *
- * @see VCloudDirectorAdminApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VCloudDirectorAdminAsyncApi extends VCloudDirectorAsyncApi {
- /**
- * @return asynchronous access to admin query features
- */
- @Override
- @Delegate
- AdminQueryAsyncApi getQueryApi();
-
-
- /**
- * @return asynchronous access to {@link Catalog} admin features
- */
- @Override
- @Delegate
- AdminCatalogAsyncApi getCatalogApi();
-
- /**
- * @return asynchronous access to admin {@link Group} features
- */
- @Delegate
- GroupAsyncApi getGroupApi();
-
- /**
- * @return asynchronous access to {@link AdminOrg} features
- */
- @Override
- @Delegate
- AdminOrgAsyncApi getOrgApi();
-
- /**
- * @return asynchronous access to {@link User} features
- */
- @Delegate
- UserAsyncApi getUserApi();
-
- /**
- * @return asynchronous access to {@link AdminVdc} features
- */
- @Override
- @Delegate
- AdminVdcAsyncApi getVdcApi();
-
- /**
- * @return asynchronous access to admin {@link Network} features
- */
- @Override
- @Delegate
- AdminNetworkAsyncApi getNetworkApi();
-
- /**
- * @return asynchronous access to {@link Metadata} features
- */
- @Override
- @Delegate
- MetadataAsyncApi getMetadataApi(@EndpointParam(parser = URNToAdminHref.class) String urn);
-
- @Override
- @Delegate
- MetadataAsyncApi getMetadataApi(@EndpointParam URI href);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorHttpApiModule.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorHttpApiModule.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorHttpApiModule.java
new file mode 100644
index 0000000..c78d68e
--- /dev/null
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorHttpApiModule.java
@@ -0,0 +1,158 @@
+/*
+ * 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.vcloud.director.v1_5.config;
+
+import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
+import static org.jclouds.rest.config.BinderUtils.bindHttpApi;
+
+import java.net.URI;
+import java.util.concurrent.TimeUnit;
+
+import org.jclouds.domain.Credentials;
+import org.jclouds.http.HttpErrorHandler;
+import org.jclouds.http.HttpRetryHandler;
+import org.jclouds.http.annotation.ClientError;
+import org.jclouds.http.annotation.Redirection;
+import org.jclouds.http.annotation.ServerError;
+import org.jclouds.location.Provider;
+import org.jclouds.rest.ApiContext;
+import org.jclouds.rest.ConfiguresHttpApi;
+import org.jclouds.rest.config.HttpApiModule;
+import org.jclouds.rest.internal.ApiContextImpl;
+import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
+import org.jclouds.vcloud.director.v1_5.annotations.Login;
+import org.jclouds.vcloud.director.v1_5.domain.Entity;
+import org.jclouds.vcloud.director.v1_5.domain.Session;
+import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
+import org.jclouds.vcloud.director.v1_5.features.OrgApi;
+import org.jclouds.vcloud.director.v1_5.features.TaskApi;
+import org.jclouds.vcloud.director.v1_5.features.VAppApi;
+import org.jclouds.vcloud.director.v1_5.features.VmApi;
+import org.jclouds.vcloud.director.v1_5.handlers.InvalidateSessionAndRetryOn401AndLogoutOnClose;
+import org.jclouds.vcloud.director.v1_5.handlers.VCloudDirectorErrorHandler;
+import org.jclouds.vcloud.director.v1_5.loaders.LoginUserInOrgWithPassword;
+import org.jclouds.vcloud.director.v1_5.loaders.ResolveEntity;
+import org.jclouds.vcloud.director.v1_5.login.SessionApi;
+import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
+
+import com.google.common.base.Function;
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.LoadingCache;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.TypeLiteral;
+import com.google.inject.name.Named;
+
+@ConfiguresHttpApi
+public class VCloudDirectorHttpApiModule extends HttpApiModule<VCloudDirectorApi> {
+ @Override
+ protected void configure() {
+ bind(new TypeLiteral<ApiContext<VCloudDirectorAdminApi>>() {
+ }).to(new TypeLiteral<ApiContextImpl<VCloudDirectorAdminApi>>() {
+ });
+
+ // Bind apis that are used directly in Functions, Predicates and other circumstances
+ bindHttpApi(binder(), OrgApi.class);
+ bindHttpApi(binder(), SessionApi.class);
+ bindHttpApi(binder(), TaskApi.class);
+ bindHttpApi(binder(), VAppApi.class);
+ bindHttpApi(binder(), VmApi.class);
+
+ bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(InvalidateSessionAndRetryOn401AndLogoutOnClose.class);
+
+ super.configure();
+ bindHttpApi(binder(), VCloudDirectorAdminApi.class);
+ }
+
+ @Override
+ protected void bindErrorHandlers() {
+ bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(VCloudDirectorErrorHandler.class);
+ bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(VCloudDirectorErrorHandler.class);
+ bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(VCloudDirectorErrorHandler.class);
+ }
+
+ @Provides
+ @Login
+ protected Supplier<URI> loginUrl(@Provider Supplier<URI> provider) {
+ // TODO: technically, we should implement version api, but this will work
+ return Suppliers.compose(new Function<URI, URI>() {
+
+ @Override
+ public URI apply(URI arg0) {
+ return URI.create(arg0.toASCIIString() + "/sessions");
+ }
+
+ }, provider);
+ }
+
+ @Provides
+ protected Supplier<Session> currentSession(Supplier<SessionWithToken> in) {
+ return Suppliers.compose(new Function<SessionWithToken, Session>() {
+
+ @Override
+ public Session apply(SessionWithToken arg0) {
+ return arg0.getSession();
+ }
+
+ }, in);
+
+ }
+
+ @Provides
+ @Singleton
+ @org.jclouds.vcloud.director.v1_5.annotations.Session
+ protected Supplier<String> sessionToken(Supplier<SessionWithToken> in) {
+ return Suppliers.compose(new Function<SessionWithToken, String>() {
+
+ @Override
+ public String apply(SessionWithToken arg0) {
+ return arg0.getToken();
+ }
+
+ }, in);
+
+ }
+
+ @Provides
+ @Singleton
+ LoadingCache<String, Entity> resolveEntityCache(ResolveEntity loader, @Named(PROPERTY_SESSION_INTERVAL) int seconds) {
+ return CacheBuilder.newBuilder().expireAfterWrite(seconds, TimeUnit.SECONDS).build(loader);
+ }
+
+ @Provides
+ @Singleton
+ LoadingCache<Credentials, SessionWithToken> provideSessionWithTokenCache(LoginUserInOrgWithPassword loader,
+ @Named(PROPERTY_SESSION_INTERVAL) int seconds) {
+ return CacheBuilder.newBuilder().expireAfterWrite(seconds, TimeUnit.SECONDS).build(loader);
+ }
+
+ // Temporary conversion of a cache to a supplier until there is a single-element cache
+ // http://code.google.com/p/guava-libraries/issues/detail?id=872
+ @Provides
+ @Singleton
+ protected Supplier<SessionWithToken> provideSessionWithTokenSupplier(
+ final LoadingCache<Credentials, SessionWithToken> cache, @Provider final Supplier<Credentials> creds) {
+ return new Supplier<SessionWithToken>() {
+ @Override
+ public SessionWithToken get() {
+ return cache.getUnchecked(creds.get());
+ }
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
deleted file mode 100644
index c2447a9..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/config/VCloudDirectorRestClientModule.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.config;
-
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-import static org.jclouds.rest.config.BinderUtils.bindSyncToAsyncHttpApi;
-
-import java.net.URI;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpRetryHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.location.Provider;
-import org.jclouds.rest.ConfiguresRestClient;
-import org.jclouds.rest.RestContext;
-import org.jclouds.rest.config.RestClientModule;
-import org.jclouds.rest.internal.RestContextImpl;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
-import org.jclouds.vcloud.director.v1_5.annotations.Login;
-import org.jclouds.vcloud.director.v1_5.domain.Entity;
-import org.jclouds.vcloud.director.v1_5.domain.Session;
-import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
-import org.jclouds.vcloud.director.v1_5.features.CatalogApi;
-import org.jclouds.vcloud.director.v1_5.features.CatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.MediaApi;
-import org.jclouds.vcloud.director.v1_5.features.MediaAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.MetadataApi;
-import org.jclouds.vcloud.director.v1_5.features.MetadataAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.NetworkApi;
-import org.jclouds.vcloud.director.v1_5.features.NetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.OrgApi;
-import org.jclouds.vcloud.director.v1_5.features.OrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.QueryApi;
-import org.jclouds.vcloud.director.v1_5.features.QueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.TaskApi;
-import org.jclouds.vcloud.director.v1_5.features.TaskAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.UploadApi;
-import org.jclouds.vcloud.director.v1_5.features.UploadAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppTemplateApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppTemplateAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VdcApi;
-import org.jclouds.vcloud.director.v1_5.features.VdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VmApi;
-import org.jclouds.vcloud.director.v1_5.features.VmAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminCatalogApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminCatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminNetworkApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminNetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminOrgApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminOrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminQueryApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminQueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminVdcApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.AdminVdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.GroupApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.GroupAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.UserApi;
-import org.jclouds.vcloud.director.v1_5.features.admin.UserAsyncApi;
-import org.jclouds.vcloud.director.v1_5.handlers.InvalidateSessionAndRetryOn401AndLogoutOnClose;
-import org.jclouds.vcloud.director.v1_5.handlers.VCloudDirectorErrorHandler;
-import org.jclouds.vcloud.director.v1_5.loaders.LoginUserInOrgWithPassword;
-import org.jclouds.vcloud.director.v1_5.loaders.ResolveEntity;
-import org.jclouds.vcloud.director.v1_5.login.SessionApi;
-import org.jclouds.vcloud.director.v1_5.login.SessionAsyncApi;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-import com.google.inject.TypeLiteral;
-import com.google.inject.name.Named;
-
-/**
- * Configures the cloudstack connection.
- */
-@ConfiguresRestClient
-public class VCloudDirectorRestClientModule extends RestClientModule<VCloudDirectorApi, VCloudDirectorAsyncApi> {
-
- public static final Map<Class<?>, Class<?>> USER_DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>>builder()
- .put(CatalogApi.class, CatalogAsyncApi.class)
- .put(MediaApi.class, MediaAsyncApi.class)
- .put(MetadataApi.class, MetadataAsyncApi.class)
- .put(NetworkApi.class, NetworkAsyncApi.class)
- .put(OrgApi.class, OrgAsyncApi.class)
- .put(QueryApi.class, QueryAsyncApi.class)
- .put(TaskApi.class, TaskAsyncApi.class)
- .put(UploadApi.class, UploadAsyncApi.class)
- .put(VAppApi.class, VAppAsyncApi.class)
- .put(VAppTemplateApi.class, VAppTemplateAsyncApi.class)
- .put(VdcApi.class, VdcAsyncApi.class)
- .put(VmApi.class, VmAsyncApi.class)
- .build();
-
- public static final Map<Class<?>, Class<?>> ADMIN_DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>>builder()
- .putAll(USER_DELEGATE_MAP)
- .put(AdminCatalogApi.class, AdminCatalogAsyncApi.class)
- .put(AdminNetworkApi.class, AdminNetworkAsyncApi.class)
- .put(AdminOrgApi.class, AdminOrgAsyncApi.class)
- .put(AdminQueryApi.class, AdminQueryAsyncApi.class)
- .put(AdminVdcApi.class, AdminVdcAsyncApi.class)
- .put(GroupApi.class, GroupAsyncApi.class)
- .put(UserApi.class, UserAsyncApi.class)
- .build();
-
- public VCloudDirectorRestClientModule() {
- super(ADMIN_DELEGATE_MAP);
- }
-
- @Override
- protected void configure() {
- bind(new TypeLiteral<RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi>>() {
- }).to(new TypeLiteral<RestContextImpl<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi>>() {
- });
-
- // Bind apis that are used directly in Functions, Predicates and other circumstances
- bindSyncToAsyncHttpApi(binder(), OrgApi.class, OrgAsyncApi.class);
- bindSyncToAsyncHttpApi(binder(), SessionApi.class, SessionAsyncApi.class);
- bindSyncToAsyncHttpApi(binder(), TaskApi.class, TaskAsyncApi.class);
- bindSyncToAsyncHttpApi(binder(), VAppApi.class, VAppAsyncApi.class);
- bindSyncToAsyncHttpApi(binder(), VmApi.class, VmAsyncApi.class);
-
- bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(InvalidateSessionAndRetryOn401AndLogoutOnClose.class);
-
- super.configure();
- bindSyncToAsyncHttpApi(binder(), VCloudDirectorAdminApi.class, VCloudDirectorAdminAsyncApi.class);
-
- }
-
- @Override
- protected void bindErrorHandlers() {
- bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(VCloudDirectorErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(VCloudDirectorErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(VCloudDirectorErrorHandler.class);
- }
-
- @Provides
- @Login
- protected Supplier<URI> loginUrl(@Provider Supplier<URI> provider) {
- // TODO: technically, we should implement version api, but this will work
- return Suppliers.compose(new Function<URI, URI>() {
-
- @Override
- public URI apply(URI arg0) {
- return URI.create(arg0.toASCIIString() + "/sessions");
- }
-
- }, provider);
- }
-
- @Provides
- protected Supplier<Session> currentSession(Supplier<SessionWithToken> in) {
- return Suppliers.compose(new Function<SessionWithToken, Session>() {
-
- @Override
- public Session apply(SessionWithToken arg0) {
- return arg0.getSession();
- }
-
- }, in);
-
- }
-
- @Provides
- @Singleton
- @org.jclouds.vcloud.director.v1_5.annotations.Session
- protected Supplier<String> sessionToken(Supplier<SessionWithToken> in) {
- return Suppliers.compose(new Function<SessionWithToken, String>() {
-
- @Override
- public String apply(SessionWithToken arg0) {
- return arg0.getToken();
- }
-
- }, in);
-
- }
-
- @Provides
- @Singleton
- LoadingCache<String, Entity> resolveEntityCache(ResolveEntity loader, @Named(PROPERTY_SESSION_INTERVAL) int seconds) {
- return CacheBuilder.newBuilder().expireAfterWrite(seconds, TimeUnit.SECONDS).build(loader);
- }
-
- @Provides
- @Singleton
- LoadingCache<Credentials, SessionWithToken> provideSessionWithTokenCache(LoginUserInOrgWithPassword loader,
- @Named(PROPERTY_SESSION_INTERVAL) int seconds) {
- return CacheBuilder.newBuilder().expireAfterWrite(seconds, TimeUnit.SECONDS).build(loader);
- }
-
- // Temporary conversion of a cache to a supplier until there is a single-element cache
- // http://code.google.com/p/guava-libraries/issues/detail?id=872
- @Provides
- @Singleton
- protected Supplier<SessionWithToken> provideSessionWithTokenSupplier(
- final LoadingCache<Credentials, SessionWithToken> cache, @Provider final Supplier<Credentials> creds) {
- return new Supplier<SessionWithToken>() {
- @Override
- public SessionWithToken get() {
- return cache.getUnchecked(creds.get());
- }
- };
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogApi.java
index 9dfe1d7..004193c 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogApi.java
@@ -16,16 +16,31 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CATALOG_ITEM;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Catalog;
import org.jclouds.vcloud.director.v1_5.domain.CatalogItem;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Catalog} objects.
- *
- * @see CatalogAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface CatalogApi {
/**
@@ -35,13 +50,21 @@ public interface CatalogApi {
* GET /catalog/{id}
* </pre>
*
- * @param catalogUri
+ * @param catalogUrn
* the reference for the catalog
* @return a catalog
*/
- Catalog get(String catalogUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Catalog get(@EndpointParam(parser = URNToHref.class) String catalogUrn);
- Catalog get(URI catalogHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Catalog get(@EndpointParam URI catalogHref);
/**
* Creates a catalog item in a catalog.
@@ -50,15 +73,26 @@ public interface CatalogApi {
* POST /catalog/{id}/catalogItems
* </pre>
*
- * @param catalogUri
+ * @param catalogUrn
* the URI of the catalog
- * @param item
+ * @param catalogItem
* the catalog item to add
- * @return the addd catalog item
+ * @return the added catalog item
*/
- CatalogItem addItem(String catalogUrn, CatalogItem item);
+ @POST
+ @Path("/catalogItems")
+ @Consumes(CATALOG_ITEM)
+ @Produces(CATALOG_ITEM)
+ @JAXBResponseParser
+ CatalogItem addItem(@EndpointParam(parser = URNToHref.class) String catalogUrn,
+ @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
- CatalogItem addItem(URI catalogHref, CatalogItem item);
+ @POST
+ @Path("/catalogItems")
+ @Consumes(CATALOG_ITEM)
+ @Produces(CATALOG_ITEM)
+ @JAXBResponseParser
+ CatalogItem addItem(@EndpointParam URI catalogHref, @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
/**
* Retrieves a catalog item.
@@ -67,13 +101,21 @@ public interface CatalogApi {
* GET /catalogItem/{id}
* </pre>
*
- * @param catalogItemRef
+ * @param catalogItemUrn
* the reference for the catalog item
* @return the catalog item
*/
- CatalogItem getItem(String catalogItemUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ CatalogItem getItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn);
- CatalogItem getItem(URI catalogItemHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ CatalogItem getItem(@EndpointParam URI catalogItemHref);
/**
* Modifies a catalog item.
@@ -82,15 +124,25 @@ public interface CatalogApi {
* PUT /catalogItem/{id}
* </pre>
*
- * @param catalogItemRef
+ * @param catalogItemUrn
* the reference for the catalog item
* @param catalogItem
* the catalog item
* @return the edited catalog item
*/
- CatalogItem editItem(String catalogItemUrn, CatalogItem catalogItem);
+ @PUT
+ @Consumes(CATALOG_ITEM)
+ @Produces(CATALOG_ITEM)
+ @JAXBResponseParser
+ CatalogItem editItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn,
+ @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
- CatalogItem editItem(URI catalogItemHref, CatalogItem catalogItem);
+ @PUT
+ @Consumes(CATALOG_ITEM)
+ @Produces(CATALOG_ITEM)
+ @JAXBResponseParser
+ CatalogItem editItem(@EndpointParam URI catalogItemHref,
+ @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
/**
* Deletes a catalog item.
@@ -99,10 +151,16 @@ public interface CatalogApi {
* DELETE /catalogItem/{id}
* </pre>
*
- * @param catalogItemRef
+ * @param catalogItemUrn
* the reference for the catalog item
*/
- void removeItem(String catalogItemUrn);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void removeItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn);
- void removeItem(URI catalogItemHref);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void removeItem(@EndpointParam URI catalogItemHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogAsyncApi.java
deleted file mode 100644
index 5f518a3..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/CatalogAsyncApi.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Catalog;
-import org.jclouds.vcloud.director.v1_5.domain.CatalogItem;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see CatalogApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface CatalogAsyncApi {
-
- /**
- * @see CatalogApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Catalog> get(@EndpointParam(parser = URNToHref.class) String catalogUrn);
-
- /**
- * @see CatalogApi#addItem(String, CatalogItem)
- */
- @POST
- @Path("/catalogItems")
- @Consumes(VCloudDirectorMediaType.CATALOG_ITEM)
- @Produces(VCloudDirectorMediaType.CATALOG_ITEM)
- @JAXBResponseParser
- ListenableFuture<CatalogItem> addItem(@EndpointParam(parser = URNToHref.class) String catalogUrn,
- @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
-
- /**
- * @see CatalogApi#getItem(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<CatalogItem> getItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn);
-
- /**
- * @see CatalogApi#editItem(String, CatalogItem)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.CATALOG_ITEM)
- @Produces(VCloudDirectorMediaType.CATALOG_ITEM)
- @JAXBResponseParser
- ListenableFuture<CatalogItem> editItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn,
- @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
-
- /**
- * @see CatalogApi#removeItem(String)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> removeItem(@EndpointParam(parser = URNToHref.class) String catalogItemUrn);
-
- /**
- * @see CatalogApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Catalog> get(@EndpointParam URI catalogHref);
-
- /**
- * @see CatalogApi#addItem(URI, CatalogItem)
- */
- @POST
- @Path("/catalogItems")
- @Consumes(VCloudDirectorMediaType.CATALOG_ITEM)
- @Produces(VCloudDirectorMediaType.CATALOG_ITEM)
- @JAXBResponseParser
- ListenableFuture<CatalogItem> addItem(@EndpointParam URI catalogHref,
- @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
-
- /**
- * @see CatalogApi#getItem(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<CatalogItem> getItem(@EndpointParam URI catalogItemHref);
-
- /**
- * @see CatalogApi#editItem(URI, CatalogItem)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.CATALOG_ITEM)
- @Produces(VCloudDirectorMediaType.CATALOG_ITEM)
- @JAXBResponseParser
- ListenableFuture<CatalogItem> editItem(@EndpointParam URI catalogItemHref,
- @BinderParam(BindToXMLPayload.class) CatalogItem catalogItem);
-
- /**
- * @see CatalogApi#removeItem(URI)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> removeItem(@EndpointParam URI catalogItemHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaApi.java
index 8d70c63..a8a3c0c 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaApi.java
@@ -16,18 +16,35 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CLONE_MEDIA_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.MEDIA;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Media;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.params.CloneMediaParams;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Media}.
- *
- * @see MediaAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface MediaApi {
/**
@@ -35,9 +52,17 @@ public interface MediaApi {
*
* @return the media or null if not found
*/
- Media get(String mediaUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Media get(@EndpointParam(parser = URNToHref.class) String mediaUrn);
- Media get(URI mediaHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Media get(@EndpointParam URI mediaHref);
/**
* Creates a media (and present upload link for the floppy/iso file).
@@ -45,18 +70,19 @@ public interface MediaApi {
* @return The response will return a link to transfer site to be able to continue with uploading
* the media.
*/
- Media add(URI uploadHref, Media media);
-
- /**
- * Clones a media into new one. The status of the returned media is UNRESOLVED(0) until the task
- * for cloning finish.
- *
- * @return a Media resource which will contain a task. The user should monitor the contained task
- * status in order to check when it is completed.
- */
- Media clone(String mediaUrn, CloneMediaParams params);
+ @POST
+ @Consumes(MEDIA)
+ @Produces(MEDIA)
+ @JAXBResponseParser
+ Media add(@EndpointParam URI updateHref, @BinderParam(BindToXMLPayload.class) Media media);
- Media clone(URI mediaHref, CloneMediaParams params);
+ @POST
+ @Path("/action/cloneMedia")
+ @Consumes(MEDIA)
+ @Produces(CLONE_MEDIA_PARAMS)
+ @JAXBResponseParser
+ Media clone(@EndpointParam URI mediaHref,
+ @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
/**
* Updates the name/description of a media.
@@ -64,23 +90,48 @@ public interface MediaApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task
* status in order to check when it is completed.
*/
- Task edit(String mediaUrn, Media media);
+ @PUT
+ @Consumes(TASK)
+ @Produces(MEDIA)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToHref.class) String mediaUrn,
+ @BinderParam(BindToXMLPayload.class) Media media);
- Task edit(URI mediaHref, Media media);
+ @PUT
+ @Consumes(TASK)
+ @Produces(MEDIA)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI mediaHref, @BinderParam(BindToXMLPayload.class) Media media);
/**
* Deletes a media.
*/
- Task remove(String mediaUrn);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam(parser = URNToHref.class) String mediaUrn);
- Task remove(URI mediaHref);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam URI mediaHref);
/**
* Retrieves an owner.
*
* @return the owner or null if not found
*/
- Owner getOwner(String mediaUrn);
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam(parser = URNToHref.class) String mediaUrn);
- Owner getOwner(URI mediaHref);
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam URI mediaHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaAsyncApi.java
deleted file mode 100644
index 987e3e9..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MediaAsyncApi.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Media;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneMediaParams;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see MediaApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface MediaAsyncApi {
-
- /**
- * @see MediaApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Media> get(@EndpointParam(parser = URNToHref.class) String mediaUrn);
-
- /**
- * @see MediaApi#add(URI, Media)
- */
- @POST
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.MEDIA)
- @JAXBResponseParser
- ListenableFuture<Media> add(@EndpointParam URI updateHref, @BinderParam(BindToXMLPayload.class) Media media);
-
- /**
- * @see MediaApi#clone(String, CloneMediaParams)
- */
- @POST
- @Path("/action/cloneMedia")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.CLONE_MEDIA_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Media> clone(@EndpointParam(parser = URNToHref.class) String mediaUrn,
- @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
-
- /**
- * @see MediaApi#editMedia(String, Media)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.MEDIA)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToHref.class) String mediaUrn,
- @BinderParam(BindToXMLPayload.class) Media media);
-
- /**
- * @see MediaApi#removeMedia(String)
- */
- @DELETE
- @Consumes(VCloudDirectorMediaType.TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam(parser = URNToHref.class) String mediaUrn);
-
- /**
- * @see MediaApi#getOwner(String)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam(parser = URNToHref.class) String mediaUrn);
-
- /**
- * @see MediaApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Media> get(@EndpointParam URI mediaHref);
-
- /**
- * @see MediaApi#clone(URI, CloneMediaParams)
- */
- @POST
- @Path("/action/cloneMedia")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.CLONE_MEDIA_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Media> clone(@EndpointParam URI mediaHref,
- @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
-
- /**
- * @see MediaApi#editMedia(URI, Media)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.MEDIA)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI mediaHref, @BinderParam(BindToXMLPayload.class) Media media);
-
- /**
- * @see MediaApi#removeMedia(URI)
- */
- @DELETE
- @Consumes(VCloudDirectorMediaType.TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam URI mediaHref);
-
- /**
- * @see MediaApi#getOwner(URI)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam URI mediaHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataApi.java
index 394d4c6..3a7896c 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataApi.java
@@ -16,21 +16,46 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA_VALUE;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+
import java.util.Map;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.ResponseParser;
+import org.jclouds.vcloud.director.v1_5.binders.BindMapAsMetadata;
+import org.jclouds.vcloud.director.v1_5.binders.BindStringAsMetadataValue;
import org.jclouds.vcloud.director.v1_5.domain.Metadata;
import org.jclouds.vcloud.director.v1_5.domain.Task;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.RegexValueParser;
-/**
- * Provides synchronous access to {@link Metadata}.
- *
- * @see MetadataAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface MetadataApi {
/**
* Retrieves an list of metadata
*
* @return a list of metadata
*/
+ @GET
+ @Path("/metadata")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
Metadata get();
/**
@@ -38,7 +63,12 @@ public interface MetadataApi {
*
* @return the metadata value, or null if not found
*/
- String get(String key);
+ @GET
+ @Path("/metadata/{key}")
+ @Consumes
+ @ResponseParser(RegexValueParser.class)
+ @Fallback(NullOnNotFoundOr404.class)
+ String get(@PathParam("key") String key);
/**
* Merges the metadata for a media with the information provided.
@@ -46,7 +76,12 @@ public interface MetadataApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task status in order to
* check when it is completed.
*/
- Task putAll(Map<String, String> metadata);
+ @POST
+ @Path("/metadata")
+ @Consumes(TASK)
+ @Produces(METADATA)
+ @JAXBResponseParser
+ Task putAll(@BinderParam(BindMapAsMetadata.class) Map<String, String> metadata);
/**
* Sets the metadata for the particular key for the media to the value provided. Note: this will replace any existing
@@ -55,7 +90,12 @@ public interface MetadataApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task status in order to
* check when it is completed.
*/
- Task put(String key, String value);
+ @PUT
+ @Path("/metadata/{key}")
+ @Consumes(TASK)
+ @Produces(METADATA_VALUE)
+ @JAXBResponseParser
+ Task put(@PathParam("key") String key, @BinderParam(BindStringAsMetadataValue.class) String metadataValue);
/**
* Deletes a metadata entry.
@@ -63,6 +103,9 @@ public interface MetadataApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task status in order to
* check when it is completed.
*/
- Task remove(String key);
-
+ @DELETE
+ @Path("/metadata/{key}")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataAsyncApi.java
deleted file mode 100644
index 4b5c7d9..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/MetadataAsyncApi.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.util.Map;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.binders.BindMapAsMetadata;
-import org.jclouds.vcloud.director.v1_5.binders.BindStringAsMetadataValue;
-import org.jclouds.vcloud.director.v1_5.domain.Metadata;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.RegexValueParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see MetadataApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface MetadataAsyncApi {
-
- /**
- * @see MetadataApi.Readable#get()
- */
- @GET
- @Path("/metadata")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Metadata> get();
-
- /**
- * @see MetadataApi.Readable#get(String)
- */
- @GET
- @Path("/metadata/{key}")
- @Consumes
- @ResponseParser(RegexValueParser.class)
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<String> get(@PathParam("key") String key);
-
- /**
- * @see MetadataApi.Writable#putAll
- */
- @POST
- @Path("/metadata")
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.METADATA)
- @JAXBResponseParser
- ListenableFuture<Task> putAll(@BinderParam(BindMapAsMetadata.class) Map<String, String> metadata);
-
- /**
- * @see MetadataApi#put
- */
- @PUT
- @Path("/metadata/{key}")
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.METADATA_VALUE)
- @JAXBResponseParser
- ListenableFuture<Task> put(@PathParam("key") String key,
- @BinderParam(BindStringAsMetadataValue.class) String metadataValue);
-
- /**
- * @see MetadataApi.Writable#remove
- */
- @DELETE
- @Path("/metadata/{key}")
- @Consumes(VCloudDirectorMediaType.TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@PathParam("key") String key);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkApi.java
index 9a6c71d..116df53 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkApi.java
@@ -16,15 +16,22 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.network.Network;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Network}.
- *
- * @see NetworkAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface NetworkApi {
/**
@@ -32,7 +39,15 @@ public interface NetworkApi {
*
* @return the network or null if not found
*/
- Network get(String networkUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Network get(@EndpointParam(parser = URNToHref.class) String networkUrn);
- Network get(URI networkHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Network get(@EndpointParam URI networkHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkAsyncApi.java
deleted file mode 100644
index 997ff98..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/NetworkAsyncApi.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.network.Network;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see NetworkApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface NetworkAsyncApi {
-
- /**
- * @see NetworkApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Network> get(@EndpointParam(parser = URNToHref.class) String networkUrn);
-
- /**
- * @see NetworkApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Network> get(@EndpointParam URI networkHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgApi.java
index fc24805..54a7fab 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgApi.java
@@ -16,16 +16,24 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.org.Org;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgList;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Org}.
- *
- * @see OrgAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface OrgApi {
/**
@@ -37,6 +45,10 @@ public interface OrgApi {
*
* @return a list of organizations
*/
+ @GET
+ @Path("/org/")
+ @Consumes
+ @JAXBResponseParser
OrgList list();
/**
@@ -48,7 +60,15 @@ public interface OrgApi {
*
* @return the org or null if not found
*/
- Org get(String orgUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Org get(@EndpointParam(parser = URNToHref.class) String orgUrn);
- Org get(URI orgHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Org get(@EndpointParam URI orgHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgAsyncApi.java
deleted file mode 100644
index 44d3ab9..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/OrgAsyncApi.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.org.Org;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgList;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see OrgApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface OrgAsyncApi {
-
- /**
- * @see OrgApi#list()
- */
- @GET
- @Path("/org/")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<OrgList> list();
-
- /**
- * @see OrgApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Org> get(@EndpointParam(parser = URNToHref.class) String orgUrn);
-
- /**
- * @see OrgApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Org> get(@EndpointParam URI orgHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryApi.java
index 0fb49c7..8c9ed91 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryApi.java
@@ -16,28 +16,22 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.QueryParam;
+
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.QueryParams;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.query.CatalogReferences;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryList;
import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
-import org.jclouds.vcloud.director.v1_5.domain.query.VAppReferences;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-/**
- * Provides synchronous access to the REST API query interface.
- *
- * @see QueryAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface QueryApi {
// TODO Add a typed object for filter syntax, or at least a fluent builder
-
- /**
- * REST API query {@link Link} list.
- *
- * <pre>
- * GET /query
- * </pre>
- */
- QueryList queryList();
/**
* Retrieves a list of entities by using REST API general QueryHandler.
@@ -49,18 +43,25 @@ public interface QueryApi {
* <pre>
* GET /query
* </pre>
- *
- * @see #queryList()
- * @see #query(String, String)
- * @see #query(Integer, Integer, String, String, String)
*/
- QueryResultRecords queryAll(String type);
-
- /** @see #queryAll() */
- QueryResultRecords query(String type, String filter);
-
- /** @see #queryAll() */
- QueryResultRecords query(Integer page, Integer pageSize, String format, String type, String filter);
+ @GET
+ @Path("/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords queryAll(@QueryParam("type") String type);
+
+ @GET
+ @Path("/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords query(@QueryParam("type") String type, @QueryParam("filter") String filter);
+
+ @GET
+ @Path("/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords query(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
+ @QueryParam("format") String format, @QueryParam("type") String type, @QueryParam("filter") String filter);
/**
* Retrieves a list of {@link Catalog}s by using REST API general QueryHandler.
@@ -71,15 +72,12 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/catalogs/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords catalogsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords catalogsQuery(String filter);
-
- /** @see #queryAll() */
- QueryResultRecords catalogsQuery(Integer page, Integer pageSize, String filter);
-
-
/**
* Retrieves a list of {@link CatalogReference}s by using REST API general QueryHandler.
*
@@ -89,14 +87,13 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/catalogs/query")
+ @Consumes
+ @QueryParams(keys = { "format" }, values = { "references" })
+ @JAXBResponseParser
CatalogReferences catalogReferencesQueryAll();
- /** @see #catalogReferencesQueryAll() */
- CatalogReferences catalogReferencesQuery(String filter);
-
- /** @see #catalogReferencesQueryAll() */
- CatalogReferences catalogReferencesQuery(Integer page, Integer pageSize, String filter);
-
/**
* Retrieves a list of {@link VAppTemplate}s by using REST API general QueryHandler.
*
@@ -106,10 +103,17 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/vAppTemplates/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords vAppTemplatesQueryAll();
- /** @see #queryAll() */
- QueryResultRecords vAppTemplatesQuery(String filter);
+ @GET
+ @Path("/vAppTemplates/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords vAppTemplatesQuery(@QueryParam("filter") String filter);
/**
* Retrieves a list of {@link VApp}s by using REST API general QueryHandler.
@@ -120,31 +124,17 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/vApps/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords vAppsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords vAppsQuery(String filter);
-
- /** @see #queryAll() */
- QueryResultRecords vAppsQuery(Integer page, Integer pageSize, String filter);
-
- /**
- * Retrieves a list of {@link VAppReference}s by using REST API general QueryHandler.
- *
- * <pre>
- * GET /vApps/query?format=references
- * </pre>
- *
- * @see #queryAll(String)
- */
- /** @see #queryAll() */
- VAppReferences vAppReferencesQueryAll();
-
- /** @see #queryAll() */
- VAppReferences vAppReferencesQuery(String filter);
-
- /** @see #queryAll() */
- VAppReferences vAppReferencesQuery(Integer page, Integer pageSize, String filter);
+ @GET
+ @Path("/vApps/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords vAppsQuery(@QueryParam("filter") String filter);
/**
* Retrieves a list of {@link Vm}s by using REST API general QueryHandler.
@@ -155,10 +145,17 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/vms/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords vmsQueryAll();
- /** @see #queryAll() */
- QueryResultRecords vmsQuery(String filter);
+ @GET
+ @Path("/vms/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords vmsQuery(@QueryParam("filter") String filter);
/**
* Retrieves a list of {@link Media}s by using REST API general QueryHandler.
@@ -169,9 +166,15 @@ public interface QueryApi {
*
* @see #queryAll(String)
*/
+ @GET
+ @Path("/mediaList/query")
+ @Consumes
+ @JAXBResponseParser
QueryResultRecords mediaListQueryAll();
- /** @see #queryAll() */
- QueryResultRecords mediaListQuery(String filter);
-
+ @GET
+ @Path("/mediaList/query")
+ @Consumes
+ @JAXBResponseParser
+ QueryResultRecords mediaListQuery(@QueryParam("filter") String filter);
}
[4/5] JCLOUDS-40 unasync vcloud-director
Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryAsyncApi.java
deleted file mode 100644
index 42193c2..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/QueryAsyncApi.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.query.CatalogReferences;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryList;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
-import org.jclouds.vcloud.director.v1_5.domain.query.VAppReferences;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see QueryApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface QueryAsyncApi {
-
- /**
- * REST API General queries handler.
- */
- @GET
- @Path("/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryList> queryList();
-
- @GET
- @Path("/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> queryAll(@QueryParam("type") String type);
-
- @GET
- @Path("/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> query(@QueryParam("type") String type, @QueryParam("filter") String filter);
-
- @GET
- @Path("/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> query(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
- @QueryParam("format") String format, @QueryParam("type") String type, @QueryParam("filter") String filter);
-
- /**
- * Retrieves a list of {@link Catalog}s by using REST API general QueryHandler.
- */
- @GET
- @Path("/catalogs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> catalogsQueryAll();
-
- @GET
- @Path("/catalogs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> catalogsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/catalogs/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> catalogsQuery(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
- @QueryParam("filter") String filter);
-
- @GET
- @Path("/catalogs/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<CatalogReferences> catalogReferencesQueryAll();
-
- @GET
- @Path("/catalogs/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<CatalogReferences> catalogReferencesQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/catalogs/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<CatalogReferences> catalogReferencesQuery(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
- @QueryParam("filter") String filter);
-
- @GET
- @Path("/vAppTemplates/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vAppTemplatesQueryAll();
-
- @GET
- @Path("/vAppTemplates/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vAppTemplatesQuery(@QueryParam("filter") String filter);
-
- /**
- * Retrieves a list of {@link VApp}s by using REST API general QueryHandler.
- */
- @GET
- @Path("/vApps/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vAppsQueryAll();
-
- @GET
- @Path("/vApps/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vAppsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/vApps/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vAppsQuery(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
- @QueryParam("filter") String filter);
-
- @GET
- @Path("/vApps/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<VAppReferences> vAppReferencesQueryAll();
-
- @GET
- @Path("/vApps/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<VAppReferences> vAppReferencesQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/vApps/query")
- @Consumes
- @QueryParams(keys = { "format" }, values = { "references" })
- @JAXBResponseParser
- ListenableFuture<VAppReferences> vAppReferencesQuery(@QueryParam("page") Integer page, @QueryParam("pageSize") Integer pageSize,
- @QueryParam("filter") String filter);
-
- @GET
- @Path("/vms/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vmsQueryAll();
-
- @GET
- @Path("/vms/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> vmsQuery(@QueryParam("filter") String filter);
-
- @GET
- @Path("/mediaList/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> mediaListQueryAll();
-
- @GET
- @Path("/mediaList/query")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<QueryResultRecords> mediaListQuery(@QueryParam("filter") String filter);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskApi.java
index 7c045f2..a5b98f2 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskApi.java
@@ -16,15 +16,25 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.TasksList;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Task} objects.
- *
- * @see TaskAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface TaskApi {
/**
@@ -39,7 +49,11 @@ public interface TaskApi {
* {@link VCloudDirectorMediaType#TASKS_LIST}
* @return a list of tasks
*/
- TasksList getTasksList(URI tasksListHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ TasksList getTasksList(@EndpointParam URI tasksListHref);
/**
* Retrieves a task.
@@ -50,18 +64,21 @@ public interface TaskApi {
*
* @return the task or null if not found
*/
- Task get(String taskUrn);
-
- Task get(URI taskHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Task get(@EndpointParam(parser = URNToHref.class) String taskUrn);
- /**
- * Cancels a task.
- *
- * <pre>
- * POST /task/{id}/action/cancel
- * </pre>
- */
- void cancel(String taskUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Task get(@EndpointParam URI taskURI);
- void cancel(URI taskHref);
+ @POST
+ @Path("/action/cancel")
+ @Consumes
+ @JAXBResponseParser
+ void cancel(@EndpointParam URI taskURI);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskAsyncApi.java
deleted file mode 100644
index 3401f0b..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/TaskAsyncApi.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.TasksList;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see TaskApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface TaskAsyncApi {
-
- /**
- * @see TaskApi#getTasksList(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<TasksList> getTasksList(@EndpointParam URI tasksListHref);
-
- /**
- * @see TaskApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Task> get(@EndpointParam(parser = URNToHref.class) String taskUrn);
-
- /**
- * @see TaskApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Task> get(@EndpointParam URI taskURI);
-
- /**
- * @see TaskApi#cancel(String)
- */
- @POST
- @Path("/action/cancel")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> cancel(@EndpointParam(parser = URNToHref.class) String taskUrn);
-
- /**
- * @see TaskApi#cancel(URI)
- */
- @POST
- @Path("/action/cancel")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> cancel(@EndpointParam URI taskURI);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadApi.java
index 0846c28..6b576ad 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadApi.java
@@ -17,18 +17,16 @@
package org.jclouds.vcloud.director.v1_5.features;
import java.net.URI;
+
+import javax.ws.rs.PUT;
+
import org.jclouds.io.Payload;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-/**
- * Provides synchronous access to upload.
- *
- * @see UploadAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface UploadApi {
- /**
- * @return eTag
- */
- void upload(URI location, Payload payload);
-
+ @PUT void upload(@EndpointParam URI location, Payload payload);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadAsyncApi.java
deleted file mode 100644
index b436137..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/UploadAsyncApi.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.PUT;
-
-import org.jclouds.io.Payload;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see UploadApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface UploadAsyncApi {
-
- /**
- * @see UploadApi#put
- */
- @PUT
- ListenableFuture<Void> upload(@EndpointParam URI location, Payload payload);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppApi.java
index 6d1b3d9..250b50a 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppApi.java
@@ -16,10 +16,37 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CONTROL_ACCESS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.DEPLOY_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.LEASE_SETTINGS_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONFIG_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OWNER;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.RECOMPOSE_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.STARTUP_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
import org.jclouds.dmtf.ovf.NetworkSection;
import org.jclouds.dmtf.ovf.StartupSection;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
import org.jclouds.vcloud.director.v1_5.domain.Task;
@@ -30,457 +57,812 @@ import org.jclouds.vcloud.director.v1_5.domain.params.RecomposeVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.params.UndeployVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link VApp} objects.
- *
- * @see VAppAsyncApi
- * @version 1.5
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface VAppApi {
/**
- * Retrieves a {@link VApp}.
- *
- * The {@link VApp} could be in one of these statuses:
- * <ul>
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#FAILED_CREATION
- * FAILED_CREATION(-1)} - Transient entity state, e.g., model object is addd but the
- * corresponding VC backing does not exist yet. This is further sub-categorized in the respective
- * entities.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNRESOLVED
- * UNRESOLVED(0)} - Entity is whole, e.g., VM creation is complete and all the required model
- * objects and VC backings are created.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#RESOLVED
- * RESOLVED(1)} - Entity is resolved.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#DEPLOYED
- * DEPLOYED(2)} - Entity is deployed.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#SUSPENDED
- * SUSPENDED(3)} - All VMs of the vApp are suspended.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#POWERED_ON
- * POWERED_ON(4)} - All VMs of the vApp are powered on.
- * <li>
- * {@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#WAITING_FOR_INPUT
- * WAITING_FOR_INPUT(5)} - VM is pending response on a question.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNKNOWN
- * UNKNOWN(6)} - Entity state could not be retrieved from the inventory, e.g., VM power state is
- * null.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNRECOGNIZED
- * UNRECOGNIZED(7)} - Entity state was retrieved from the inventory but could not be mapped to an
- * internal state.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#POWERED_OFF
- * POWERED_OFF(8)} - All VMs of the vApp are powered off.
- * <li>
- * {@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#INCONSISTENT_STATE
- * INCONSISTENT_STATE(9)} - Apply to VM status, if a vm is {@code POWERED_ON}, or
- * {@code WAITING_FOR_INPUT}, but is undeployed, it is in an inconsistent state.
- * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#MIXED MIXED(10)}
- * - vApp status is set to {@code MIXED} when the VMs in the vApp are in different power states
- * </ul>
- *
- * <pre>
- * GET /vApp/{id}
- * </pre>
- *
- * @since 0.9
+ * @see VAppApi#get(String)
*/
- VApp get(String vAppUrn);
-
- VApp get(URI vAppHref);
+ @GET
+ @Consumes(VAPP)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VApp get(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the name/description of a {@link VApp}.
- *
+ *
* <pre>
* PUT /vApp/{id}
* </pre>
- *
+ *
* @since 0.9
*/
- Task edit(String vAppUrn, VApp vApp);
-
- Task edit(URI vAppHref, VApp vApp);
+ @PUT
+ @Produces(VAPP)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) VApp vApp);
/**
* Deletes a {@link VApp}.
- *
+ *
* <pre>
* DELETE /vApp/{id}
* </pre>
- *
+ *
* @since 0.9
*/
- Task remove(String vAppUrn);
-
- Task remove(URI vAppHref);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the control access of a {@link VApp}.
- *
+ *
* <pre>
* POST /vApp/{id}/action/controlAccess
* </pre>
- *
+ *
* @since 0.9
*/
- ControlAccessParams editControlAccess(String vAppUrn, ControlAccessParams params);
-
- ControlAccessParams editControlAccess(URI vAppHref, ControlAccessParams params);
+ @POST
+ @Path("/action/controlAccess")
+ @Produces(CONTROL_ACCESS)
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ ControlAccessParams editControlAccess(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
/**
* Deploys a {@link VApp}.
- *
+ *
* Deployment means allocation of all resource for a vApp/VM like CPU and memory from a vDC
* resource pool. Deploying a vApp automatically deploys all of the virtual machines it contains.
* As of version 1.5 the operation supports force customization passed with
* {@link DeployVAppParamsType#setForceCustomization(Boolean)} parameter.
- *
+ *
* <pre>
* POST /vApp/{id}/action/deploy
* </pre>
- *
+ *
* @since 0.9
*/
- Task deploy(String vAppUrn, DeployVAppParams params);
-
- Task deploy(URI vAppHref, DeployVAppParams params);
+ @POST
+ @Path("/action/deploy")
+ @Produces(DEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task deploy(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
/**
* Discard suspended state of a {@link VApp}.
- *
+ *
* Discarding suspended state of a vApp automatically discarded suspended states of all of the
* virtual machines it contains.
- *
+ *
* <pre>
* POST /vApp/{id}/action/discardSuspendedState
* </pre>
- *
+ *
* @since 0.9
*/
- Task discardSuspendedState(String vAppUrn);
-
- Task discardSuspendedState(URI vAppHref);
+ @POST
+ @Path("/action/discardSuspendedState")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task discardSuspendedState(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Place the {@link VApp} into maintenance mode.
- *
+ *
* While in maintenance mode, a system admin can operate on the vApp as usual, but end users are
* restricted to read-only operations. Any user-initiated tasks running when the vApp enters
* maintenance mode will continue.
- *
+ *
* <pre>
* POST /vApp/{id}/action/enterMaintenanceMode
* </pre>
- *
+ *
* @since 1.5
*/
- void enterMaintenanceMode(String vAppUrn);
-
- void enterMaintenanceMode(URI vAppHref);
+ @POST
+ @Path("/action/enterMaintenanceMode")
+ @Consumes
+ @JAXBResponseParser
+ void enterMaintenanceMode(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Take the {@link VApp} out of maintenance mode.
- *
+ *
* <pre>
* POST /vApp/{id}/action/exitMaintenanceMode
* </pre>
- *
+ *
* @since 1.5
*/
- void exitMaintenanceMode(String vAppUrn);
-
- void exitMaintenanceMode(URI vAppHref);
+ @POST
+ @Path("/action/exitMaintenanceMode")
+ @Consumes
+ @JAXBResponseParser
+ void exitMaintenanceMode(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Recompose a {@link VApp} by removing its own VMs and/or adding new ones from other vApps or
* vApp templates.
- *
+ *
* To remove VMs you should put their references in elements. The way you add VMs is the same as
* described in compose vApp operation
* {@link VdcApi#composeVApp(String, org.jclouds.vcloud.director.v1_5.domain.ComposeVAppParams)}.
* The status of vApp will be in
* {@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNRESOLVED} until the
* recompose task is finished.
- *
+ *
* <pre>
* POST /vApp/{id}/action/recomposeVApp
* </pre>
- *
+ *
* @since 1.0
*/
- Task recompose(String vAppUrn, RecomposeVAppParams params);
-
- Task recompose(URI vAppHref, RecomposeVAppParams params);
+ @POST
+ @Path("/action/recomposeVApp")
+ @Produces(RECOMPOSE_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task recompose(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) RecomposeVAppParams params);
/**
* Undeploy a {@link VApp}.
- *
+ *
* Undeployment means deallocation of all resources for a vApp/VM like CPU and memory from a vDC
* resource pool. Undeploying a vApp automatically undeploys all of the virtual machines it
* contains.
- *
+ *
* <pre>
* POST /vApp/{id}/action/undeploy
* </pre>
- *
+ *
* @since 0.9
*/
- Task undeploy(String vAppUrn, UndeployVAppParams params);
-
- Task undeploy(URI vAppHref, UndeployVAppParams params);
+ @POST
+ @Path("/action/undeploy")
+ @Produces(UNDEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task undeploy(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
/**
* Retrieves the control access information for a {@link VApp}.
- *
+ *
* The vApp could be shared to everyone or could be shared to specific user, by editing the
* control access values.
- *
+ *
* <pre>
* GET /vApp/{id}/controlAccess
* </pre>
- *
+ *
* @since 0.9
*/
// TODO: revise
- ControlAccessParams getAccessControl(String vAppUrn);
-
- ControlAccessParams getAccessControl(URI vAppHref);
+ @GET
+ @Path("/controlAccess")
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ControlAccessParams getAccessControl(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Powers off a {@link VApp}.
- *
+ *
* If the operation is used over a vApp then all VMs are powered off. This operation is allowed
* only when the vApp/VM is powered on.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/powerOff
* </pre>
- *
+ *
* @since 0.9
*/
- Task powerOff(String vAppUrn);
-
- Task powerOff(URI vAppHref);
+ @POST
+ @Path("/power/action/powerOff")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOff(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Powers on a {@link VApp}.
- *
+ *
* If the operation is used over a vApp then all VMs are powered on. This operation is allowed
* only when the vApp/VM is powered off.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/powerOn
* </pre>
- *
+ *
* @since 0.9
*/
- Task powerOn(String vAppUrn);
-
- Task powerOn(URI vAppHref);
+ @POST
+ @Path("/power/action/powerOn")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOn(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Reboots a {@link VApp}.
- *
+ *
* The vApp/VM should be started in order to reboot it.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/reboot
* </pre>
- *
+ *
* @since 0.9
*/
- Task reboot(String vAppUrn);
-
- Task reboot(URI vAppHref);
+ @POST
+ @Path("/power/action/reboot")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reboot(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Resets a {@link VApp}.
- *
+ *
* If the operation is used over a vApp then all VMs are reset. This operation is allowed only
* when the vApp/VM is powered on.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/reset
* </pre>
- *
+ *
* @since 0.9
*/
- Task reset(String vAppUrn);
-
- Task reset(URI vAppHref);
+ @POST
+ @Path("/power/action/reset")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reset(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Shuts down a {@link VApp}.
- *
+ *
* If the operation is used over a vApp then all VMs are shutdown. This operation is allowed only
* when the vApp/VM is powered on.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/shutdown
* </pre>
- *
+ *
* @since 0.9
*/
- Task shutdown(String vAppUrn);
-
- Task shutdown(URI vAppHref);
+ @POST
+ @Path("/power/action/shutdown")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task shutdown(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Suspends a {@link VApp}.
- *
+ *
* If the operation is used over a vApp then all VMs are suspended. This operation is allowed
* only when the vApp/VM is powered on.
- *
+ *
* <pre>
* POST /vApp/{id}/power/action/suspend
* </pre>
- *
+ *
* @since 0.9
*/
- Task suspend(String vAppUrn);
-
- Task suspend(URI vAppHref);
+ @POST
+ @Path("/power/action/suspend")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task suspend(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Retrieves the lease settings section of a {@link VApp}.
- *
+ *
* <pre>
* GET /vApp/{id}/leaseSettingsSection
* </pre>
- *
+ *
* @since 0.9
*/
- LeaseSettingsSection getLeaseSettingsSection(String vAppUrn);
-
- LeaseSettingsSection getLeaseSettingsSection(URI vAppHref);
+ @GET
+ @Path("/leaseSettingsSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ LeaseSettingsSection getLeaseSettingsSection(
+ @EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the lease settings section of a {@link VApp}.
- *
+ *
* <pre>
* PUT /vApp/{id}/leaseSettingsSection
* </pre>
- *
+ *
* @since 0.9
*/
- Task editLeaseSettingsSection(String vAppUrn, LeaseSettingsSection section);
-
- Task editLeaseSettingsSection(URI vAppHref, LeaseSettingsSection section);
+ @PUT
+ @Path("/leaseSettingsSection")
+ @Produces(LEASE_SETTINGS_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editLeaseSettingsSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) LeaseSettingsSection section);
/**
* Retrieves the network config section of a {@link VApp}.
- *
+ *
* <pre>
* GET /vApp/{id}/networkConfigSection
* </pre>
- *
+ *
* @since 0.9
*/
- NetworkConfigSection getNetworkConfigSection(String vAppUrn);
-
- NetworkConfigSection getNetworkConfigSection(URI vAppHref);
+ @GET
+ @Path("/networkConfigSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConfigSection getNetworkConfigSection(
+ @EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the network config section of a {@link VApp}.
- *
+ *
* <pre>
* PUT /vApp/{id}/networkConfigSection
* </pre>
- *
+ *
* @since 0.9
*/
- Task editNetworkConfigSection(String vAppUrn, NetworkConfigSection section);
-
- Task editNetworkConfigSection(URI vAppHref, NetworkConfigSection section);
+ @PUT
+ @Path("/networkConfigSection")
+ @Produces(NETWORK_CONFIG_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editNetworkConfigSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) NetworkConfigSection section);
/**
* Retrieves the network section of a {@link VApp}.
- *
+ *
* <pre>
* GET /vApp/{id}/networkSection
* </pre>
- *
+ *
* @since 0.9
*/
- NetworkSection getNetworkSection(String vAppUrn);
-
- NetworkSection getNetworkSection(URI vAppHref);
+ @GET
+ @Path("/networkSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkSection getNetworkSection(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Retrieves the owner of a {@link VApp}.
- *
+ *
* <pre>
* GET /vApp/{id}/owner
* </pre>
- *
+ *
* @since 1.5
*/
- Owner getOwner(String vAppUrn);
-
- Owner getOwner(URI vAppHref);
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Changes {@link VApp} owner.
- *
+ *
* <pre>
* PUT /vApp/{id}/owner
* </pre>
- *
+ *
* @since 1.5
*/
- void editOwner(String vAppUrn, Owner owner);
-
- void editOwner(URI vAppHref, Owner owner);
+ @PUT
+ @Path("/owner")
+ @Produces(OWNER)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ void editOwner(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) Owner owner);
/**
* Retrieves {@link VApp} product sections.
- *
+ *
* <pre>
* GET /vApp/{id}/productSections
* </pre>
- *
+ *
* @since 1.5
*/
- ProductSectionList getProductSections(String vAppUrn);
-
- ProductSectionList getProductSections(URI vAppHref);
+ @GET
+ @Path("/productSections")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the product section information of a {@link VApp}.
- *
+ *
* <pre>
* PUT /vApp/{id}/productSections
* </pre>
- *
+ *
* @since 1.5
*/
- Task editProductSections(String vAppUrn, ProductSectionList sectionList);
-
- Task editProductSections(URI vAppHref, ProductSectionList sectionList);
+ @PUT
+ @Path("/productSections")
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
/**
* Retrieves the startup section of a {@link VApp}.
- *
+ *
* <pre>
* GET /vApp/{id}/startupSection
* </pre>
- *
+ *
* @since 0.9
*/
- StartupSection getStartupSection(String vAppUrn);
-
- StartupSection getStartupSection(URI vAppHref);
+ @GET
+ @Path("/startupSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ StartupSection getStartupSection(@EndpointParam(parser = URNToHref.class) String vAppUrn);
/**
* Modifies the startup section of a {@link VApp}.
- *
+ *
* <pre>
* PUT /vApp/{id}/startupSection
* </pre>
- *
+ *
* @since 0.9
*/
- Task editStartupSection(String vAppUrn, StartupSection section);
+ @PUT
+ @Path("/startupSection")
+ @Produces(STARTUP_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editStartupSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
+ @BinderParam(BindToXMLPayload.class) StartupSection section);
- Task editStartupSection(URI vAppHref, StartupSection section);
+ /**
+ * Retrieves a {@link VApp}.
+ *
+ * The {@link VApp} could be in one of these statuses:
+ * <ul>
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#FAILED_CREATION
+ * FAILED_CREATION(-1)} - Transient entity state, e.g., model object is addd but the
+ * corresponding VC backing does not exist yet. This is further sub-categorized in the respective
+ * entities.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNRESOLVED
+ * UNRESOLVED(0)} - Entity is whole, e.g., VM creation is complete and all the required model
+ * objects and VC backings are created.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#RESOLVED
+ * RESOLVED(1)} - Entity is resolved.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#DEPLOYED
+ * DEPLOYED(2)} - Entity is deployed.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#SUSPENDED
+ * SUSPENDED(3)} - All VMs of the vApp are suspended.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#POWERED_ON
+ * POWERED_ON(4)} - All VMs of the vApp are powered on.
+ * <li>
+ * {@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#WAITING_FOR_INPUT
+ * WAITING_FOR_INPUT(5)} - VM is pending response on a question.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNKNOWN
+ * UNKNOWN(6)} - Entity state could not be retrieved from the inventory, e.g., VM power state is
+ * null.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#UNRECOGNIZED
+ * UNRECOGNIZED(7)} - Entity state was retrieved from the inventory but could not be mapped to an
+ * internal state.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#POWERED_OFF
+ * POWERED_OFF(8)} - All VMs of the vApp are powered off.
+ * <li>
+ * {@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#INCONSISTENT_STATE
+ * INCONSISTENT_STATE(9)} - Apply to VM status, if a vm is {@code POWERED_ON}, or
+ * {@code WAITING_FOR_INPUT}, but is undeployed, it is in an inconsistent state.
+ * <li>{@link org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status#MIXED MIXED(10)}
+ * - vApp status is set to {@code MIXED} when the VMs in the vApp are in different power states
+ * </ul>
+ *
+ * <pre>
+ * GET /vApp/{id}
+ * </pre>
+ *
+ * @since 0.9
+ */
+ @GET
+ @Consumes(VAPP)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VApp get(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#edit(URI, VApp)
+ */
+ @PUT
+ @Produces(VAPP)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI vAppHref, @BinderParam(BindToXMLPayload.class) VApp vApp);
+
+ /**
+ * @see VAppApi#remove(URI)
+ */
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editControlAccess(URI, ControlAccessParams)
+ */
+ @POST
+ @Path("/action/controlAccess")
+ @Produces(CONTROL_ACCESS)
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ ControlAccessParams editControlAccess(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
+
+ /**
+ * @see VAppApi#deploy(URI, DeployVAppParams)
+ */
+ @POST
+ @Path("/action/deploy")
+ @Produces(DEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task deploy(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
+
+ /**
+ * @see VAppApi#discardSuspendedState(URI)
+ */
+ @POST
+ @Path("/action/discardSuspendedState")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task discardSuspendedState(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#enterMaintenanceMode(URI)
+ */
+ @POST
+ @Path("/action/enterMaintenanceMode")
+ @Consumes
+ @JAXBResponseParser
+ void enterMaintenanceMode(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#exitMaintenanceMode(URI)
+ */
+ @POST
+ @Path("/action/exitMaintenanceMode")
+ @Consumes
+ @JAXBResponseParser
+ void exitMaintenanceMode(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#recompose(URI, RecomposeVAppParams)
+ */
+ @POST
+ @Path("/action/recomposeVApp")
+ @Produces(RECOMPOSE_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task recompose(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) RecomposeVAppParams params);
+
+ /**
+ * @see VAppApi#undeploy(URI, UndeployVAppParams)
+ */
+ @POST
+ @Path("/action/undeploy")
+ @Produces(UNDEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task undeploy(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
+
+ /**
+ * @see VAppApi#getAccessControl(URI)
+ */
+ @GET
+ @Path("/controlAccess")
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ControlAccessParams getAccessControl(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#powerOff(URI)
+ */
+ @POST
+ @Path("/power/action/powerOff")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOff(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#powerOn(URI)
+ */
+ @POST
+ @Path("/power/action/powerOn")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOn(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#reboot(URI)
+ */
+ @POST
+ @Path("/power/action/reboot")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reboot(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#reset(URI)
+ */
+ @POST
+ @Path("/power/action/reset")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reset(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#shutdown(URI)
+ */
+ @POST
+ @Path("/power/action/shutdown")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task shutdown(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#suspend(URI)
+ */
+ @POST
+ @Path("/power/action/suspend")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task suspend(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#getLeaseSettingsSection(URI)
+ */
+ @GET
+ @Path("/leaseSettingsSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ LeaseSettingsSection getLeaseSettingsSection(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editLeaseSettingsSection(URI, LeaseSettingsSection)
+ */
+ @PUT
+ @Path("/leaseSettingsSection")
+ @Produces(LEASE_SETTINGS_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editLeaseSettingsSection(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) LeaseSettingsSection section);
+
+ /**
+ * @see VAppApi#getNetworkConfigSection(URI)
+ */
+ @GET
+ @Path("/networkConfigSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConfigSection getNetworkConfigSection(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editNetworkConfigSection(URI, NetworkConfigSection)
+ */
+ @PUT
+ @Path("/networkConfigSection")
+ @Produces(NETWORK_CONFIG_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editNetworkConfigSection(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) NetworkConfigSection section);
+
+ /**
+ * @see VAppApi#getNetworkSection(URI)
+ */
+ @GET
+ @Path("/networkSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkSection getNetworkSection(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#getOwner(URI)
+ */
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editOwner(URI, Owner)
+ */
+ @PUT
+ @Path("/owner")
+ @Produces(OWNER)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ void editOwner(@EndpointParam URI vAppHref, @BinderParam(BindToXMLPayload.class) Owner owner);
+
+ /**
+ * @see VAppApi#getProductSections(URI)
+ */
+ @GET
+ @Path("/productSections")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editProductSections(URI, ProductSectionList)
+ */
+ @PUT
+ @Path("/productSections")
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
+
+ /**
+ * @see VAppApi#getStartupSection(URI)
+ */
+ @GET
+ @Path("/startupSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ StartupSection getStartupSection(@EndpointParam URI vAppHref);
+
+ /**
+ * @see VAppApi#editStartupSection(URI, StartupSection)
+ */
+ @PUT
+ @Path("/startupSection")
+ @Produces(STARTUP_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editStartupSection(@EndpointParam URI vAppHref,
+ @BinderParam(BindToXMLPayload.class) StartupSection section);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppAsyncApi.java
deleted file mode 100644
index b42006e..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppAsyncApi.java
+++ /dev/null
@@ -1,624 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CONTROL_ACCESS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.DEPLOY_VAPP_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.LEASE_SETTINGS_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONFIG_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OWNER;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.RECOMPOSE_VAPP_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.STARTUP_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.dmtf.ovf.NetworkSection;
-import org.jclouds.dmtf.ovf.StartupSection;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.VApp;
-import org.jclouds.vcloud.director.v1_5.domain.params.ControlAccessParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.DeployVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.RecomposeVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.UndeployVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see VAppApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VAppAsyncApi {
-
- /**
- * @see VAppApi#get(String)
- */
- @GET
- @Consumes(VAPP)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VApp> get(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#edit(String, VApp)
- */
- @PUT
- @Produces(VAPP)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) VApp vApp);
-
- /**
- * @see VAppApi#remove(String)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editControlAccess(String, ControlAccessParams)
- */
- @POST
- @Path("/action/controlAccess")
- @Produces(CONTROL_ACCESS)
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- ListenableFuture<ControlAccessParams> editControlAccess(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
-
- /**
- * @see VAppApi#deploy(String, DeployVAppParams)
- */
- @POST
- @Path("/action/deploy")
- @Produces(DEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> deploy(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
-
- /**
- * @see VAppApi#discardSuspendedState(String)
- */
- @POST
- @Path("/action/discardSuspendedState")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> discardSuspendedState(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#enterMaintenanceMode(String)
- */
- @POST
- @Path("/action/enterMaintenanceMode")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> enterMaintenanceMode(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#exitMaintenanceMode(String)
- */
- @POST
- @Path("/action/exitMaintenanceMode")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> exitMaintenanceMode(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#recompose(String, RecomposeVAppParams)
- */
- @POST
- @Path("/action/recomposeVApp")
- @Produces(RECOMPOSE_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> recompose(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) RecomposeVAppParams params);
-
- /**
- * @see VAppApi#undeploy(String, UndeployVAppParams)
- */
- @POST
- @Path("/action/undeploy")
- @Produces(UNDEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> undeploy(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
-
- /**
- * @see VAppApi#getAccessControl(String)
- */
- @GET
- @Path("/controlAccess")
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ControlAccessParams> getAccessControl(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#powerOff(String)
- */
- @POST
- @Path("/power/action/powerOff")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOff(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#powerOn(String)
- */
- @POST
- @Path("/power/action/powerOn")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOn(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#reboot(String)
- */
- @POST
- @Path("/power/action/reboot")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reboot(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#reset(String)
- */
- @POST
- @Path("/power/action/reset")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#shutdown(String)
- */
- @POST
- @Path("/power/action/shutdown")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> shutdown(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#suspend(String)
- */
- @POST
- @Path("/power/action/suspend")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> suspend(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#getLeaseSettingsSection(String)
- */
- @GET
- @Path("/leaseSettingsSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<LeaseSettingsSection> getLeaseSettingsSection(
- @EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editLeaseSettingsSection(String, LeaseSettingsSection)
- */
- @PUT
- @Path("/leaseSettingsSection")
- @Produces(LEASE_SETTINGS_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editLeaseSettingsSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) LeaseSettingsSection section);
-
- /**
- * @see VAppApi#getNetworkConfigSection(String)
- */
- @GET
- @Path("/networkConfigSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConfigSection> getNetworkConfigSection(
- @EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editNetworkConfigSection(String, NetworkConfigSection)
- */
- @PUT
- @Path("/networkConfigSection")
- @Produces(NETWORK_CONFIG_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editNetworkConfigSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) NetworkConfigSection section);
-
- /**
- * @see VAppApi#getNetworkSection(String)
- */
- @GET
- @Path("/networkSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkSection> getNetworkSection(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#getOwner(String)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editOwner(String, Owner)
- */
- @PUT
- @Path("/owner")
- @Produces(OWNER)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Void> editOwner(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) Owner owner);
-
- /**
- * @see VAppApi#getProductSections(String)
- */
- @GET
- @Path("/productSections")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editProductSections(String, ProductSectionList)
- */
- @PUT
- @Path("/productSections")
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
-
- /**
- * @see VAppApi#getStartupSection(String)
- */
- @GET
- @Path("/startupSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<StartupSection> getStartupSection(@EndpointParam(parser = URNToHref.class) String vAppUrn);
-
- /**
- * @see VAppApi#editStartupSection(String, StartupSection)
- */
- @PUT
- @Path("/startupSection")
- @Produces(STARTUP_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editStartupSection(@EndpointParam(parser = URNToHref.class) String vAppUrn,
- @BinderParam(BindToXMLPayload.class) StartupSection section);
-
- /**
- * @see VAppApi#get(URI)
- */
- @GET
- @Consumes(VAPP)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VApp> get(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#edit(URI, VApp)
- */
- @PUT
- @Produces(VAPP)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI vAppHref, @BinderParam(BindToXMLPayload.class) VApp vApp);
-
- /**
- * @see VAppApi#remove(URI)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editControlAccess(URI, ControlAccessParams)
- */
- @POST
- @Path("/action/controlAccess")
- @Produces(CONTROL_ACCESS)
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- ListenableFuture<ControlAccessParams> editControlAccess(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
-
- /**
- * @see VAppApi#deploy(URI, DeployVAppParams)
- */
- @POST
- @Path("/action/deploy")
- @Produces(DEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> deploy(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
-
- /**
- * @see VAppApi#discardSuspendedState(URI)
- */
- @POST
- @Path("/action/discardSuspendedState")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> discardSuspendedState(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#enterMaintenanceMode(URI)
- */
- @POST
- @Path("/action/enterMaintenanceMode")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> enterMaintenanceMode(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#exitMaintenanceMode(URI)
- */
- @POST
- @Path("/action/exitMaintenanceMode")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> exitMaintenanceMode(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#recompose(URI, RecomposeVAppParams)
- */
- @POST
- @Path("/action/recomposeVApp")
- @Produces(RECOMPOSE_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> recompose(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) RecomposeVAppParams params);
-
- /**
- * @see VAppApi#undeploy(URI, UndeployVAppParams)
- */
- @POST
- @Path("/action/undeploy")
- @Produces(UNDEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> undeploy(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
-
- /**
- * @see VAppApi#getAccessControl(URI)
- */
- @GET
- @Path("/controlAccess")
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ControlAccessParams> getAccessControl(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#powerOff(URI)
- */
- @POST
- @Path("/power/action/powerOff")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOff(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#powerOn(URI)
- */
- @POST
- @Path("/power/action/powerOn")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOn(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#reboot(URI)
- */
- @POST
- @Path("/power/action/reboot")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reboot(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#reset(URI)
- */
- @POST
- @Path("/power/action/reset")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#shutdown(URI)
- */
- @POST
- @Path("/power/action/shutdown")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> shutdown(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#suspend(URI)
- */
- @POST
- @Path("/power/action/suspend")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> suspend(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#getLeaseSettingsSection(URI)
- */
- @GET
- @Path("/leaseSettingsSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<LeaseSettingsSection> getLeaseSettingsSection(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editLeaseSettingsSection(URI, LeaseSettingsSection)
- */
- @PUT
- @Path("/leaseSettingsSection")
- @Produces(LEASE_SETTINGS_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editLeaseSettingsSection(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) LeaseSettingsSection section);
-
- /**
- * @see VAppApi#getNetworkConfigSection(URI)
- */
- @GET
- @Path("/networkConfigSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConfigSection> getNetworkConfigSection(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editNetworkConfigSection(URI, NetworkConfigSection)
- */
- @PUT
- @Path("/networkConfigSection")
- @Produces(NETWORK_CONFIG_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editNetworkConfigSection(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) NetworkConfigSection section);
-
- /**
- * @see VAppApi#getNetworkSection(URI)
- */
- @GET
- @Path("/networkSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkSection> getNetworkSection(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#getOwner(URI)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editOwner(URI, Owner)
- */
- @PUT
- @Path("/owner")
- @Produces(OWNER)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Void> editOwner(@EndpointParam URI vAppHref, @BinderParam(BindToXMLPayload.class) Owner owner);
-
- /**
- * @see VAppApi#getProductSections(URI)
- */
- @GET
- @Path("/productSections")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editProductSections(URI, ProductSectionList)
- */
- @PUT
- @Path("/productSections")
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
-
- /**
- * @see VAppApi#getStartupSection(URI)
- */
- @GET
- @Path("/startupSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<StartupSection> getStartupSection(@EndpointParam URI vAppHref);
-
- /**
- * @see VAppApi#editStartupSection(URI, StartupSection)
- */
- @PUT
- @Path("/startupSection")
- @Produces(STARTUP_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editStartupSection(@EndpointParam URI vAppHref,
- @BinderParam(BindToXMLPayload.class) StartupSection section);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApi.java
index ab76580..df1ad86 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApi.java
@@ -16,9 +16,33 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CUSTOMIZATION_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.LEASE_SETTINGS_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONFIG_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OWNER;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP_TEMPLATE;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
import org.jclouds.dmtf.ovf.NetworkSection;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
import org.jclouds.vcloud.director.v1_5.domain.References;
@@ -28,12 +52,10 @@ import org.jclouds.vcloud.director.v1_5.domain.dmtf.Envelope;
import org.jclouds.vcloud.director.v1_5.domain.section.CustomizationSection;
import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link VAppTemplate} objects.
- *
- * @see VAppTemplateAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface VAppTemplateApi {
/**
@@ -68,9 +90,17 @@ public interface VAppTemplateApi {
* the String of the template
* @return the requested template
*/
- VAppTemplate get(String templateUrn);
-
- VAppTemplate get(URI templateHref);
+ @GET
+ @Consumes(VAPP_TEMPLATE)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VAppTemplate get(@EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(VAPP_TEMPLATE)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VAppTemplate get(@EndpointParam URI reference);
/**
* Modifies only the name/description of a vApp template.
@@ -86,9 +116,19 @@ public interface VAppTemplateApi {
* @return the task performing the action. This operation is asynchronous and the user should
* monitor the returned task status in order to check when it is completed.
*/
- Task edit(String templateUrn, VAppTemplate template);
-
- Task edit(URI templateHref, VAppTemplate template);
+ @PUT
+ @Produces(VAPP_TEMPLATE)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToHref.class) String templateUrn,
+ @BinderParam(BindToXMLPayload.class) VAppTemplate template);
+
+ @PUT
+ @Produces(VAPP_TEMPLATE)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI templateHref,
+ @BinderParam(BindToXMLPayload.class) VAppTemplate template);
/**
* Deletes a vApp template.
@@ -102,9 +142,15 @@ public interface VAppTemplateApi {
* @return the task performing the action. This operation is asynchronous and the user should
* monitor the returned task status in order to check when it is completed.
*/
- Task remove(String templateUrn);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam String templateUrn);
- Task remove(URI templateHref);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam URI templateUri);
/**
* Disables the download link to the ovf of a vApp template.
@@ -116,9 +162,15 @@ public interface VAppTemplateApi {
* @param templateUrn
* the String of the template
*/
- void disableDownload(String templateUrn);
+ @POST
+ @Path("/action/disableDownload")
+ @JAXBResponseParser
+ void disableDownload(@EndpointParam(parser = URNToHref.class) String templateUrn);
- void disableDownload(URI templateHref);
+ @POST
+ @Path("/action/disableDownload")
+ @JAXBResponseParser
+ void disableDownload(@EndpointParam URI templateHref);
/**
* Enables downloading of the ovf of a vApp template.
@@ -132,9 +184,17 @@ public interface VAppTemplateApi {
* @return the task performing the action. This operation is asynchronous and the user should
* monitor the returned task status in order to check when it is completed.
*/
- Task enableDownload(String templateUrn);
-
- Task enableDownload(URI templateHref);
+ @POST
+ @Consumes(TASK)
+ @Path("/action/enableDownload")
+ @JAXBResponseParser
+ Task enableDownload(@EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @POST
+ @Consumes(TASK)
+ @Path("/action/enableDownload")
+ @JAXBResponseParser
+ Task enableDownload(@EndpointParam URI templateHref);
/**
* Retrieves the customization section of a vApp template.
@@ -147,9 +207,20 @@ public interface VAppTemplateApi {
* the String of the template
* @return the customization section
*/
- CustomizationSection getCustomizationSection(String templateUrn);
-
- CustomizationSection getCustomizationSection(URI templateHref);
+ @GET
+ @Consumes(CUSTOMIZATION_SECTION)
+ @Path("/customizationSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ CustomizationSection getCustomizationSection(
+ @EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(CUSTOMIZATION_SECTION)
+ @Path("/customizationSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ CustomizationSection getCustomizationSection(@EndpointParam URI templateHref);
/**
* Retrieves the lease settings section of a vApp or vApp template
@@ -162,9 +233,20 @@ public interface VAppTemplateApi {
* the String of the template
* @return the lease settings
*/
- LeaseSettingsSection getLeaseSettingsSection(String templateUrn);
-
- LeaseSettingsSection getLeaseSettingsSection(URI templateHref);
+ @GET
+ @Consumes(LEASE_SETTINGS_SECTION)
+ @Path("/leaseSettingsSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ LeaseSettingsSection getLeaseSettingsSection(
+ @EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(LEASE_SETTINGS_SECTION)
+ @Path("/leaseSettingsSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ LeaseSettingsSection getLeaseSettingsSection(@EndpointParam URI templateHref);
/**
* Modifies the lease settings section of a vApp or vApp template.
@@ -175,14 +257,27 @@ public interface VAppTemplateApi {
*
* @param templateUrn
* the String of the template
- * @param section
+ * @param settingsSection
* the new configuration to apply
* @return the task performing the action. This operation is asynchronous and the user should
* monitor the returned task status in order to check when it is completed.
*/
- Task editLeaseSettingsSection(String templateUrn, LeaseSettingsSection section);
-
- Task editLeaseSettingsSection(URI templateHref, LeaseSettingsSection section);
+ @PUT
+ @Produces(LEASE_SETTINGS_SECTION)
+ @Consumes(TASK)
+ @Path("/leaseSettingsSection")
+ @JAXBResponseParser
+ Task editLeaseSettingsSection(
+ @EndpointParam(parser = URNToHref.class) String templateUrn,
+ @BinderParam(BindToXMLPayload.class) LeaseSettingsSection settingsSection);
+
+ @PUT
+ @Produces(LEASE_SETTINGS_SECTION)
+ @Consumes(TASK)
+ @Path("/leaseSettingsSection")
+ @JAXBResponseParser
+ Task editLeaseSettingsSection(@EndpointParam URI templateHref,
+ @BinderParam(BindToXMLPayload.class) LeaseSettingsSection settingsSection);
/**
* Retrieves the network config section of a vApp or vApp template.
@@ -195,9 +290,20 @@ public interface VAppTemplateApi {
* the String of the template
* @return the network config section requested
*/
- NetworkConfigSection getNetworkConfigSection(String templateUrn);
-
- NetworkConfigSection getNetworkConfigSection(URI templateHref);
+ @GET
+ @Consumes(NETWORK_CONFIG_SECTION)
+ @Path("/networkConfigSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConfigSection getNetworkConfigSection(
+ @EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(NETWORK_CONFIG_SECTION)
+ @Path("/networkConfigSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConfigSection getNetworkConfigSection(@EndpointParam URI templateHref);
/**
* Retrieves the network section of a vApp or vApp template.
@@ -210,9 +316,20 @@ public interface VAppTemplateApi {
* the String of the template
* @return the network section requested
*/
- NetworkSection getNetworkSection(String templateUrn);
-
- NetworkSection getNetworkSection(URI templateHref);
+ @GET
+ @Consumes(NETWORK_SECTION)
+ @Path("/networkSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkSection getNetworkSection(
+ @EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(NETWORK_SECTION)
+ @Path("/networkSection")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkSection getNetworkSection(@EndpointParam URI templateHref);
/**
* Retrieves an OVF descriptor of a vApp template.
@@ -229,9 +346,19 @@ public interface VAppTemplateApi {
* the String of the template
* @return the ovf envelope
*/
- Envelope getOvf(String templateUrn);
-
- Envelope getOvf(URI templateHref);
+ @GET
+ @Consumes
+ @Path("/ovf")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Envelope getOvf(@EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes
+ @Path("/ovf")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Envelope getOvf(@EndpointParam URI templateHref);
/**
* Retrieves vApp template owner.
@@ -244,9 +371,19 @@ public interface VAppTemplateApi {
* the String of the template
* @return the owner of the vApp template
*/
- Owner getOwner(String templateUrn);
-
- Owner getOwner(URI templateHref);
+ @GET
+ @Consumes(OWNER)
+ @Path("/owner")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(OWNER)
+ @Path("/owner")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam URI templateHref);
/**
* Retrieves VAppTemplate/VM product sections
@@ -259,9 +396,20 @@ public interface VAppTemplateApi {
* the String of the template
* @return the product sections
*/
- ProductSectionList getProductSections(String templateUrn);
-
- ProductSectionList getProductSections(URI templateHref);
+ @GET
+ @Consumes(PRODUCT_SECTION_LIST)
+ @Path("/productSections")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(
+ @EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes(PRODUCT_SECTION_LIST)
+ @Path("/productSections")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(@EndpointParam URI templateHref);
/**
* Modifies the product sections of a vApp or vApp template.
@@ -275,9 +423,21 @@ public interface VAppTemplateApi {
* @return the task performing the action. This operation is asynchronous and the user should
* monitor the returned task status in order to check when it is completed.
*/
- Task editProductSections(String templateUrn, ProductSectionList sections);
-
- Task editProductSections(URI templateHref, ProductSectionList sections);
+ @PUT
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @Path("/productSections")
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam(parser = URNToHref.class) String templateUrn,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sections);
+
+ @PUT
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @Path("/productSections")
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam URI templateHref,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sections);
/**
* <pre>
@@ -288,7 +448,17 @@ public interface VAppTemplateApi {
* the String of the template
* @return shadowVM references
*/
- References getShadowVms(String templateUrn);
-
- References getShadowVms(URI templateHref);
+ @GET
+ @Consumes
+ @Path("/shadowVms")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ References getShadowVms(@EndpointParam(parser = URNToHref.class) String templateUrn);
+
+ @GET
+ @Consumes
+ @Path("/shadowVms")
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ References getShadowVms(@EndpointParam URI templateHref);
}
[2/5] JCLOUDS-40 unasync vcloud-director
Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmAsyncApi.java
deleted file mode 100644
index 908197e..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmAsyncApi.java
+++ /dev/null
@@ -1,974 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ANY_IMAGE;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.DEPLOY_VAPP_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.GUEST_CUSTOMIZATION_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.MEDIA_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONNECTION_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OPERATING_SYSTEM_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OVF_RASD_ITEM;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OVF_RASD_ITEMS_LIST;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.RELOCATE_VM_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VIRTUAL_HARDWARE_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VM;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VM_PENDING_ANSWER;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
-import org.jclouds.vcloud.director.v1_5.domain.RasdItemsList;
-import org.jclouds.vcloud.director.v1_5.domain.ScreenTicket;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.Vm;
-import org.jclouds.vcloud.director.v1_5.domain.VmPendingQuestion;
-import org.jclouds.vcloud.director.v1_5.domain.VmQuestionAnswer;
-import org.jclouds.vcloud.director.v1_5.domain.dmtf.RasdItem;
-import org.jclouds.vcloud.director.v1_5.domain.params.DeployVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.MediaInsertOrEjectParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.RelocateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.UndeployVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.section.GuestCustomizationSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConnectionSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.OperatingSystemSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.RuntimeInfoSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.VirtualHardwareSection;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.ReturnPayloadBytes;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see VmApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VmAsyncApi {
-
- /**
- * @see VmApi#get(String)
- */
- @GET
- @Consumes(VM)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Vm> get(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#edit(String, Vm)
- */
- @PUT
- @Produces(VM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) Vm vApp);
-
- /**
- * @see VmApi#remove(String)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#consolidate(String)
- */
- @POST
- @Path("/action/consolidate")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> consolidate(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#deploy(String, DeployVAppParams)
- */
- @POST
- @Path("/action/deploy")
- @Produces(DEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> deploy(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
-
- /**
- * @see VmApi#discardSuspendedState(String)
- */
- @POST
- @Path("/action/discardSuspendedState")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> discardSuspendedState(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#installVMwareTools(String)
- */
- @POST
- @Path("/action/installVMwareTools")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> installVMwareTools(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#relocate(String, RelocateParams)
- */
- @POST
- @Path("/action/relocate")
- @Produces(RELOCATE_VM_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> relocate(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RelocateParams params);
-
- /**
- * @see VmApi#undeploy(String, UndeployVAppParams)
- */
- @POST
- @Path("/action/undeploy")
- @Produces(UNDEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> undeploy(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
-
- /**
- * @see VmApi#upgradeHardwareVersion(String)
- */
- @POST
- @Path("/action/upgradeHardwareVersion")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> upgradeHardwareVersion(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#powerOff(String)
- */
- @POST
- @Path("/power/action/powerOff")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOff(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#powerOn(String)
- */
- @POST
- @Path("/power/action/powerOn")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOn(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#reboot(String)
- */
- @POST
- @Path("/power/action/reboot")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reboot(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#reset(String)
- */
- @POST
- @Path("/power/action/reset")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#shutdown(String)
- */
- @POST
- @Path("/power/action/shutdown")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> shutdown(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#suspend(String)
- */
- @POST
- @Path("/power/action/suspend")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> suspend(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#getGuestCustomizationSection(String)
- */
- @GET
- @Path("/guestCustomizationSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<GuestCustomizationSection> getGuestCustomizationSection(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editGuestCustomizationSection(String, GuestCustomizationSection)
- */
- @PUT
- @Path("/guestCustomizationSection")
- @Produces(GUEST_CUSTOMIZATION_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editGuestCustomizationSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) GuestCustomizationSection section);
-
- /**
- * @see VmApi#ejectMedia(String, MediaInsertOrEjectParams)
- */
- @POST
- @Path("/media/action/ejectMedia")
- @Produces(MEDIA_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> ejectMedia(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
-
- /**
- * @see VmApi#insertMedia(String, MediaInsertOrEjectParams)
- */
- @POST
- @Path("/media/action/insertMedia")
- @Produces(MEDIA_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> insertMedia(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
-
- /**
- * @see VmApi#getNetworkConnectionSection(String)
- */
- @GET
- @Path("/networkConnectionSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConnectionSection> getNetworkConnectionSection(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editNetworkConnectionSection(String, NetworkConnectionSection)
- */
- @PUT
- @Path("/networkConnectionSection")
- @Produces(NETWORK_CONNECTION_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editNetworkConnectionSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) NetworkConnectionSection section);
-
- /**
- * @see VmApi#getOperatingSystemSection(String)
- */
- @GET
- @Path("/operatingSystemSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OperatingSystemSection> getOperatingSystemSection(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editOperatingSystemSection(String, OperatingSystemSection)
- */
- @PUT
- @Path("/operatingSystemSection")
- @Produces(OPERATING_SYSTEM_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editOperatingSystemSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) OperatingSystemSection section);
-
- /**
- * @see VmApi#getProductSections(String)
- */
- @GET
- @Path("/productSections")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editProductSections(String, ProductSectionList)
- */
- @PUT
- @Path("/productSections")
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
-
- /**
- * @see VmApi#getPendingQuestion(String)
- */
- @GET
- @Path("/question")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VmPendingQuestion> getPendingQuestion(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#answerQuestion(String, VmQuestionAnswer)
- */
- @POST
- @Path("/question/action/answer")
- @Produces(VM_PENDING_ANSWER)
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> answerQuestion(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) VmQuestionAnswer answer);
-
- /**
- * @see VmApi#getRuntimeInfoSection(String)
- */
- @GET
- @Path("/runtimeInfoSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RuntimeInfoSection> getRuntimeInfoSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#getScreenImage(String)
- */
- @GET
- @Path("/screen")
- @Consumes(ANY_IMAGE)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ReturnPayloadBytes.class)
- ListenableFuture<byte[]> getScreenImage(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#getScreenTicket(String)
- */
- @POST
- @Path("/screen/action/acquireTicket")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ScreenTicket> getScreenTicket(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#getVirtualHardwareSection(String)
- */
- @GET
- @Path("/virtualHardwareSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VirtualHardwareSection> getVirtualHardwareSection(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSection(String, VirtualHardwareSection)
- */
- @PUT
- @Path("/virtualHardwareSection")
- @Produces(VIRTUAL_HARDWARE_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) VirtualHardwareSection section);
-
- /**
- * @see VmApi#getVirtualHardwareSectionCpu(String)
- */
- @GET
- @Path("/virtualHardwareSection/cpu")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItem> getVirtualHardwareSectionCpu(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSectionCpu(String, ResourceAllocationSettingData)
- */
- @PUT
- @Path("/virtualHardwareSection/cpu")
- @Produces(OVF_RASD_ITEM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionCpu(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RasdItem rasd);
-
- /**
- * @see VmApi#getVirtualHardwareSectionDisks(String)
- */
- @GET
- @Path("/virtualHardwareSection/disks")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionDisks(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSectionDisks(String, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/disks")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionDisks(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-
- /**
- * @see VmApi#getVirtualHardwareSectionMedia(String)
- */
- @GET
- @Path("/virtualHardwareSection/media")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionMedia(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#getVirtualHardwareSectionMemory(String)
- */
- @GET
- @Path("/virtualHardwareSection/memory")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItem> getVirtualHardwareSectionMemory(@EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSectionMemory(String, ResourceAllocationSettingData)
- */
- @PUT
- @Path("/virtualHardwareSection/memory")
- @Produces(OVF_RASD_ITEM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionMemory(@EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RasdItem rasd);
-
- /**
- * @see VmApi#getVirtualHardwareSectionNetworkCards(String)
- */
- @GET
- @Path("/virtualHardwareSection/networkCards")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionNetworkCards(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSectionNetworkCards(String, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/networkCards")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionNetworkCards(
- @EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-
- /**
- * @see VmApi#getVirtualHardwareSectionSerialPorts(String)
- */
- @GET
- @Path("/virtualHardwareSection/serialPorts")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionSerialPorts(
- @EndpointParam(parser = URNToHref.class) String vmUrn);
-
- /**
- * @see VmApi#editVirtualHardwareSectionSerialPorts(String, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/serialPorts")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionSerialPorts(
- @EndpointParam(parser = URNToHref.class) String vmUrn,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-
- /**
- * @see VmApi#get(URI)
- */
- @GET
- @Consumes(VM)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Vm> get(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#edit(URI, Vm)
- */
- @PUT
- @Produces(VM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) Vm vApp);
-
- /**
- * @see VmApi#remove(URI)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#consolidate(URI)
- */
- @POST
- @Path("/action/consolidate")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> consolidate(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#deploy(URI, DeployVAppParams)
- */
- @POST
- @Path("/action/deploy")
- @Produces(DEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> deploy(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
-
- /**
- * @see VmApi#discardSuspendedState(URI)
- */
- @POST
- @Path("/action/discardSuspendedState")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> discardSuspendedState(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#installVMwareTools(URI)
- */
- @POST
- @Path("/action/installVMwareTools")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> installVMwareTools(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#relocate(URI, RelocateParams)
- */
- @POST
- @Path("/action/relocate")
- @Produces(RELOCATE_VM_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> relocate(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) RelocateParams params);
-
- /**
- * @see VmApi#undeploy(URI, UndeployVAppParams)
- */
- @POST
- @Path("/action/undeploy")
- @Produces(UNDEPLOY_VAPP_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> undeploy(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
-
- /**
- * @see VmApi#upgradeHardwareVersion(URI)
- */
- @POST
- @Path("/action/upgradeHardwareVersion")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> upgradeHardwareVersion(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#powerOff(URI)
- */
- @POST
- @Path("/power/action/powerOff")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOff(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#powerOn(URI)
- */
- @POST
- @Path("/power/action/powerOn")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> powerOn(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#reboot(URI)
- */
- @POST
- @Path("/power/action/reboot")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reboot(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#reset(URI)
- */
- @POST
- @Path("/power/action/reset")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#shutdown(URI)
- */
- @POST
- @Path("/power/action/shutdown")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> shutdown(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#suspend(URI)
- */
- @POST
- @Path("/power/action/suspend")
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> suspend(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#getGuestCustomizationSection(URI)
- */
- @GET
- @Path("/guestCustomizationSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<GuestCustomizationSection> getGuestCustomizationSection(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editGuestCustomizationSection(URI, GuestCustomizationSection)
- */
- @PUT
- @Path("/guestCustomizationSection")
- @Produces(GUEST_CUSTOMIZATION_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editGuestCustomizationSection(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) GuestCustomizationSection section);
-
- /**
- * @see VmApi#ejectMedia(URI, MediaInsertOrEjectParams)
- */
- @POST
- @Path("/media/action/ejectMedia")
- @Produces(MEDIA_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> ejectMedia(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
-
- /**
- * @see VmApi#insertMedia(URI, MediaInsertOrEjectParams)
- */
- @POST
- @Path("/media/action/insertMedia")
- @Produces(MEDIA_PARAMS)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> insertMedia(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
-
- /**
- * @see VmApi#getNetworkConnectionSection(URI)
- */
- @GET
- @Path("/networkConnectionSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConnectionSection> getNetworkConnectionSection(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editNetworkConnectionSection(URI, NetworkConnectionSection)
- */
- @PUT
- @Path("/networkConnectionSection")
- @Produces(NETWORK_CONNECTION_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editNetworkConnectionSection(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) NetworkConnectionSection section);
-
- /**
- * @see VmApi#getOperatingSystemSection(URI)
- */
- @GET
- @Path("/operatingSystemSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OperatingSystemSection> getOperatingSystemSection(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editOperatingSystemSection(URI, OperatingSystemSection)
- */
- @PUT
- @Path("/operatingSystemSection")
- @Produces(OPERATING_SYSTEM_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editOperatingSystemSection(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) OperatingSystemSection section);
-
- /**
- * @see VmApi#getProductSections(URI)
- */
- @GET
- @Path("/productSections")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editProductSections(URI, ProductSectionList)
- */
- @PUT
- @Path("/productSections")
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
-
- /**
- * @see VmApi#getPendingQuestion(URI)
- */
- @GET
- @Path("/question")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VmPendingQuestion> getPendingQuestion(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#answerQuestion(URI, VmQuestionAnswer)
- */
- @POST
- @Path("/question/action/answer")
- @Produces(VM_PENDING_ANSWER)
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> answerQuestion(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) VmQuestionAnswer answer);
-
- /**
- * @see VmApi#getRuntimeInfoSection(URI)
- */
- @GET
- @Path("/runtimeInfoSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RuntimeInfoSection> getRuntimeInfoSection(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#getScreenImage(URI)
- */
- @GET
- @Path("/screen")
- @Consumes(ANY_IMAGE)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ReturnPayloadBytes.class)
- ListenableFuture<byte[]> getScreenImage(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#getScreenTicket(URI)
- */
- @POST
- @Path("/screen/action/acquireTicket")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ScreenTicket> getScreenTicket(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#getVirtualHardwareSection(URI)
- */
- @GET
- @Path("/virtualHardwareSection")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VirtualHardwareSection> getVirtualHardwareSection(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSection(URI, VirtualHardwareSection)
- */
- @PUT
- @Path("/virtualHardwareSection")
- @Produces(VIRTUAL_HARDWARE_SECTION)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSection(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) VirtualHardwareSection section);
-
- /**
- * @see VmApi#getVirtualHardwareSectionCpu(URI)
- */
- @GET
- @Path("/virtualHardwareSection/cpu")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItem> getVirtualHardwareSectionCpu(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSectionCpu(URI, ResourceAllocationSettingData)
- */
- @PUT
- @Path("/virtualHardwareSection/cpu")
- @Produces(OVF_RASD_ITEM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionCpu(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) RasdItem rasd);
-
- /**
- * @see VmApi#getVirtualHardwareSectionDisks(URI)
- */
- @GET
- @Path("/virtualHardwareSection/disks")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionDisks(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSectionDisks(URI, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/disks")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionDisks(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-
- /**
- * @see VmApi#getVirtualHardwareSectionMedia(URI)
- */
- @GET
- @Path("/virtualHardwareSection/media")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionMedia(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#getVirtualHardwareSectionMemory(URI)
- */
- @GET
- @Path("/virtualHardwareSection/memory")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItem> getVirtualHardwareSectionMemory(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSectionMemory(URI, ResourceAllocationSettingData)
- */
- @PUT
- @Path("/virtualHardwareSection/memory")
- @Produces(OVF_RASD_ITEM)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionMemory(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) RasdItem rasd);
-
- /**
- * @see VmApi#getVirtualHardwareSectionNetworkCards(URI)
- */
- @GET
- @Path("/virtualHardwareSection/networkCards")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionNetworkCards(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSectionNetworkCards(URI, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/networkCards")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionNetworkCards(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-
- /**
- * @see VmApi#getVirtualHardwareSectionSerialPorts(URI)
- */
- @GET
- @Path("/virtualHardwareSection/serialPorts")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<RasdItemsList> getVirtualHardwareSectionSerialPorts(@EndpointParam URI vmHref);
-
- /**
- * @see VmApi#editVirtualHardwareSectionSerialPorts(URI, RasdItemsList)
- */
- @PUT
- @Path("/virtualHardwareSection/serialPorts")
- @Produces(OVF_RASD_ITEMS_LIST)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> editVirtualHardwareSectionSerialPorts(@EndpointParam URI vmHref,
- @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogApi.java
index 72d9839..275a5b0 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogApi.java
@@ -16,19 +16,37 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ADMIN_CATALOG;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CONTROL_ACCESS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PUBLISH_CATALOG_PARAMS;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
+import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.AdminCatalog;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.params.ControlAccessParams;
import org.jclouds.vcloud.director.v1_5.domain.params.PublishCatalogParams;
import org.jclouds.vcloud.director.v1_5.features.CatalogApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-/**
- * Provides synchronous access to {@link AdminCatalog} objects.
- *
- * @see AdminCatalogAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface AdminCatalogApi extends CatalogApi {
/**
@@ -42,9 +60,21 @@ public interface AdminCatalogApi extends CatalogApi {
* the urn for the org
* @return contains a , which will point to the running asynchronous creation operation.
*/
- AdminCatalog addCatalogToOrg(AdminCatalog catalog, String orgUrn);
+ @POST
+ @Path("/catalogs")
+ @Consumes(ADMIN_CATALOG)
+ @Produces(ADMIN_CATALOG)
+ @JAXBResponseParser
+ AdminCatalog addCatalogToOrg(@BinderParam(BindToXMLPayload.class) AdminCatalog catalog,
+ @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- AdminCatalog addCatalogToOrg(AdminCatalog catalog, URI catalogAdminHref);
+ @POST
+ @Path("/catalogs")
+ @Consumes(ADMIN_CATALOG)
+ @Produces(ADMIN_CATALOG)
+ @JAXBResponseParser
+ AdminCatalog addCatalogToOrg(@BinderParam(BindToXMLPayload.class) AdminCatalog catalog,
+ @EndpointParam URI orgHref);
/**
* Retrieves a catalog.
@@ -58,10 +88,18 @@ public interface AdminCatalogApi extends CatalogApi {
* @return a catalog
*/
@Override
- AdminCatalog get(String catalogUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminCatalog get(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
@Override
- AdminCatalog get(URI catalogAdminHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminCatalog get(@EndpointParam URI orgHref);
/**
* Modifies a catalog. A catalog could be published or unpublished. The IsPublished property is
@@ -74,9 +112,19 @@ public interface AdminCatalogApi extends CatalogApi {
*
* @return the edited catalog
*/
- AdminCatalog edit(String catalogUrn, AdminCatalog catalog);
+ @PUT
+ @Consumes(ADMIN_CATALOG)
+ @Produces(ADMIN_CATALOG)
+ @JAXBResponseParser
+ AdminCatalog edit(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
+ @BinderParam(BindToXMLPayload.class) AdminCatalog catalog);
- AdminCatalog edit(URI catalogAdminHref, AdminCatalog catalog);
+ @PUT
+ @Consumes(ADMIN_CATALOG)
+ @Produces(ADMIN_CATALOG)
+ @JAXBResponseParser
+ AdminCatalog edit(@EndpointParam URI catalogAdminHref,
+ @BinderParam(BindToXMLPayload.class) AdminCatalog catalog);
/**
* Deletes a catalog. The catalog could be removed if it is either published or unpublished.
@@ -85,9 +133,15 @@ public interface AdminCatalogApi extends CatalogApi {
* DELETE /admin/catalog/{id}
* </pre>
*/
- void remove(String catalogUrn);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
- void remove(URI catalogAdminHref);
+ @DELETE
+ @Consumes
+ @JAXBResponseParser
+ void remove(@EndpointParam URI catalogAdminHref);
/**
* Retrieves the owner of a catalog.
@@ -98,9 +152,19 @@ public interface AdminCatalogApi extends CatalogApi {
*
* @return the owner or null if not found
*/
- Owner getOwner(String catalogUrn);
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
- Owner getOwner(URI catalogAdminHref);
+ @GET
+ @Path("/owner")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Owner getOwner(@EndpointParam URI catalogAdminHref);
/**
* Changes owner for catalog.
@@ -109,22 +173,40 @@ public interface AdminCatalogApi extends CatalogApi {
* PUT /admin/catalog/{id}/owner
* </pre>
*/
- void setOwner(String catalogUrn, Owner newOwner);
-
- void setOwner(URI catalogAdminHref, Owner newOwner);
+ @PUT
+ @Path("/owner")
+ @Consumes
+ @Produces(VCloudDirectorMediaType.OWNER)
+ @JAXBResponseParser
+ void setOwner(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
+ @BinderParam(BindToXMLPayload.class) Owner newOwner);
- // TODO: lot of work to pass in a single boolean, would like to polymorphically include something
- // like:
- // void publishCatalog(String catalogUrn)
+ @PUT
+ @Path("/owner")
+ @Consumes
+ @Produces(VCloudDirectorMediaType.OWNER)
+ @JAXBResponseParser
+ void setOwner(@EndpointParam URI catalogAdminHref,
+ @BinderParam(BindToXMLPayload.class) Owner newOwner);
/**
* Publish a catalog. Publishing a catalog makes the catalog visible to all organizations in a
* vCloud.
- * @param orgUrn
*/
- void publish(String catalogUrn, PublishCatalogParams params);
+ @POST
+ @Path("/action/publish")
+ @Consumes
+ @Produces(PUBLISH_CATALOG_PARAMS)
+ @JAXBResponseParser
+ void publish(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
+ @BinderParam(BindToXMLPayload.class) PublishCatalogParams params);
- void publish(URI catalogAdminHref, PublishCatalogParams params);
+ @POST
+ @Path("/action/publish")
+ @Consumes
+ @Produces(PUBLISH_CATALOG_PARAMS)
+ @JAXBResponseParser
+ void publish(@EndpointParam URI catalogAdminHref, @BinderParam(BindToXMLPayload.class) PublishCatalogParams params);
/**
* Modifies a catalog control access.
@@ -135,9 +217,21 @@ public interface AdminCatalogApi extends CatalogApi {
*
* @return the control access information
*/
- ControlAccessParams editAccessControl(String catalogUrn, ControlAccessParams params);
+ @POST
+ @Path("/action/controlAccess")
+ @Produces(CONTROL_ACCESS)
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ ControlAccessParams editAccessControl(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
+ @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
- ControlAccessParams editAccessControl(URI catalogAdminHref, ControlAccessParams params);
+ @POST
+ @Path("/action/controlAccess")
+ @Produces(CONTROL_ACCESS)
+ @Consumes(CONTROL_ACCESS)
+ @JAXBResponseParser
+ ControlAccessParams editAccessControl(@EndpointParam URI catalogAdminHref,
+ @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
/**
* Retrieves the catalog control access information.
@@ -148,7 +242,17 @@ public interface AdminCatalogApi extends CatalogApi {
*
* @return the control access information
*/
- ControlAccessParams getAccessControl(String catalogUrn);
-
- ControlAccessParams getAccessControl(URI catalogAdminHref);
+ @GET
+ @Path("/controlAccess")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ControlAccessParams getAccessControl(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
+
+ @GET
+ @Path("/controlAccess")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ControlAccessParams getAccessControl(@EndpointParam URI catalogAdminHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogAsyncApi.java
deleted file mode 100644
index 8344902..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminCatalogAsyncApi.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CONTROL_ACCESS;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.AdminCatalog;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.params.ControlAccessParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.PublishCatalogParams;
-import org.jclouds.vcloud.director.v1_5.features.CatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see AdminCatalogApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminCatalogAsyncApi extends CatalogAsyncApi {
-
- /**
- * @see AdminCatalogApi#addCatalogToOrg(AdminCatalog, String)
- */
- @POST
- @Path("/catalogs")
- @Consumes(VCloudDirectorMediaType.ADMIN_CATALOG)
- @Produces(VCloudDirectorMediaType.ADMIN_CATALOG)
- @JAXBResponseParser
- ListenableFuture<AdminCatalog> addCatalogToOrg(@BinderParam(BindToXMLPayload.class) AdminCatalog catalog,
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminCatalogApi#addCatalogToOrg(AdminCatalog, URI)
- */
- @POST
- @Path("/catalogs")
- @Consumes(VCloudDirectorMediaType.ADMIN_CATALOG)
- @Produces(VCloudDirectorMediaType.ADMIN_CATALOG)
- @JAXBResponseParser
- ListenableFuture<AdminCatalog> addCatalogToOrg(@BinderParam(BindToXMLPayload.class) AdminCatalog catalog,
- @EndpointParam URI orgHref);
-
- /**
- * @see AdminCatalogApi#get(String)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminCatalog> get(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
-
- /**
- * @see AdminCatalogApi#get(URI)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminCatalog> get(@EndpointParam URI orgHref);
-
- /**
- * @see AdminCatalogApi#edit(String, AdminCatalog)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.ADMIN_CATALOG)
- @Produces(VCloudDirectorMediaType.ADMIN_CATALOG)
- @JAXBResponseParser
- ListenableFuture<AdminCatalog> edit(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
- @BinderParam(BindToXMLPayload.class) AdminCatalog catalog);
-
- /**
- * @see AdminCatalogApi#edit(URI, AdminCatalog)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.ADMIN_CATALOG)
- @Produces(VCloudDirectorMediaType.ADMIN_CATALOG)
- @JAXBResponseParser
- ListenableFuture<AdminCatalog> edit(@EndpointParam URI catalogAdminHref,
- @BinderParam(BindToXMLPayload.class) AdminCatalog catalog);
-
- /**
- * @see AdminCatalogApi#remove(String)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
-
- /**
- * @see AdminCatalogApi#remove(URI)
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Void> remove(@EndpointParam URI catalogAdminHref);
-
- /**
- * @see AdminCatalogApi#getOwner(String)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
-
- /**
- * @see AdminCatalogApi#getOwner(URI)
- */
- @GET
- @Path("/owner")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam URI catalogAdminHref);
-
- /**
- * @see AdminCatalogApi#setOwner(String, Owner)
- */
- @PUT
- @Path("/owner")
- @Consumes
- @Produces(VCloudDirectorMediaType.OWNER)
- @JAXBResponseParser
- ListenableFuture<Void> setOwner(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
- @BinderParam(BindToXMLPayload.class) Owner newOwner);
-
- /**
- * @see AdminCatalogApi#setOwner(URI, Owner)
- */
- @PUT
- @Path("/owner")
- @Consumes
- @Produces(VCloudDirectorMediaType.OWNER)
- @JAXBResponseParser
- ListenableFuture<Void> setOwner(@EndpointParam URI catalogAdminHref,
- @BinderParam(BindToXMLPayload.class) Owner newOwner);
-
- /**
- * @see AdminCatalogApi#publish(String, PublishCatalogParams)
- */
- @POST
- @Path("/action/publish")
- @Consumes
- @Produces(VCloudDirectorMediaType.PUBLISH_CATALOG_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Void> publish(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
- @BinderParam(BindToXMLPayload.class) PublishCatalogParams params);
-
- /**
- * @see AdminCatalogApi#publish(URI, PublishCatalogParams)
- */
- @POST
- @Path("/action/publish")
- @Consumes
- @Produces(VCloudDirectorMediaType.PUBLISH_CATALOG_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Void> publish(@EndpointParam URI catalogAdminHref,
- @BinderParam(BindToXMLPayload.class) PublishCatalogParams params);
-
- /**
- * @see AdminCatalogApi#editAccessControl(String, ControlAccessParams)
- */
- @POST
- @Path("/action/controlAccess")
- @Produces(CONTROL_ACCESS)
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- ListenableFuture<ControlAccessParams> editAccessControl(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn,
- @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
-
- /**
- * @see AdminCatalogApi#editAccessControl(URI, ControlAccessParams)
- */
- @POST
- @Path("/action/controlAccess")
- @Produces(CONTROL_ACCESS)
- @Consumes(CONTROL_ACCESS)
- @JAXBResponseParser
- ListenableFuture<ControlAccessParams> editAccessControl(@EndpointParam URI catalogAdminHref,
- @BinderParam(BindToXMLPayload.class) ControlAccessParams params);
-
- /**
- * @see AdminCatalogApi#getAccessControl(String)
- */
- @GET
- @Path("/controlAccess")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ControlAccessParams> getAccessControl(@EndpointParam(parser = URNToAdminHref.class) String catalogUrn);
-
- /**
- * @see AdminCatalogApi#getAccessControl(URI)
- */
- @GET
- @Path("/controlAccess")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ControlAccessParams> getAccessControl(@EndpointParam URI catalogAdminHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkApi.java
index 4a1903d..67b9024 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkApi.java
@@ -16,18 +16,33 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ADMIN_ORG_NETWORK;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.network.Network;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgNetwork;
import org.jclouds.vcloud.director.v1_5.features.NetworkApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-/**
- * Provides synchronous access to admin {@link Network} objects.
- *
- * @see AdminNetworkAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface AdminNetworkApi extends NetworkApi {
/**
@@ -43,10 +58,18 @@ public interface AdminNetworkApi extends NetworkApi {
* @return the network
*/
@Override
- Network get(String networkUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Network get(@EndpointParam(parser = URNToAdminHref.class) String networkUrn);
@Override
- Network get(URI networkAdminHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Network get(@EndpointParam URI networkAdminHref);
/**
* Modifies an org network
@@ -62,9 +85,19 @@ public interface AdminNetworkApi extends NetworkApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task
* status in order to check when it is completed.
*/
- Task edit(String networkUrn, OrgNetwork network);
+ @PUT
+ @Consumes(TASK)
+ @Produces(ADMIN_ORG_NETWORK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToAdminHref.class) String networkUrn,
+ @BinderParam(BindToXMLPayload.class) OrgNetwork network);
- Task edit(URI networkAdminHref, OrgNetwork network);
+ @PUT
+ @Consumes(TASK)
+ @Produces(ADMIN_ORG_NETWORK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI networkAdminHref,
+ @BinderParam(BindToXMLPayload.class) OrgNetwork network);
/**
* Reset(undeploy & redeploy) networking services on a logical network. The reset operation can
@@ -80,7 +113,15 @@ public interface AdminNetworkApi extends NetworkApi {
* @return a task. This operation is asynchronous and the user should monitor the returned task
* status in order to check when it is completed.
*/
- Task reset(String networkUrn);
-
- Task reset(URI networkAdminHref);
+ @POST
+ @Path("/action/reset")
+ @Consumes
+ @JAXBResponseParser
+ Task reset(@EndpointParam(parser = URNToAdminHref.class) String networkUrn);
+
+ @POST
+ @Path("/action/reset")
+ @Consumes
+ @JAXBResponseParser
+ Task reset(@EndpointParam URI networkAdminHref);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkAsyncApi.java
deleted file mode 100644
index 573050b..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminNetworkAsyncApi.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.network.Network;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgNetwork;
-import org.jclouds.vcloud.director.v1_5.features.NetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see AdminNetworkApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminNetworkAsyncApi extends NetworkAsyncApi {
-
- /**
- * @see AdminNetworkApi#get(String)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Network> get(@EndpointParam(parser = URNToAdminHref.class) String networkUrn);
-
- /**
- * @see AdminNetworkApi#get(URI)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Network> get(@EndpointParam URI networkAdminHref);
-
- /**
- * @see AdminNetworkApi#edit(String, OrgNetwork)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.ADMIN_ORG_NETWORK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToAdminHref.class) String networkUrn,
- @BinderParam(BindToXMLPayload.class) OrgNetwork network);
-
- /**
- * @see AdminNetworkApi#edit(URI, OrgNetwork)
- */
- @PUT
- @Consumes(VCloudDirectorMediaType.TASK)
- @Produces(VCloudDirectorMediaType.ADMIN_ORG_NETWORK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI networkAdminHref,
- @BinderParam(BindToXMLPayload.class) OrgNetwork network);
-
- /**
- * @see AdminNetworkApi#reset(String)
- */
- @POST
- @Path("/action/reset")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam(parser = URNToAdminHref.class) String networkUrn);
-
- /**
- * @see AdminNetworkApi#reset(URI)
- */
- @POST
- @Path("/action/reset")
- @Consumes
- @JAXBResponseParser
- ListenableFuture<Task> reset(@EndpointParam URI networkAdminHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgApi.java
index 3fc7739..f8831f4 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgApi.java
@@ -16,8 +16,28 @@
*/
package org.jclouds.vcloud.director.v1_5.features.admin;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_EMAIL_SETTINGS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_GENERAL_SETTINGS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_LEASE_SETTINGS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_SETTINGS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.org.AdminOrg;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgEmailSettings;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgGeneralSettings;
@@ -27,12 +47,10 @@ import org.jclouds.vcloud.director.v1_5.domain.org.OrgPasswordPolicySettings;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgSettings;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgVAppTemplateLeaseSettings;
import org.jclouds.vcloud.director.v1_5.features.OrgApi;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-/**
- * Provides synchronous access to {@link Org} objects.
- *
- * @see AdminOrgAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface AdminOrgApi extends OrgApi {
/**
@@ -48,10 +66,18 @@ public interface AdminOrgApi extends OrgApi {
* @return the admin org
*/
@Override
- AdminOrg get(String orgUrn);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminOrg get(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
@Override
- AdminOrg get(URI orgAdminHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ AdminOrg get(@EndpointParam URI adminOrgHref);
/**
* Gets organizational settings for this organization.
@@ -64,9 +90,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the settings
*/
- OrgSettings getSettings(String orgUrn);
+ @GET
+ @Path("/settings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgSettings getSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgSettings getSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgSettings getSettings(@EndpointParam URI adminOrgHref);
/**
* Updates organizational settings for this organization.
@@ -77,13 +113,25 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgSettings editSettings(String orgUrn, OrgSettings newSettings);
+ @PUT
+ @Path("/settings")
+ @Consumes(ORG_SETTINGS)
+ @Produces(ORG_SETTINGS)
+ @JAXBResponseParser
+ OrgSettings editSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgSettings settings);
- OrgSettings editSettings(URI orgAdminHref, OrgSettings newSettings);
+ @PUT
+ @Path("/settings")
+ @Consumes(ORG_SETTINGS)
+ @Produces(ORG_SETTINGS)
+ @JAXBResponseParser
+ OrgSettings editSettings(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgSettings settings);
/**
* Retrieves email settings for an organization.
@@ -96,9 +144,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the email settings
*/
- OrgEmailSettings getEmailSettings(String orgUrn);
+ @GET
+ @Path("/settings/email")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgEmailSettings getEmailSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgEmailSettings getEmailSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings/email")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgEmailSettings getEmailSettings(@EndpointParam URI adminOrgHref);
/**
* Updates email policy settings for organization.
@@ -109,13 +167,25 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgEmailSettings editEmailSettings(String orgUrn, OrgEmailSettings newSettings);
+ @PUT
+ @Path("/settings/email")
+ @Consumes(ORG_EMAIL_SETTINGS)
+ @Produces(ORG_EMAIL_SETTINGS)
+ @JAXBResponseParser
+ OrgEmailSettings editEmailSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgEmailSettings settings);
- OrgEmailSettings editEmailSettings(URI orgAdminHref, OrgEmailSettings newSettings);
+ @PUT
+ @Path("/settings/email")
+ @Consumes(ORG_EMAIL_SETTINGS)
+ @Produces(ORG_EMAIL_SETTINGS)
+ @JAXBResponseParser
+ OrgEmailSettings editEmailSettings(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgEmailSettings settings);
/**
* Gets general organization settings.
@@ -128,9 +198,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the lease settings
*/
- OrgGeneralSettings getGeneralSettings(String orgUrn);
+ @GET
+ @Path("/settings/general")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgGeneralSettings getGeneralSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgGeneralSettings getGeneralSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings/general")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgGeneralSettings getGeneralSettings(@EndpointParam URI adminOrgHref);
/**
* Updates general organization settings.
@@ -141,13 +221,25 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgGeneralSettings editGeneralSettings(String orgUrn, OrgGeneralSettings newSettings);
+ @PUT
+ @Path("/settings/general")
+ @Consumes(ORG_GENERAL_SETTINGS)
+ @Produces(ORG_GENERAL_SETTINGS)
+ @JAXBResponseParser
+ OrgGeneralSettings editGeneralSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgGeneralSettings settings);
- OrgGeneralSettings editGeneralSettings(URI orgAdminHref, OrgGeneralSettings newSettings);
+ @PUT
+ @Path("/settings/general")
+ @Consumes(ORG_GENERAL_SETTINGS)
+ @Produces(ORG_GENERAL_SETTINGS)
+ @JAXBResponseParser
+ OrgGeneralSettings editGeneralSettings(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgGeneralSettings settings);
/**
* Retrieves LDAP settings for an organization.
@@ -160,9 +252,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the ldap settings
*/
- OrgLdapSettings getLdapSettings(String orgUrn);
+ @GET
+ @Path("/settings/ldap")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgLdapSettings getLdapSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgLdapSettings getLdapSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings/ldap")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgLdapSettings getLdapSettings(@EndpointParam URI adminOrgHref);
/**
* Retrieves password policy settings for an organization.
@@ -175,9 +277,20 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the lease settings
*/
- OrgPasswordPolicySettings getPasswordPolicy(String orgUrn);
+ @GET
+ @Path("/settings/passwordPolicy")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgPasswordPolicySettings getPasswordPolicy(
+ @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgPasswordPolicySettings getPasswordPolicy(URI orgAdminHref);
+ @GET
+ @Path("/settings/passwordPolicy")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgPasswordPolicySettings getPasswordPolicy(@EndpointParam URI adminOrgHref);
/**
* Updates password policy settings for organization.
@@ -188,13 +301,25 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgPasswordPolicySettings editPasswordPolicy(String orgUrn, OrgPasswordPolicySettings newSettings);
+ @PUT
+ @Path("/settings/passwordPolicy")
+ @Consumes(ORG_PASSWORD_POLICY_SETTINGS)
+ @Produces(ORG_PASSWORD_POLICY_SETTINGS)
+ @JAXBResponseParser
+ OrgPasswordPolicySettings editPasswordPolicy(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgPasswordPolicySettings settings);
- OrgPasswordPolicySettings editPasswordPolicy(URI orgAdminHref, OrgPasswordPolicySettings newSettings);
+ @PUT
+ @Path("/settings/passwordPolicy")
+ @Consumes(ORG_PASSWORD_POLICY_SETTINGS)
+ @Produces(ORG_PASSWORD_POLICY_SETTINGS)
+ @JAXBResponseParser
+ OrgPasswordPolicySettings editPasswordPolicy(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgPasswordPolicySettings settings);
/**
* Gets organization resource cleanup settings on the level of vApp.
@@ -207,9 +332,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the lease settings
*/
- OrgLeaseSettings getVAppLeaseSettings(String orgUrn);
+ @GET
+ @Path("/settings/vAppLeaseSettings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgLeaseSettings getVAppLeaseSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgLeaseSettings getVAppLeaseSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings/vAppLeaseSettings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgLeaseSettings getVAppLeaseSettings(@EndpointParam URI adminOrgHref);
/**
* Updates organization resource cleanup settings on the level of vApp.
@@ -220,13 +355,25 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgLeaseSettings editVAppLeaseSettings(String orgUrn, OrgLeaseSettings newSettings);
+ @PUT
+ @Path("/settings/vAppLeaseSettings")
+ @Consumes(ORG_LEASE_SETTINGS)
+ @Produces(ORG_LEASE_SETTINGS)
+ @JAXBResponseParser
+ OrgLeaseSettings editVAppLeaseSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgLeaseSettings settings);
- OrgLeaseSettings editVAppLeaseSettings(URI orgAdminHref, OrgLeaseSettings newSettings);
+ @PUT
+ @Path("/settings/vAppLeaseSettings")
+ @Consumes(ORG_LEASE_SETTINGS)
+ @Produces(ORG_LEASE_SETTINGS)
+ @JAXBResponseParser
+ OrgLeaseSettings editVAppLeaseSettings(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgLeaseSettings settings);
/**
* Retrieves expiration and storage policy for vApp templates in an organization.
@@ -239,9 +386,19 @@ public interface AdminOrgApi extends OrgApi {
* the reference for the admin org
* @return the lease settings
*/
- OrgVAppTemplateLeaseSettings getVAppTemplateLeaseSettings(String orgUrn);
+ @GET
+ @Path("/settings/vAppTemplateLeaseSettings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgVAppTemplateLeaseSettings getVAppTemplateLeaseSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
- OrgVAppTemplateLeaseSettings getVAppTemplateLeaseSettings(URI orgAdminHref);
+ @GET
+ @Path("/settings/vAppTemplateLeaseSettings")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OrgVAppTemplateLeaseSettings getVAppTemplateLeaseSettings(@EndpointParam URI adminOrgHref);
/**
* Updates vApp template policy settings for organization.
@@ -252,11 +409,23 @@ public interface AdminOrgApi extends OrgApi {
*
* @param orgUrn
* the reference for the admin org
- * @param newSettings
+ * @param settings
* the requested edited settings
* @return the resultant settings
*/
- OrgVAppTemplateLeaseSettings editVAppTemplateLeaseSettings(String orgUrn, OrgVAppTemplateLeaseSettings newSettings);
+ @PUT
+ @Path("/settings/vAppTemplateLeaseSettings")
+ @Consumes(ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
+ @Produces(ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
+ @JAXBResponseParser
+ OrgVAppTemplateLeaseSettings editVAppTemplateLeaseSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
+ @BinderParam(BindToXMLPayload.class) OrgVAppTemplateLeaseSettings settings);
- OrgVAppTemplateLeaseSettings editVAppTemplateLeaseSettings(URI orgAdminHref, OrgVAppTemplateLeaseSettings newSettings);
+ @PUT
+ @Path("/settings/vAppTemplateLeaseSettings")
+ @Consumes(ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
+ @Produces(ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
+ @JAXBResponseParser
+ OrgVAppTemplateLeaseSettings editVAppTemplateLeaseSettings(@EndpointParam URI adminOrgHref,
+ @BinderParam(BindToXMLPayload.class) OrgVAppTemplateLeaseSettings settings);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgAsyncApi.java
deleted file mode 100644
index a0ee52c..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminOrgAsyncApi.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.org.AdminOrg;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgEmailSettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgGeneralSettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgLdapSettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgLeaseSettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgPasswordPolicySettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgSettings;
-import org.jclouds.vcloud.director.v1_5.domain.org.OrgVAppTemplateLeaseSettings;
-import org.jclouds.vcloud.director.v1_5.features.OrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see AdminOrgApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminOrgAsyncApi extends OrgAsyncApi {
-
- /**
- * @see AdminOrgApi#get(String)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminOrg> get(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#get(URI)
- */
- @Override
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<AdminOrg> get(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#getSettings(String)
- */
- @GET
- @Path("/settings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgSettings> getSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getSettings(URI)
- */
- @GET
- @Path("/settings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgSettings> getSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editSettings(String, OrgSettings)
- */
- @PUT
- @Path("/settings")
- @Consumes(VCloudDirectorMediaType.ORG_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgSettings> editSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgSettings settings);
-
- /**
- * @see AdminOrgApi#editSettings(URI, OrgSettings)
- */
- @PUT
- @Path("/settings")
- @Consumes(VCloudDirectorMediaType.ORG_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgSettings> editSettings(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgSettings settings);
-
- /**
- * @see AdminOrgApi#getEmailSettings(String)
- */
- @GET
- @Path("/settings/email")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgEmailSettings> getEmailSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getEmailSettings(URI)
- */
- @GET
- @Path("/settings/email")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgEmailSettings> getEmailSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editEmailSettings(String, OrgEmailSettings)
- */
- @PUT
- @Path("/settings/email")
- @Consumes(VCloudDirectorMediaType.ORG_EMAIL_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_EMAIL_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgEmailSettings> editEmailSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgEmailSettings settings);
-
- /**
- * @see AdminOrgApi#editEmailSettings(URI, OrgEmailSettings)
- */
- @PUT
- @Path("/settings/email")
- @Consumes(VCloudDirectorMediaType.ORG_EMAIL_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_EMAIL_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgEmailSettings> editEmailSettings(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgEmailSettings settings);
-
- /**
- * @see AdminOrgApi#getGeneralSettings(String)
- */
- @GET
- @Path("/settings/general")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgGeneralSettings> getGeneralSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getGeneralSettings(URI)
- */
- @GET
- @Path("/settings/general")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgGeneralSettings> getGeneralSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editGeneralSettings(String, OrgGeneralSettings)
- */
- @PUT
- @Path("/settings/general")
- @Consumes(VCloudDirectorMediaType.ORG_GENERAL_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_GENERAL_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgGeneralSettings> editGeneralSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgGeneralSettings settings);
-
- /**
- * @see AdminOrgApi#editGeneralSettings(URI, OrgGeneralSettings)
- */
- @PUT
- @Path("/settings/general")
- @Consumes(VCloudDirectorMediaType.ORG_GENERAL_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_GENERAL_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgGeneralSettings> editGeneralSettings(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgGeneralSettings settings);
-
- /**
- * @see AdminOrgApi#getPasswordPolicy(String)
- */
- @GET
- @Path("/settings/ldap")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgLdapSettings> getLdapSettings(@EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getPasswordPolicy(URI)
- */
- @GET
- @Path("/settings/ldap")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgLdapSettings> getLdapSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#getPasswordPolicy(String)
- */
- @GET
- @Path("/settings/passwordPolicy")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgPasswordPolicySettings> getPasswordPolicy(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getPasswordPolicy(URI)
- */
- @GET
- @Path("/settings/passwordPolicy")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgPasswordPolicySettings> getPasswordPolicy(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editPasswordPolicy(String, OrgPasswordPolicySettings)
- */
- @PUT
- @Path("/settings/passwordPolicy")
- @Consumes(VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgPasswordPolicySettings> editPasswordPolicy(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgPasswordPolicySettings settings);
-
- /**
- * @see AdminOrgApi#editPasswordPolicy(URI, OrgPasswordPolicySettings)
- */
- @PUT
- @Path("/settings/passwordPolicy")
- @Consumes(VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_PASSWORD_POLICY_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgPasswordPolicySettings> editPasswordPolicy(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgPasswordPolicySettings settings);
-
- /**
- * @see AdminOrgApi#getVAppLeaseSettings(String)
- */
- @GET
- @Path("/settings/vAppLeaseSettings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgLeaseSettings> getVAppLeaseSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getVAppLeaseSettings(URI)
- */
- @GET
- @Path("/settings/vAppLeaseSettings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgLeaseSettings> getVAppLeaseSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editVAppLeaseSettings(String, OrgVAppLeaseSettings)
- */
- @PUT
- @Path("/settings/vAppLeaseSettings")
- @Consumes(VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgLeaseSettings> editVAppLeaseSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgLeaseSettings settings);
-
- /**
- * @see AdminOrgApi#editVAppLeaseSettings(URI, OrgVAppLeaseSettings)
- */
- @PUT
- @Path("/settings/vAppLeaseSettings")
- @Consumes(VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_LEASE_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgLeaseSettings> editVAppLeaseSettings(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgLeaseSettings settings);
-
- /**
- * @see AdminOrgApi#getVAppTemplateLeaseSettings(String)
- */
- @GET
- @Path("/settings/vAppTemplateLeaseSettings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgVAppTemplateLeaseSettings> getVAppTemplateLeaseSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- /**
- * @see AdminOrgApi#getVAppTemplateLeaseSettings(URI)
- */
- @GET
- @Path("/settings/vAppTemplateLeaseSettings")
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<OrgVAppTemplateLeaseSettings> getVAppTemplateLeaseSettings(@EndpointParam URI adminOrgHref);
-
- /**
- * @see AdminOrgApi#editVAppTemplateLeaseSettings(String, OrgVAppTemplateLeaseSettings)
- */
- @PUT
- @Path("/settings/vAppTemplateLeaseSettings")
- @Consumes(VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgVAppTemplateLeaseSettings> editVAppTemplateLeaseSettings(
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn,
- @BinderParam(BindToXMLPayload.class) OrgVAppTemplateLeaseSettings settings);
-
- /**
- * @see AdminOrgApi#editVAppTemplateLeaseSettings(URI, OrgVAppTemplateLeaseSettings)
- */
- @PUT
- @Path("/settings/vAppTemplateLeaseSettings")
- @Consumes(VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
- @Produces(VCloudDirectorMediaType.ORG_VAPP_TEMPLATE_LEASE_SETTINGS)
- @JAXBResponseParser
- ListenableFuture<OrgVAppTemplateLeaseSettings> editVAppTemplateLeaseSettings(@EndpointParam URI adminOrgHref,
- @BinderParam(BindToXMLPayload.class) OrgVAppTemplateLeaseSettings settings);
-}
[3/5] JCLOUDS-40 unasync vcloud-director
Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncApi.java
deleted file mode 100644
index 6915539..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncApi.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CUSTOMIZATION_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.LEASE_SETTINGS_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONFIG_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_SECTION;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OWNER;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP_TEMPLATE;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.dmtf.ovf.NetworkSection;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
-import org.jclouds.vcloud.director.v1_5.domain.References;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
-import org.jclouds.vcloud.director.v1_5.domain.dmtf.Envelope;
-import org.jclouds.vcloud.director.v1_5.domain.section.CustomizationSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see VAppTemplateApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VAppTemplateAsyncApi {
-
- /**
- * @see VAppTemplateApi#get(String)
- */
- @GET
- @Consumes(VAPP_TEMPLATE)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VAppTemplate> get(@EndpointParam(parser = URNToHref.class) String reference);
-
- /**
- * @see VAppTemplateApi#edit(String, VAppTemplate)
- */
- @PUT
- @Produces(VAPP_TEMPLATE)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam(parser = URNToHref.class) String templateUrn,
- @BinderParam(BindToXMLPayload.class) VAppTemplate template);
-
- /**
- * @see VAppTemplateApi#remove(String)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam String templateUri);
-
- /**
- * @see VAppTemplateApi#disableDownload(String)
- */
- @POST
- @Path("/action/disableDownload")
- @JAXBResponseParser
- ListenableFuture<Void> disableDownload(@EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#enableDownload(String)
- */
- @POST
- @Consumes(TASK)
- @Path("/action/enableDownload")
- @JAXBResponseParser
- ListenableFuture<Task> enableDownload(@EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getCustomizationSection(String)
- */
- @GET
- @Consumes(CUSTOMIZATION_SECTION)
- @Path("/customizationSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<CustomizationSection> getCustomizationSection(
- @EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getLeaseSettingsSection(String)
- */
- @GET
- @Consumes(LEASE_SETTINGS_SECTION)
- @Path("/leaseSettingsSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<LeaseSettingsSection> getLeaseSettingsSection(
- @EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#editLeaseSettingsSection(String, LeaseSettingsSection)
- */
- @PUT
- @Produces(LEASE_SETTINGS_SECTION)
- @Consumes(TASK)
- @Path("/leaseSettingsSection")
- @JAXBResponseParser
- ListenableFuture<Task> editLeaseSettingsSection(
- @EndpointParam(parser = URNToHref.class) String templateUrn,
- @BinderParam(BindToXMLPayload.class) LeaseSettingsSection settingsSection);
-
- /**
- * @see VAppTemplateApi#getNetworkConfigSection(String)
- */
- @GET
- @Consumes(NETWORK_CONFIG_SECTION)
- @Path("/networkConfigSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConfigSection> getNetworkConfigSection(
- @EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getNetworkSection(String)
- */
- @GET
- @Consumes(NETWORK_SECTION)
- @Path("/networkSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkSection> getNetworkSection(
- @EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getOvf(String)
- */
- @GET
- @Consumes
- @Path("/ovf")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Envelope> getOvf(@EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getOwnerOfVAppTemplate(String)
- */
- @GET
- @Consumes(OWNER)
- @Path("/owner")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#getProductSectionsForVAppTemplate(String)
- */
- @GET
- @Consumes(PRODUCT_SECTION_LIST)
- @Path("/productSections")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(
- @EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#editProductSections(String, ProductSectionList)
- */
- @PUT
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @Path("/productSections")
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam(parser = URNToHref.class) String templateUrn,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sections);
-
- /**
- * @see VAppTemplateApi#getShadowVms(String)
- */
- @GET
- @Consumes
- @Path("/shadowVms")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<References> getShadowVms(@EndpointParam(parser = URNToHref.class) String templateUrn);
-
- /**
- * @see VAppTemplateApi#get(URI)
- */
- @GET
- @Consumes(VAPP_TEMPLATE)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<VAppTemplate> get(@EndpointParam URI reference);
-
- /**
- * @see VAppTemplateApi#edit(URI, VAppTemplate)
- */
- @PUT
- @Produces(VAPP_TEMPLATE)
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> edit(@EndpointParam URI templateHref,
- @BinderParam(BindToXMLPayload.class) VAppTemplate template);
-
- /**
- * @see VAppTemplateApi#remove(URI)
- */
- @DELETE
- @Consumes(TASK)
- @JAXBResponseParser
- ListenableFuture<Task> remove(@EndpointParam URI templateUri);
-
- /**
- * @see VAppTemplateApi#disableDownload(URI)
- */
- @POST
- @Path("/action/disableDownload")
- @JAXBResponseParser
- ListenableFuture<Void> disableDownload(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#enableDownload(URI)
- */
- @POST
- @Consumes(TASK)
- @Path("/action/enableDownload")
- @JAXBResponseParser
- ListenableFuture<Task> enableDownload(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getCustomizationSection(URI)
- */
- @GET
- @Consumes(CUSTOMIZATION_SECTION)
- @Path("/customizationSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<CustomizationSection> getCustomizationSection(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getLeaseSettingsSection(URI)
- */
- @GET
- @Consumes(LEASE_SETTINGS_SECTION)
- @Path("/leaseSettingsSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<LeaseSettingsSection> getLeaseSettingsSection(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#editLeaseSettingsSection(URI, LeaseSettingsSection)
- */
- @PUT
- @Produces(LEASE_SETTINGS_SECTION)
- @Consumes(TASK)
- @Path("/leaseSettingsSection")
- @JAXBResponseParser
- ListenableFuture<Task> editLeaseSettingsSection(@EndpointParam URI templateHref,
- @BinderParam(BindToXMLPayload.class) LeaseSettingsSection settingsSection);
-
- /**
- * @see VAppTemplateApi#getNetworkConfigSection(URI)
- */
- @GET
- @Consumes(NETWORK_CONFIG_SECTION)
- @Path("/networkConfigSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkConfigSection> getNetworkConfigSection(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getNetworkSection(URI)
- */
- @GET
- @Consumes(NETWORK_SECTION)
- @Path("/networkSection")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<NetworkSection> getNetworkSection(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getOvf(URI)
- */
- @GET
- @Consumes
- @Path("/ovf")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Envelope> getOvf(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getOwnerOfVAppTemplate(URI)
- */
- @GET
- @Consumes(OWNER)
- @Path("/owner")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Owner> getOwner(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#getProductSectionsForVAppTemplate(URI)
- */
- @GET
- @Consumes(PRODUCT_SECTION_LIST)
- @Path("/productSections")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<ProductSectionList> getProductSections(@EndpointParam URI templateHref);
-
- /**
- * @see VAppTemplateApi#editProductSections(URI, ProductSectionList)
- */
- @PUT
- @Produces(PRODUCT_SECTION_LIST)
- @Consumes(TASK)
- @Path("/productSections")
- @JAXBResponseParser
- ListenableFuture<Task> editProductSections(@EndpointParam URI templateHref,
- @BinderParam(BindToXMLPayload.class) ProductSectionList sections);
-
- /**
- * @see VAppTemplateApi#getShadowVms(URI)
- */
- @GET
- @Consumes
- @Path("/shadowVms")
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<References> getShadowVms(@EndpointParam URI templateHref);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcApi.java
index d48e400..ae850e3 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcApi.java
@@ -16,8 +16,31 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CLONE_MEDIA_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CLONE_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.INSTANTIATE_VAPP_TEMPLATE_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.MEDIA;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.UPLOAD_VAPP_TEMPLATE_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VAPP_TEMPLATE;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
+import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Media;
import org.jclouds.vcloud.director.v1_5.domain.VApp;
import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
@@ -29,12 +52,10 @@ import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppTemplateParams;
import org.jclouds.vcloud.director.v1_5.domain.params.ComposeVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.params.InstantiateVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.params.UploadVAppTemplateParams;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to a vDC.
- *
- * @see VdcAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface VdcApi {
/**
@@ -42,9 +63,17 @@ public interface VdcApi {
*
* @return the vdc or null if not found
*/
- Vdc get(String vdcUrn);
-
- Vdc get(URI vdcHref);
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Vdc get(@EndpointParam(parser = URNToHref.class) String vdcUrn);
+
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Vdc get(@EndpointParam URI vdcHref);
/**
* Captures a vApp into vApp template.
@@ -56,9 +85,20 @@ public interface VdcApi {
* @return a VApp resource which will contain a task. The user should should wait for this task to finish to be able
* to use the vApp.
*/
- VAppTemplate captureVApp(String vdcUrn, CaptureVAppParams params);
-
- VAppTemplate captureVApp(URI vdcHref, CaptureVAppParams params);
+ @POST
+ @Path("/action/captureVApp")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(CAPTURE_VAPP_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate captureVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) CaptureVAppParams params);
+
+ @POST
+ @Path("/action/captureVApp")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(CAPTURE_VAPP_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate captureVApp(@EndpointParam URI vdcHref, @BinderParam(BindToXMLPayload.class) CaptureVAppParams params);
/**
* Clones a media into new one.
@@ -70,9 +110,20 @@ public interface VdcApi {
* @return a Media resource which will contain a task. The user should monitor the contained task status in order to
* check when it is completed.
*/
- Media cloneMedia(String vdcUrn, CloneMediaParams params);
-
- Media cloneMedia(URI vdcHref, CloneMediaParams params);
+ @POST
+ @Path("/action/cloneMedia")
+ @Consumes(MEDIA)
+ @Produces(CLONE_MEDIA_PARAMS)
+ @JAXBResponseParser
+ Media cloneMedia(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
+
+ @POST
+ @Path("/action/cloneMedia")
+ @Consumes(MEDIA)
+ @Produces(CLONE_MEDIA_PARAMS)
+ @JAXBResponseParser
+ Media cloneMedia(@EndpointParam URI vdcHref, @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
/**
* Clones a vApp into new one.
@@ -83,9 +134,22 @@ public interface VdcApi {
* @return a VApp resource which will contain a task. The user should should wait for this task to finish to be able
* to use the vApp.
*/
- VApp cloneVApp(String vdcUrn, CloneVAppParams params);
-
- VApp cloneVApp(URI vdcHref, CloneVAppParams params);
+ @POST
+ @Path("/action/cloneVApp")
+ @Consumes(VAPP)
+ @Produces(CLONE_VAPP_PARAMS)
+ // TODO fix these etc.
+ @JAXBResponseParser
+ VApp cloneVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) CloneVAppParams params);
+
+ @POST
+ @Path("/action/cloneVApp")
+ @Consumes(VAPP)
+ @Produces(CLONE_VAPP_PARAMS)
+ // TODO fix these etc.
+ @JAXBResponseParser
+ VApp cloneVApp(@EndpointParam URI vdcHref, @BinderParam(BindToXMLPayload.class) CloneVAppParams params);
/**
* Clones a vApp template into new one.
@@ -97,9 +161,21 @@ public interface VdcApi {
* @return a VAppTemplate resource which will contain a task. The user should should wait for this task to finish to
* be able to use the VAppTemplate.
*/
- VAppTemplate cloneVAppTemplate(String vdcUrn, CloneVAppTemplateParams params);
-
- VAppTemplate cloneVAppTemplate(URI vdcHref, CloneVAppTemplateParams params);
+ @POST
+ @Path("/action/cloneVAppTemplate")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(VCloudDirectorMediaType.CLONE_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate cloneVAppTemplate(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) CloneVAppTemplateParams params);
+
+ @POST
+ @Path("/action/cloneVAppTemplate")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(VCloudDirectorMediaType.CLONE_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate cloneVAppTemplate(@EndpointParam URI vdcHref,
+ @BinderParam(BindToXMLPayload.class) CloneVAppTemplateParams params);
/**
* Composes a new vApp using VMs from other vApps or vApp templates.
@@ -131,9 +207,21 @@ public interface VdcApi {
* @return a VApp resource which will contain a task. The user should should wait for this task to finish to be able
* to use the vApp.
*/
- VApp composeVApp(String vdcUrn, ComposeVAppParams params);
-
- VApp composeVApp(URI vdcHref, ComposeVAppParams params);
+ @POST
+ @Path("/action/composeVApp")
+ @Consumes(VAPP)
+ @Produces(VCloudDirectorMediaType.COMPOSE_VAPP_PARAMS)
+ @JAXBResponseParser
+ VApp composeVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) ComposeVAppParams params);
+
+ @POST
+ @Path("/action/composeVApp")
+ @Consumes(VAPP)
+ @Produces(VCloudDirectorMediaType.COMPOSE_VAPP_PARAMS)
+ @JAXBResponseParser
+ VApp composeVApp(@EndpointParam URI vdcHref,
+ @BinderParam(BindToXMLPayload.class) ComposeVAppParams params);
/**
* Instantiate a vApp template into a new vApp.
@@ -148,9 +236,21 @@ public interface VdcApi {
* @return a VApp resource which will contain a task. The user should should wait for this task to finish to be able
* to use the vApp.
*/
- VApp instantiateVApp(String vdcUrn, InstantiateVAppParams params);
-
- VApp instantiateVApp(URI vdcHref, InstantiateVAppParams params);
+ @POST
+ @Path("/action/instantiateVAppTemplate")
+ @Consumes(VAPP)
+ @Produces(INSTANTIATE_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VApp instantiateVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) InstantiateVAppParams params);
+
+ @POST
+ @Path("/action/instantiateVAppTemplate")
+ @Consumes(VAPP)
+ @Produces(INSTANTIATE_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VApp instantiateVApp(@EndpointParam URI vdcHref,
+ @BinderParam(BindToXMLPayload.class) InstantiateVAppParams params);
/**
* Uploading vApp template to a vDC.
@@ -171,16 +271,39 @@ public interface VdcApi {
* @return a VAppTemplate resource which will contain a task. The user should should wait for this task to finish to
* be able to use the VAppTemplate.
*/
- VAppTemplate uploadVAppTemplate(String vdcUrn, UploadVAppTemplateParams params);
-
- VAppTemplate uploadVAppTemplate(URI vdcHref, UploadVAppTemplateParams params);
+ @POST
+ @Path("/action/uploadVAppTemplate")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(UPLOAD_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate uploadVAppTemplate(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) UploadVAppTemplateParams params);
+
+ @POST
+ @Path("/action/uploadVAppTemplate")
+ @Consumes(VAPP_TEMPLATE)
+ @Produces(UPLOAD_VAPP_TEMPLATE_PARAMS)
+ @JAXBResponseParser
+ VAppTemplate uploadVAppTemplate(@EndpointParam URI vdcHref,
+ @BinderParam(BindToXMLPayload.class) UploadVAppTemplateParams params);
/**
* Creates a media (and present upload link for the floppy/iso file).
*
* @return The response will return a link to transfer site to be able to continue with uploading the media.
*/
- Media addMedia(String vdcUrn, Media media);
-
- Media addMedia(URI vdcHref, Media media);
+ @POST
+ @Path("/media")
+ @Consumes(MEDIA)
+ @Produces(MEDIA)
+ @JAXBResponseParser
+ Media addMedia(@EndpointParam(parser = URNToHref.class) String vdcUrn,
+ @BinderParam(BindToXMLPayload.class) Media media);
+
+ @POST
+ @Path("/media")
+ @Consumes(MEDIA)
+ @Produces(MEDIA)
+ @JAXBResponseParser
+ Media addMedia(@EndpointParam URI vdcHref, @BinderParam(BindToXMLPayload.class) Media media);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcAsyncApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcAsyncApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcAsyncApi.java
deleted file mode 100644
index 626e4e8..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VdcAsyncApi.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.vcloud.director.v1_5.features;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Media;
-import org.jclouds.vcloud.director.v1_5.domain.VApp;
-import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
-import org.jclouds.vcloud.director.v1_5.domain.Vdc;
-import org.jclouds.vcloud.director.v1_5.domain.params.CaptureVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneMediaParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.ComposeVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.InstantiateVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.UploadVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see VdcApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VdcAsyncApi {
-
- /**
- * @see VdcApi#get(String)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Vdc> get(@EndpointParam(parser = URNToHref.class) String vdcUrn);
-
- /**
- * @see VdcApi#captureVApp(String, CaptureVAppParams)
- */
- @POST
- @Path("/action/captureVApp")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> captureVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) CaptureVAppParams params);
-
- /**
- * @see VdcApi#cloneMedia(String, CloneMediaParams)
- */
- @POST
- @Path("/action/cloneMedia")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.CLONE_MEDIA_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Media> cloneMedia(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
-
- /**
- * @see VdcApi#cloneVApp(String, CloneVAppParams)
- */
- @POST
- @Path("/action/cloneVApp")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.CLONE_VAPP_PARAMS)
- // TODO fix these etc.
- @JAXBResponseParser
- ListenableFuture<VApp> cloneVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) CloneVAppParams params);
-
- /**
- * @see VdcApi#cloneVAppTemplate(String, CloneVAppTemplateParams)
- */
- @POST
- @Path("/action/cloneVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.CLONE_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> cloneVAppTemplate(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) CloneVAppTemplateParams params);
-
- /**
- * @see VdcApi#composeVApp(String, ComposeVAppParams)
- */
- @POST
- @Path("/action/composeVApp")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.COMPOSE_VAPP_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VApp> composeVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) ComposeVAppParams params);
-
- /**
- * @see VdcApi#instantiateVApp(String, InstantiateVAppParamsType)
- */
- @POST
- @Path("/action/instantiateVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.INSTANTIATE_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VApp> instantiateVApp(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) InstantiateVAppParams params);
-
- /**
- * @see VdcApi#uploadVAppTemplate(String, UploadVAppTemplateParams)
- */
- @POST
- @Path("/action/uploadVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.UPLOAD_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> uploadVAppTemplate(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) UploadVAppTemplateParams params);
-
- /**
- * @see VdcApi#addMedia(String, Media)
- */
- @POST
- @Path("/media")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.MEDIA)
- @JAXBResponseParser
- ListenableFuture<Media> addMedia(@EndpointParam(parser = URNToHref.class) String vdcUrn,
- @BinderParam(BindToXMLPayload.class) Media media);
-
- /**
- * @see VdcApi#get(URI)
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<? extends Vdc> get(@EndpointParam URI vdcHref);
-
- /**
- * @see VdcApi#captureVApp(URI, CaptureVAppParams)
- */
- @POST
- @Path("/action/captureVApp")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> captureVApp(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) CaptureVAppParams params);
-
- /**
- * @see VdcApi#cloneMedia(URI, CloneMediaParams)
- */
- @POST
- @Path("/action/cloneMedia")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.CLONE_MEDIA_PARAMS)
- @JAXBResponseParser
- ListenableFuture<Media> cloneMedia(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) CloneMediaParams params);
-
- /**
- * @see VdcApi#cloneVApp(URI, CloneVAppParams)
- */
- @POST
- @Path("/action/cloneVApp")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.CLONE_VAPP_PARAMS)
- // TODO fix these etc.
- @JAXBResponseParser
- ListenableFuture<VApp> cloneVApp(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) CloneVAppParams params);
-
- /**
- * @see VdcApi#cloneVAppTemplate(URI, CloneVAppTemplateParams)
- */
- @POST
- @Path("/action/cloneVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.CLONE_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> cloneVAppTemplate(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) CloneVAppTemplateParams params);
-
- /**
- * @see VdcApi#composeVApp(URI, ComposeVAppParams)
- */
- @POST
- @Path("/action/composeVApp")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.COMPOSE_VAPP_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VApp> composeVApp(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) ComposeVAppParams params);
-
- /**
- * @see VdcApi#instantiateVApp(URI, InstantiateVAppParamsType)
- */
- @POST
- @Path("/action/instantiateVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP)
- @Produces(VCloudDirectorMediaType.INSTANTIATE_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VApp> instantiateVApp(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) InstantiateVAppParams params);
-
- /**
- * @see VdcApi#uploadVAppTemplate(URI, UploadVAppTemplateParams)
- */
- @POST
- @Path("/action/uploadVAppTemplate")
- @Consumes(VCloudDirectorMediaType.VAPP_TEMPLATE)
- @Produces(VCloudDirectorMediaType.UPLOAD_VAPP_TEMPLATE_PARAMS)
- @JAXBResponseParser
- ListenableFuture<VAppTemplate> uploadVAppTemplate(@EndpointParam URI vdcHref,
- @BinderParam(BindToXMLPayload.class) UploadVAppTemplateParams params);
-
- /**
- * @see VdcApi#addMedia(URI, Media)
- */
- @POST
- @Path("/media")
- @Consumes(VCloudDirectorMediaType.MEDIA)
- @Produces(VCloudDirectorMediaType.MEDIA)
- @JAXBResponseParser
- ListenableFuture<Media> addMedia(@EndpointParam URI vdcHref, @BinderParam(BindToXMLPayload.class) Media media);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmApi.java
index 61b700a..5b14541 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VmApi.java
@@ -16,8 +16,40 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ANY_IMAGE;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.DEPLOY_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.GUEST_CUSTOMIZATION_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.MEDIA_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK_CONNECTION_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OPERATING_SYSTEM_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OVF_RASD_ITEM;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.OVF_RASD_ITEMS_LIST;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.PRODUCT_SECTION_LIST;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.RELOCATE_VM_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.UNDEPLOY_VAPP_PARAMS;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VIRTUAL_HARDWARE_SECTION;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VM;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.VM_PENDING_ANSWER;
+
import java.net.URI;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.ResponseParser;
+import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
import org.jclouds.vcloud.director.v1_5.domain.RasdItemsList;
import org.jclouds.vcloud.director.v1_5.domain.ScreenTicket;
@@ -35,13 +67,11 @@ import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConnectionSection;
import org.jclouds.vcloud.director.v1_5.domain.section.OperatingSystemSection;
import org.jclouds.vcloud.director.v1_5.domain.section.RuntimeInfoSection;
import org.jclouds.vcloud.director.v1_5.domain.section.VirtualHardwareSection;
+import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.ReturnPayloadBytes;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-/**
- * Provides synchronous access to {@link Vm} objects.
- *
- * @see VmAsyncApi
- * @version 1.5
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface VmApi {
/**
@@ -50,19 +80,35 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#get(String)
*/
- Vm get(String vmUrn);
-
- Vm get(URI vmHref);
+ @GET
+ @Consumes(VM)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Vm get(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Consumes(VM)
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ Vm get(@EndpointParam URI vmHref);
/**
* Modifies the name/description of a {@link Vm}.
*
* @since 0.9
- * @see VAppApi#edit(String, VApp)
*/
- Task edit(String vmUrn, Vm vm);
-
- Task edit(URI vmHref, Vm vm);
+ @PUT
+ @Produces(VM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) Vm vApp);
+
+ @PUT
+ @Produces(VM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task edit(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) Vm vApp);
/**
* Deletes a {@link Vm}.
@@ -70,9 +116,15 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#remove(String)
*/
- Task remove(String vmUrn);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam(parser = URNToHref.class) String vmUrn);
- Task remove(URI vmHref);
+ @DELETE
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task remove(@EndpointParam URI vmHref);
/**
* Consolidates a {@link Vm}.
@@ -83,9 +135,17 @@ public interface VmApi {
*
* @since 1.5
*/
- Task consolidate(String vmUrn);
-
- Task consolidate(URI vmHref);
+ @POST
+ @Path("/action/consolidate")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task consolidate(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/action/consolidate")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task consolidate(@EndpointParam URI vmHref);
/**
* Deploys a {@link Vm}.
@@ -93,9 +153,20 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#deploy(String, DeployVAppParams)
*/
- Task deploy(String vmUrn, DeployVAppParams params);
-
- Task deploy(URI vmHref, DeployVAppParams params);
+ @POST
+ @Path("/action/deploy")
+ @Produces(DEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task deploy(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
+
+ @POST
+ @Path("/action/deploy")
+ @Produces(DEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task deploy(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) DeployVAppParams params);
/**
* Discard suspended state of a {@link Vm}.
@@ -103,9 +174,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#discardSuspendedState(String)
*/
- Task discardSuspendedState(String vmUrn);
-
- Task discardSuspendedState(URI vmHref);
+ @POST
+ @Path("/action/discardSuspendedState")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task discardSuspendedState(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/action/discardSuspendedState")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task discardSuspendedState(@EndpointParam URI vmHref);
/**
* Installs VMware tools to the virtual machine.
@@ -118,9 +197,17 @@ public interface VmApi {
*
* @since 1.5
*/
- Task installVMwareTools(String vmUrn);
-
- Task installVMwareTools(URI vmHref);
+ @POST
+ @Path("/action/installVMwareTools")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task installVMwareTools(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/action/installVMwareTools")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task installVMwareTools(@EndpointParam URI vmHref);
/**
* Relocates a {@link Vm}.
@@ -131,9 +218,20 @@ public interface VmApi {
*
* @since 1.5
*/
- Task relocate(String vmUrn, RelocateParams params);
-
- Task relocate(URI vmHref, RelocateParams params);
+ @POST
+ @Path("/action/relocate")
+ @Produces(RELOCATE_VM_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task relocate(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RelocateParams params);
+
+ @POST
+ @Path("/action/relocate")
+ @Produces(RELOCATE_VM_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task relocate(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) RelocateParams params);
/**
* Undeploy a {@link Vm}.
@@ -141,9 +239,21 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#undeploy(String, UndeployVAppParams)
*/
- Task undeploy(String vmUrn, UndeployVAppParams params);
-
- Task undeploy(URI vmHref, UndeployVAppParams params);
+ @POST
+ @Path("/action/undeploy")
+ @Produces(UNDEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task undeploy(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
+
+ @POST
+ @Path("/action/undeploy")
+ @Produces(UNDEPLOY_VAPP_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task undeploy(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) UndeployVAppParams params);
/**
* Upgrade virtual hardware version of a VM to the highest supported virtual hardware version of
@@ -155,9 +265,17 @@ public interface VmApi {
*
* @since 1.5
*/
- Task upgradeHardwareVersion(String vmUrn);
-
- Task upgradeHardwareVersion(URI vmHref);
+ @POST
+ @Path("/action/upgradeHardwareVersion")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task upgradeHardwareVersion(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/action/upgradeHardwareVersion")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task upgradeHardwareVersion(@EndpointParam URI vmHref);
/**
* Powers off a {@link Vm}.
@@ -165,9 +283,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#powerOff(String)
*/
- Task powerOff(String vmUrn);
-
- Task powerOff(URI vmHref);
+ @POST
+ @Path("/power/action/powerOff")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOff(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/powerOff")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOff(@EndpointParam URI vmHref);
/**
* Powers on a {@link Vm}.
@@ -175,9 +301,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#powerOn(String)
*/
- Task powerOn(String vmUrn);
-
- Task powerOn(URI vmHref);
+ @POST
+ @Path("/power/action/powerOn")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOn(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/powerOn")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task powerOn(@EndpointParam URI vmHref);
/**
* Reboots a {@link Vm}.
@@ -185,9 +319,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#reboot(String)
*/
- Task reboot(String vmUrn);
-
- Task reboot(URI vmHref);
+ @POST
+ @Path("/power/action/reboot")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reboot(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/reboot")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reboot(@EndpointParam URI vmHref);
/**
* Resets a {@link Vm}.
@@ -195,9 +337,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#reset(String)
*/
- Task reset(String vmUrn);
-
- Task reset(URI vmHref);
+ @POST
+ @Path("/power/action/reset")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reset(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/reset")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task reset(@EndpointParam URI vmHref);
/**
* Shuts down a {@link Vm}.
@@ -205,9 +355,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#shutdown(String)
*/
- Task shutdown(String vmUrn);
-
- Task shutdown(URI vmHref);
+ @POST
+ @Path("/power/action/shutdown")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task shutdown(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/shutdown")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task shutdown(@EndpointParam URI vmHref);
/**
* Suspends a {@link Vm}.
@@ -215,9 +373,17 @@ public interface VmApi {
* @since 0.9
* @see VAppApi#suspend(String)
*/
- Task suspend(String vmUrn);
-
- Task suspend(URI vmHref);
+ @POST
+ @Path("/power/action/suspend")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task suspend(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/power/action/suspend")
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task suspend(@EndpointParam URI vmHref);
/**
* Retrieves the guest customization section of a {@link Vm}.
@@ -228,9 +394,19 @@ public interface VmApi {
*
* @since 1.0
*/
- GuestCustomizationSection getGuestCustomizationSection(String vmUrn);
-
- GuestCustomizationSection getGuestCustomizationSection(URI vmHref);
+ @GET
+ @Path("/guestCustomizationSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ GuestCustomizationSection getGuestCustomizationSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/guestCustomizationSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ GuestCustomizationSection getGuestCustomizationSection(@EndpointParam URI vmHref);
/**
* Modifies the guest customization section of a {@link Vm}.
@@ -241,9 +417,21 @@ public interface VmApi {
*
* @since 1.0
*/
- Task editGuestCustomizationSection(String vmUrn, GuestCustomizationSection section);
-
- Task editGuestCustomizationSection(URI vmHref, GuestCustomizationSection section);
+ @PUT
+ @Path("/guestCustomizationSection")
+ @Produces(GUEST_CUSTOMIZATION_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editGuestCustomizationSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) GuestCustomizationSection section);
+
+ @PUT
+ @Path("/guestCustomizationSection")
+ @Produces(GUEST_CUSTOMIZATION_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editGuestCustomizationSection(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) GuestCustomizationSection section);
/**
* Ejects media from a {@link Vm}.
@@ -254,9 +442,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task ejectMedia(String vmUrn, MediaInsertOrEjectParams mediaParams);
-
- Task ejectMedia(URI vmHref, MediaInsertOrEjectParams mediaParams);
+ @POST
+ @Path("/media/action/ejectMedia")
+ @Produces(MEDIA_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task ejectMedia(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
+
+ @POST
+ @Path("/media/action/ejectMedia")
+ @Produces(MEDIA_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task ejectMedia(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
/**
* Insert media into a {@link Vm}.
@@ -267,9 +467,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task insertMedia(String vmUrn, MediaInsertOrEjectParams mediaParams);
-
- Task insertMedia(URI vmHref, MediaInsertOrEjectParams mediaParams);
+ @POST
+ @Path("/media/action/insertMedia")
+ @Produces(MEDIA_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task insertMedia(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
+
+ @POST
+ @Path("/media/action/insertMedia")
+ @Produces(MEDIA_PARAMS)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task insertMedia(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) MediaInsertOrEjectParams mediaParams);
/**
* Retrieves the network connection section of a {@link Vm}.
@@ -280,9 +492,19 @@ public interface VmApi {
*
* @since 0.9
*/
- NetworkConnectionSection getNetworkConnectionSection(String vmUrn);
-
- NetworkConnectionSection getNetworkConnectionSection(URI vmHref);
+ @GET
+ @Path("/networkConnectionSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConnectionSection getNetworkConnectionSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/networkConnectionSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ NetworkConnectionSection getNetworkConnectionSection(@EndpointParam URI vmHref);
/**
* Modifies the network connection section of a {@link Vm}.
@@ -293,9 +515,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editNetworkConnectionSection(String vmUrn, NetworkConnectionSection section);
-
- Task editNetworkConnectionSection(URI vmHref, NetworkConnectionSection section);
+ @PUT
+ @Path("/networkConnectionSection")
+ @Produces(NETWORK_CONNECTION_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editNetworkConnectionSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) NetworkConnectionSection section);
+
+ @PUT
+ @Path("/networkConnectionSection")
+ @Produces(NETWORK_CONNECTION_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editNetworkConnectionSection(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) NetworkConnectionSection section);
/**
* Retrieves the operating system section of a {@link Vm}.
@@ -306,9 +540,19 @@ public interface VmApi {
*
* @since 0.9
*/
- OperatingSystemSection getOperatingSystemSection(String vmUrn);
-
- OperatingSystemSection getOperatingSystemSection(URI vmHref);
+ @GET
+ @Path("/operatingSystemSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OperatingSystemSection getOperatingSystemSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/operatingSystemSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ OperatingSystemSection getOperatingSystemSection(@EndpointParam URI vmHref);
/**
* Modifies the operating system section of a {@link Vm}.
@@ -319,9 +563,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editOperatingSystemSection(String vmUrn, OperatingSystemSection section);
-
- Task editOperatingSystemSection(URI vmHref, OperatingSystemSection section);
+ @PUT
+ @Path("/operatingSystemSection")
+ @Produces(OPERATING_SYSTEM_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editOperatingSystemSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) OperatingSystemSection section);
+
+ @PUT
+ @Path("/operatingSystemSection")
+ @Produces(OPERATING_SYSTEM_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editOperatingSystemSection(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) OperatingSystemSection section);
/**
* Retrieves {@link Vm} product sections.
@@ -329,9 +585,19 @@ public interface VmApi {
* @since 1.5
* @see VAppApi#getProductSections(String)
*/
- ProductSectionList getProductSections(String vmUrn);
-
- ProductSectionList getProductSections(URI vmHref);
+ @GET
+ @Path("/productSections")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/productSections")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ProductSectionList getProductSections(@EndpointParam URI vmHref);
/**
* Modifies the product section information of a {@link Vm}.
@@ -339,9 +605,21 @@ public interface VmApi {
* @since 1.5
* @see VAppApi#editProductSections(String, ProductSectionList)
*/
- Task editProductSections(String vmUrn, ProductSectionList sectionList);
-
- Task editProductSections(URI vmHref, ProductSectionList sectionList);
+ @PUT
+ @Path("/productSections")
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
+
+ @PUT
+ @Path("/productSections")
+ @Produces(PRODUCT_SECTION_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editProductSections(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) ProductSectionList sectionList);
/**
* Retrieves a pending question for a {@link Vm}.
@@ -356,9 +634,19 @@ public interface VmApi {
*
* @since 0.9
*/
- VmPendingQuestion getPendingQuestion(String vmUrn);
-
- VmPendingQuestion getPendingQuestion(URI vmHref);
+ @GET
+ @Path("/question")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VmPendingQuestion getPendingQuestion(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/question")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VmPendingQuestion getPendingQuestion(@EndpointParam URI vmHref);
/**
* Answer a pending question on a {@link Vm}.
@@ -372,9 +660,20 @@ public interface VmApi {
*
* @since 0.9
*/
- void answerQuestion(String vmUrn, VmQuestionAnswer answer);
-
- void answerQuestion(URI vmHref, VmQuestionAnswer answer);
+ @POST
+ @Path("/question/action/answer")
+ @Produces(VM_PENDING_ANSWER)
+ @Consumes
+ @JAXBResponseParser
+ void answerQuestion(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) VmQuestionAnswer answer);
+
+ @POST
+ @Path("/question/action/answer")
+ @Produces(VM_PENDING_ANSWER)
+ @Consumes
+ @JAXBResponseParser
+ void answerQuestion(@EndpointParam URI vmHref, @BinderParam(BindToXMLPayload.class) VmQuestionAnswer answer);
/**
* Retrieves the runtime info section of a {@link Vm}.
@@ -385,9 +684,19 @@ public interface VmApi {
*
* @since 1.5
*/
- RuntimeInfoSection getRuntimeInfoSection(String vmUrn);
-
- RuntimeInfoSection getRuntimeInfoSection(URI vmHref);
+ @GET
+ @Path("/runtimeInfoSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RuntimeInfoSection getRuntimeInfoSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/runtimeInfoSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RuntimeInfoSection getRuntimeInfoSection(@EndpointParam URI vmHref);
/**
* Retrieves the thumbnail of the screen of a {@link Vm}.
@@ -400,9 +709,19 @@ public interface VmApi {
*
* @since 0.9
*/
- byte[] getScreenImage(String vmUrn);
-
- byte[] getScreenImage(URI vmHref);
+ @GET
+ @Path("/screen")
+ @Consumes(ANY_IMAGE)
+ @Fallback(NullOnNotFoundOr404.class)
+ @ResponseParser(ReturnPayloadBytes.class)
+ byte[] getScreenImage(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/screen")
+ @Consumes(ANY_IMAGE)
+ @Fallback(NullOnNotFoundOr404.class)
+ @ResponseParser(ReturnPayloadBytes.class)
+ byte[] getScreenImage(@EndpointParam URI vmHref);
/**
* Retrieve a screen ticket for remote console connection to a {@link Vm}.
@@ -420,9 +739,19 @@ public interface VmApi {
*
* @since 0.9
*/
- ScreenTicket getScreenTicket(String vmUrn);
-
- ScreenTicket getScreenTicket(URI vmHref);
+ @POST
+ @Path("/screen/action/acquireTicket")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ScreenTicket getScreenTicket(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @POST
+ @Path("/screen/action/acquireTicket")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ ScreenTicket getScreenTicket(@EndpointParam URI vmHref);
/**
* Retrieves the virtual hardware section of a {@link Vm}.
@@ -433,9 +762,19 @@ public interface VmApi {
*
* @since 0.9
*/
- VirtualHardwareSection getVirtualHardwareSection(String vmUrn);
-
- VirtualHardwareSection getVirtualHardwareSection(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VirtualHardwareSection getVirtualHardwareSection(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ VirtualHardwareSection getVirtualHardwareSection(@EndpointParam URI vmHref);
/**
* Modifies the virtual hardware section of a {@link Vm}.
@@ -446,9 +785,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editVirtualHardwareSection(String vmUrn, VirtualHardwareSection section);
-
- Task editVirtualHardwareSection(URI vmHref, VirtualHardwareSection section);
+ @PUT
+ @Path("/virtualHardwareSection")
+ @Produces(VIRTUAL_HARDWARE_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSection(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) VirtualHardwareSection section);
+
+ @PUT
+ @Path("/virtualHardwareSection")
+ @Produces(VIRTUAL_HARDWARE_SECTION)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSection(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) VirtualHardwareSection section);
/**
* Retrieves the CPU properties in virtual hardware section of a {@link Vm}.
@@ -459,9 +810,19 @@ public interface VmApi {
*
* @since 0.9
*/
- RasdItem getVirtualHardwareSectionCpu(String vmUrn);
-
- RasdItem getVirtualHardwareSectionCpu(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/cpu")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItem getVirtualHardwareSectionCpu(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/cpu")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItem getVirtualHardwareSectionCpu(@EndpointParam URI vmHref);
/**
* Modifies the CPU properties in virtual hardware section of a {@link Vm}.
@@ -472,9 +833,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editVirtualHardwareSectionCpu(String vmUrn, RasdItem rasd);
-
- Task editVirtualHardwareSectionCpu(URI vmHref, RasdItem rasd);
+ @PUT
+ @Path("/virtualHardwareSection/cpu")
+ @Produces(OVF_RASD_ITEM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionCpu(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RasdItem rasd);
+
+ @PUT
+ @Path("/virtualHardwareSection/cpu")
+ @Produces(OVF_RASD_ITEM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionCpu(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) RasdItem rasd);
/**
* Retrieves a list of items for disks from virtual hardware section of a {@link Vm}.
@@ -485,9 +858,19 @@ public interface VmApi {
*
* @since 0.9
*/
- RasdItemsList getVirtualHardwareSectionDisks(String vmUrn);
-
- RasdItemsList getVirtualHardwareSectionDisks(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/disks")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionDisks(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/disks")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionDisks(@EndpointParam URI vmHref);
/**
* Modifies the disks list in virtual hardware section of a {@link Vm}.
@@ -498,9 +881,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editVirtualHardwareSectionDisks(String vmUrn, RasdItemsList rasdItemsList);
-
- Task editVirtualHardwareSectionDisks(URI vmHref, RasdItemsList rasdItemsList);
+ @PUT
+ @Path("/virtualHardwareSection/disks")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionDisks(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
+
+ @PUT
+ @Path("/virtualHardwareSection/disks")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionDisks(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
/**
* Retrieves the list of items that represents the floppies and CD/DVD drives in a {@link Vm}.
@@ -511,9 +906,19 @@ public interface VmApi {
*
* @since 0.9
*/
- RasdItemsList getVirtualHardwareSectionMedia(String vmUrn);
-
- RasdItemsList getVirtualHardwareSectionMedia(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/media")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionMedia(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/media")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionMedia(@EndpointParam URI vmHref);
/**
* Retrieves the item that contains memory information from virtual hardware section of a
@@ -525,9 +930,19 @@ public interface VmApi {
*
* @since 0.9
*/
- RasdItem getVirtualHardwareSectionMemory(String vmUrn);
-
- RasdItem getVirtualHardwareSectionMemory(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/memory")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItem getVirtualHardwareSectionMemory(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/memory")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItem getVirtualHardwareSectionMemory(@EndpointParam URI vmHref);
/**
* Modifies the memory properties in virtual hardware section of a {@link Vm}.
@@ -538,9 +953,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editVirtualHardwareSectionMemory(String vmUrn, RasdItem rasd);
-
- Task editVirtualHardwareSectionMemory(URI vmHref, RasdItem rasd);
+ @PUT
+ @Path("/virtualHardwareSection/memory")
+ @Produces(OVF_RASD_ITEM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionMemory(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RasdItem rasd);
+
+ @PUT
+ @Path("/virtualHardwareSection/memory")
+ @Produces(OVF_RASD_ITEM)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionMemory(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) RasdItem rasd);
/**
* Retrieves a list of items for network cards from virtual hardware section of a {@link Vm}.
@@ -551,9 +978,19 @@ public interface VmApi {
*
* @since 0.9
*/
- RasdItemsList getVirtualHardwareSectionNetworkCards(String vmUrn);
-
- RasdItemsList getVirtualHardwareSectionNetworkCards(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/networkCards")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionNetworkCards(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/networkCards")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionNetworkCards(@EndpointParam URI vmHref);
/**
* Modifies the network cards list in virtual hardware section of a {@link Vm}.
@@ -564,9 +1001,21 @@ public interface VmApi {
*
* @since 0.9
*/
- Task editVirtualHardwareSectionNetworkCards(String vmUrn, RasdItemsList rasdItemsList);
-
- Task editVirtualHardwareSectionNetworkCards(URI vmHref, RasdItemsList rasdItemsList);
+ @PUT
+ @Path("/virtualHardwareSection/networkCards")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionNetworkCards(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
+
+ @PUT
+ @Path("/virtualHardwareSection/networkCards")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionNetworkCards(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
/**
* Retrieves a list of items for serial ports from virtual hardware section of a {@link Vm}.
@@ -577,9 +1026,19 @@ public interface VmApi {
*
* @since 1.5
*/
- RasdItemsList getVirtualHardwareSectionSerialPorts(String vmUrn);
-
- RasdItemsList getVirtualHardwareSectionSerialPorts(URI vmHref);
+ @GET
+ @Path("/virtualHardwareSection/serialPorts")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionSerialPorts(@EndpointParam(parser = URNToHref.class) String vmUrn);
+
+ @GET
+ @Path("/virtualHardwareSection/serialPorts")
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ RasdItemsList getVirtualHardwareSectionSerialPorts(@EndpointParam URI vmHref);
/**
* Modifies the serial ports list in virtual hardware section of a {@link Vm}.
@@ -590,7 +1049,19 @@ public interface VmApi {
*
* @since 1.5
*/
- Task editVirtualHardwareSectionSerialPorts(String vmUrn, RasdItemsList rasdItemsList);
-
- Task editVirtualHardwareSectionSerialPorts(URI vmHref, RasdItemsList rasdItemsList);
+ @PUT
+ @Path("/virtualHardwareSection/serialPorts")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionSerialPorts(@EndpointParam(parser = URNToHref.class) String vmUrn,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
+
+ @PUT
+ @Path("/virtualHardwareSection/serialPorts")
+ @Produces(OVF_RASD_ITEMS_LIST)
+ @Consumes(TASK)
+ @JAXBResponseParser
+ Task editVirtualHardwareSectionSerialPorts(@EndpointParam URI vmHref,
+ @BinderParam(BindToXMLPayload.class) RasdItemsList rasdItemsList);
}