http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/3ecf3f03/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/3ecf3f03/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/3ecf3f03/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/3ecf3f03/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); }
