String deployServer()

in dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java [96:207]


   String deployServer(@PayloadParam("name") String name, @PayloadParam("imageId") String imageId,
         @PayloadParam("start") Boolean start, @PayloadParam("networkInfo") NetworkInfo networkInfo,
         @PayloadParam("administratorPassword") String administratorPassword);

   @Named("server:deploy")
   @POST
   @Path("/deployServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(CreateServerOptions.class)
   @ResponseParser(ServerId.class)
   String deployServer(@PayloadParam("name") String name, @PayloadParam("imageId") String imageId,
         @PayloadParam("start") Boolean start, @PayloadParam("networkInfo") NetworkInfo networkInfo,
         @Nullable @PayloadParam("administratorPassword") String administratorPassword,
         @Nullable @PayloadParam("disk") List<Disk> disks, @Nullable CreateServerOptions options);

   @Named("server:delete")
   @POST
   @Path("/deleteServer")
   @Produces(MediaType.APPLICATION_JSON)
   @Fallback(Fallbacks.VoidOnNotFoundOr404.class)
   @MapBinder(BindToJsonPayload.class)
   void deleteServer(@PayloadParam("id") String id);

   @Named("server:powerOff")
   @POST
   @Path("/powerOffServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void powerOffServer(@PayloadParam("id") String id);

   @Named("server:reboot")
   @POST
   @Path("/rebootServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void rebootServer(@PayloadParam("id") String id);

   @Named("server:reconfigure")
   @POST
   @Path("/reconfigureServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void reconfigureServer(@PayloadParam("id") String id, @PayloadParam("cpuCount") int cpuCount,
         @PayloadParam("cpuSpeed") String cpuSpeed, @PayloadParam("coresPerSocket") int coresPerSocket);

   @Named("server:clone")
   @POST
   @Path("/cloneServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(CloneServerOptions.class)
   @ResponseParser(ImageId.class)
   String cloneServer(@PayloadParam("id") String id, @PayloadParam("imageName") String imageName,
         CloneServerOptions cloneServerOptions);

   @Named("server:start")
   @POST
   @Path("/startServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void startServer(@PayloadParam("id") String id);

   /**
    * Operation for cleaning servers with FAILED_ADD state
    *
    * @see org.jclouds.dimensiondata.cloudcontrol.domain.State.FAILED_ADD
    */
   @Named("server:cleanServer")
   @POST
   @Path("/cleanServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void cleanServer(@PayloadParam("id") String id);

   @Named("server:shutdown")
   @POST
   @Path("/shutdownServer")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void shutdownServer(@PayloadParam("id") String id);

   @Singleton
   final class ParseServers extends ParseJson<Servers> {

      @Inject
      ParseServers(final Json json) {
         super(json, TypeLiteral.get(Servers.class));
      }

      static class ToPagedIterable extends Arg0ToPagedIterable<Server, ToPagedIterable> {

         private DimensionDataCloudControlApi api;

         @Inject
         ToPagedIterable(final DimensionDataCloudControlApi api) {
            this.api = api;
         }

         @Override
         protected Function<Object, IterableWithMarker<Server>> markerToNextForArg0(final Optional<Object> arg0) {
            return new Function<Object, IterableWithMarker<Server>>() {
               @Override
               public IterableWithMarker<Server> apply(Object input) {
                  DatacenterIdListFilters datacenterIdListFilters = arg0.isPresent() ?
                        ((DatacenterIdListFilters) arg0.get()).paginationOptions(PaginationOptions.class.cast(input)) :
                        DatacenterIdListFilters.Builder.paginationOptions(PaginationOptions.class.cast(input));
                  return api.getServerApi().listServers(datacenterIdListFilters);
               }
            };
         }
      }

   }