Class AutoScalerFactoryRestApi
- java.lang.Object
-
- com.elastisys.autoscaler.server.restapi.AutoScalerFactoryRestApi
-
@Path("/") @Consumes("application/json") @Produces("application/json") public class AutoScalerFactoryRestApi extends java.lang.ObjectA JAX-RS REST response handler web resource that provides a remote management API for anAutoScalerFactoryand its set ofAutoScalerinstances. This REST API is a thin wrapper on top of theAutoScalerFactoryandAutoScalerAPIs.- See Also:
AutoScalerFactory,AutoScaler
-
-
Constructor Summary
Constructors Constructor Description AutoScalerFactoryRestApi(com.elastisys.autoscaler.core.autoscaler.factory.AutoScalerFactory autoScalerFactory)Constructs a newAutoScalerFactoryRestApiwith a given backingAutoScalerFactory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.ws.rs.core.ResponsecreateInstance(com.google.gson.JsonObject jsonBlueprint)Creates anAutoScalerfrom a JSON-formattedAutoScalerBlueprint.javax.ws.rs.core.ResponsedeleteInstance(java.lang.String autoScalerId)Returns theAutoScalerBlueprintfrom which a givenAutoScalerinstance was created.com.elastisys.autoscaler.core.autoscaler.factory.AutoScalerFactorygetAutoScalerFactory()Returns theAutoScalerFactorybacking this REST endpoint.javax.ws.rs.core.ResponsegetInstanceBlueprint(java.lang.String autoScalerId)Returns theAutoScalerBlueprintfrom which a givenAutoScalerinstance was created.javax.ws.rs.core.ResponsegetInstanceConfig(java.lang.String autoScalerId)Retrieves the full (JSON) configuration document of a certainAutoScalerinstance and all its subsystems.javax.ws.rs.core.ResponsegetInstances()Returns URLs to all availableAutoScalerinstances.javax.ws.rs.core.ResponsegetInstanceStatus(java.lang.String autoScalerId)Retrieves theServiceStatusfor a certainAutoScalerinstance and all its subsystems.javax.ws.rs.core.ResponsegetInstanceUuid(java.lang.String autoScalerId)Retrieves the universally unique identifier (UUID) assigned to theAutoScalerinstance at the time of creation.javax.ws.rs.core.ResponsepostInstanceConfig(java.lang.String autoScalerId, com.google.gson.JsonObject config)Sets a new configuration for all subsystems of a certainAutoScalerinstance.voidstart()javax.ws.rs.core.ResponsestartInstance(java.lang.String autoScalerId)Starts anAutoScalerinstance and all its subsystems.voidstop()javax.ws.rs.core.ResponsestopInstance(java.lang.String autoScalerId)Stops anAutoScalerinstance and all its subsystems.
-
-
-
Constructor Detail
-
AutoScalerFactoryRestApi
public AutoScalerFactoryRestApi(com.elastisys.autoscaler.core.autoscaler.factory.AutoScalerFactory autoScalerFactory)
Constructs a newAutoScalerFactoryRestApiwith a given backingAutoScalerFactory.- Parameters:
autoScalerFactory- TheAutoScalerFactorybacking this REST endpoint.
-
-
Method Detail
-
start
public void start()
-
stop
public void stop()
-
getInstances
@GET @Path("/autoscaler/instances") public javax.ws.rs.core.Response getInstances()Returns URLs to all availableAutoScalerinstances.- Returns:
- A list of
AutoScalerinstance URLs.
-
createInstance
@POST @Path("/autoscaler/instances") public javax.ws.rs.core.Response createInstance(com.google.gson.JsonObject jsonBlueprint)Creates anAutoScalerfrom a JSON-formattedAutoScalerBlueprint. TheAutoScalerBlueprintspecifies the implementation classes to use for the variousAutoScalersubsystems. For cases where the provided blueprint doesn't explicitly provide an implementation class for a certain subsystem, the factory will fall back to using defaults as specified in theAutoScaler.Defaults. The createdAutoScalerinstance is in an unconfigured and unstarted state.- Parameters:
systemBlueprint- A JSON-formattedAutoScalerBlueprintthat specifies the implementation classes to use for the variousAutoScalersubsystems.- Returns:
- The URL to the created
AutoScalerinstance.
-
getInstanceBlueprint
@GET @Path("/autoscaler/instances/{id}/blueprint") public javax.ws.rs.core.Response getInstanceBlueprint(@PathParam("id") java.lang.String autoScalerId)Returns theAutoScalerBlueprintfrom which a givenAutoScalerinstance was created. The blueprint could, for example, be used as factory input to produce a clone of a certainAutoScalerinstance.- Parameters:
id- The identifier of theAutoScalerinstance of interest.- Returns:
- The blueprint from which the
AutoScalerinstance was created.
-
deleteInstance
@DELETE @Path("/autoscaler/instances/{id}") public javax.ws.rs.core.Response deleteInstance(@PathParam("id") java.lang.String autoScalerId)Returns theAutoScalerBlueprintfrom which a givenAutoScalerinstance was created. The blueprint could, for example, be used as factory input to produce a clone of a certainAutoScalerinstance.- Parameters:
id- The identifier of theAutoScalerinstance of interest.- Returns:
- The blueprint from which the
AutoScalerinstance was created.
-
getInstanceUuid
@GET @Path("/autoscaler/instances/{id}/uuid") public javax.ws.rs.core.Response getInstanceUuid(@PathParam("id") java.lang.String autoScalerId)Retrieves the universally unique identifier (UUID) assigned to theAutoScalerinstance at the time of creation.- Parameters:
autoScalerId-- Returns:
-
postInstanceConfig
@POST @Path("/autoscaler/instances/{id}/config") public javax.ws.rs.core.Response postInstanceConfig(@PathParam("id") java.lang.String autoScalerId, com.google.gson.JsonObject config)Sets a new configuration for all subsystems of a certainAutoScalerinstance.- Parameters:
autoScalerId-config-- Returns:
-
getInstanceConfig
@GET @Path("/autoscaler/instances/{id}/config") public javax.ws.rs.core.Response getInstanceConfig(@PathParam("id") java.lang.String autoScalerId)Retrieves the full (JSON) configuration document of a certainAutoScalerinstance and all its subsystems. Note: anAutoScalerinstance clone could be produced by instantiating anotherAutoScalerinstance with the same blueprint and then applying the same configuration document to the created instance.- Parameters:
autoScalerId-- Returns:
-
getInstanceStatus
@GET @Path("/autoscaler/instances/{id}/status") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response getInstanceStatus(@PathParam("id") java.lang.String autoScalerId)Retrieves theServiceStatusfor a certainAutoScalerinstance and all its subsystems.- Parameters:
autoScalerId-- Returns:
-
startInstance
@POST @Path("/autoscaler/instances/{id}/start") public javax.ws.rs.core.Response startInstance(@PathParam("id") java.lang.String autoScalerId)Starts anAutoScalerinstance and all its subsystems.- Parameters:
autoScalerId-- Returns:
-
stopInstance
@POST @Path("/autoscaler/instances/{id}/stop") public javax.ws.rs.core.Response stopInstance(@PathParam("id") java.lang.String autoScalerId)Stops anAutoScalerinstance and all its subsystems.- Parameters:
autoScalerId-- Returns:
-
getAutoScalerFactory
public com.elastisys.autoscaler.core.autoscaler.factory.AutoScalerFactory getAutoScalerFactory()
Returns theAutoScalerFactorybacking this REST endpoint.- Returns:
-
-