/** @see ServerApi#list(PaginationOptions) */ @Named("server:list") @GET @Consumes(MediaType.APPLICATION_JSON) @Path("/servers") @RequestFilters(AuthenticateRequest.class) @ResponseParser(ParseServers.class) @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) ListenableFuture<? extends PaginatedCollection<? extends Resource>> list(PaginationOptions options);
@Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.FLOATING_IP_POOLS, name = ExtensionNames.FLOATING_IP_POOLS, alias = ExtensionAliases.FLOATING_IP_POOLS) @Consumes(MediaType.APPLICATION_JSON) @Path("/os-floating-ip-pools") @RequestFilters(AuthenticateRequest.class) public interface FloatingIPPoolApi { /** * Lists all Floating IP Pools * * @return all Floating IP Pools */ @GET @SelectJson("floating_ip_pools") @Fallback(Fallbacks.EmptyFluentIterableOnNotFoundOr404.class) FluentIterable<? extends FloatingIPPool> list(); }
@RequestFilters(RestAuthentication.class) @VirtualHost @Path("/{jclouds.api-version}") public interface Route53Api extends Closeable {
@Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.QUOTA_CLASSES) @RequestFilters(AuthenticateRequest.class) @Path("/os-quota-class-sets") public interface QuotaClassAsyncApi {
/** * API relating to a built-in server, also called extended function * module (EFM), of type load balancer (SLB). */ @RequestFilters(RequestAuthenticator.class) @QueryParams(keys = RequestParameters.VERSION, values = FGCPApi.VERSION) @PayloadParams(keys = RequestParameters.VERSION, values = FGCPApi.VERSION) @Consumes(MediaType.TEXT_XML) public interface LoadBalancerApi extends BuiltinServerApi { /* SLB_RULE, getLBConfiguration(String id) SLB_LOAD_STATISTICS, getLoadBalancerStats(String id) SLB_ERROR_STATISTICS, getLoadBalancerErrorStats(String id) SLB_CERTIFICATE_LIST, getLoadBalancerCerts(String id) SLB_CONNECTION, getLoadBalancerConnection(String id) */ }
/** * Provides access to the OpenStack Compute (Nova) Consoles Extension API. * <p/> * */ @Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.CONSOLES, name = ExtensionNames.CONSOLES, alias = ExtensionAliases.CONSOLES) @RequestFilters(AuthenticateRequest.class) @Consumes(MediaType.APPLICATION_JSON) public interface ConsolesApi { /** * Gets the specified server Console. * * @param serverId Server id * @param type see {@link Console.Type} * @return a Console object containing the console url and type. */ @Named("consoles:getConsole") @POST @Path("/servers/{serverId}/action") @SelectJson("console") @Produces(MediaType.APPLICATION_JSON) @Fallback(MapHttp4xxCodesToExceptions.class) @MapBinder(BindConsoleToJsonPayload.class) Console getConsole(@PathParam("serverId") String serverId, @PayloadParam("type") Console.Type type); }
/** * Provides access to Amazon ELB Health Check functionality via the Query API * <p/> */ @RequestFilters(FormSigner.class) @Consumes(MediaType.APPLICATION_XML) @VirtualHost public interface HealthCheckApi { /** * @see <a href="http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_ConfigureHealthCheck.html">doc</a> * * @param loadBalancerName * @param healthCheck * @return */ @Named("ConfigureHealthCheck") @POST @Path("/") @XMLResponseParser(HealthCheckHandler.class) @FormParams(keys = ACTION, values = "ConfigureHealthCheck") @Fallback(Fallbacks.NullOnNotFoundOr404.class) HealthCheck configureHealthCheck(@FormParam("LoadBalancerName") String loadBalancerName, @BinderParam(BindHealthCheckToFormParams.class) HealthCheck healthCheck); }
/** * @author Inbar Stolberg */ @Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.ADMIN_ACTIONS) @RequestFilters(AuthenticateRequest.class) public interface AvailabilityZoneAsyncApi { /** * @return all availability zones */ @GET @Path("/os-availability-zone") @SelectJson("availabilityZoneInfo") @Consumes(MediaType.APPLICATION_JSON) @Fallback(Fallbacks.EmptyFluentIterableOnNotFoundOr404.class) ListenableFuture<? extends FluentIterable<? extends AvailabilityZone>> list(); }
@Beta @RequestFilters(FormSigner.class) @VirtualHost public interface SQSAsyncApi extends Closeable {
/** * Provides synchronous access to CloudStack storage pool features. * <p/> * * @see <a href="http://download.cloud.com/releases/2.2.0/api_2.2.12/TOC_Global_Admin.html" /> */ @RequestFilters(AuthenticationFilter.class) @QueryParams(keys = "response", values = "json") public interface GlobalStoragePoolApi { @Named("listStoragePools") @GET @QueryParams(keys = { "command", "listAll" }, values = { "listStoragePools", "true" }) @SelectJson("storagepool") @Consumes(MediaType.APPLICATION_JSON) Set<StoragePool> listStoragePools(ListStoragePoolsOptions... options); }
@RequestFilters(FormSigner.class) @VirtualHost public interface AvailabilityZoneAndRegionAsyncClient {
private List<HttpRequestFilter> getFiltersIfAnnotated(Invocation invocation) { List<HttpRequestFilter> filters = newArrayList(); if (invocation.getInvokable().getOwnerType().getRawType().isAnnotationPresent(RequestFilters.class)) { for (Class<? extends HttpRequestFilter> clazz : invocation.getInvokable().getOwnerType().getRawType() .getAnnotation(RequestFilters.class).value()) { HttpRequestFilter instance = injector.getInstance(clazz); filters.add(instance); logger.trace("adding filter %s from annotation on %s", instance, invocation.getInvokable().getOwnerType() .getRawType().getName()); } } if (invocation.getInvokable().isAnnotationPresent(RequestFilters.class)) { if (invocation.getInvokable().isAnnotationPresent(OverrideRequestFilters.class)) filters.clear(); for (Class<? extends HttpRequestFilter> clazz : invocation.getInvokable().getAnnotation(RequestFilters.class) .value()) { HttpRequestFilter instance = injector.getInstance(clazz); filters.add(instance); logger.trace("adding filter %s from annotation on %s", instance, invocation.getInvokable().getName()); } } return filters; }
@Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.FLOATING_IP_POOLS, name = ExtensionNames.FLOATING_IP_POOLS, alias = ExtensionAliases.FLOATING_IP_POOLS) @Consumes(MediaType.APPLICATION_JSON) @Path("/os-floating-ip-pools") @RequestFilters(AuthenticateRequest.class) public interface FloatingIPPoolApi { /** * Lists all Floating IP Pools * * @return all Floating IP Pools */ @GET @SelectJson("floating_ip_pools") @Fallback(Fallbacks.EmptyFluentIterableOnNotFoundOr404.class) FluentIterable<? extends FloatingIPPool> list(); }
@RequestFilters(RestAuthentication.class) @VirtualHost @Path("/{jclouds.api-version}") public interface Route53Api extends Closeable {
/** * API relating to a built-in server, also called extended function * module (EFM), of type load balancer (SLB). */ @RequestFilters(RequestAuthenticator.class) @QueryParams(keys = RequestParameters.VERSION, values = FGCPApi.VERSION) @PayloadParams(keys = RequestParameters.VERSION, values = FGCPApi.VERSION) @Consumes(MediaType.TEXT_XML) public interface LoadBalancerApi extends BuiltinServerApi { /* SLB_RULE, getLBConfiguration(String id) SLB_LOAD_STATISTICS, getLoadBalancerStats(String id) SLB_ERROR_STATISTICS, getLoadBalancerErrorStats(String id) SLB_CERTIFICATE_LIST, getLoadBalancerCerts(String id) SLB_CONNECTION, getLoadBalancerConnection(String id) */ }
/** * Provides access to the OpenStack Compute (Nova) Consoles Extension API. * <p/> * */ @Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.CONSOLES, name = ExtensionNames.CONSOLES, alias = ExtensionAliases.CONSOLES) @RequestFilters(AuthenticateRequest.class) @Consumes(MediaType.APPLICATION_JSON) public interface ConsolesApi { /** * Gets the specified server Console. * * @param serverId Server id * @param type see {@link Console.Type} * @return a Console object containing the console url and type. */ @Named("consoles:getConsole") @POST @Path("/servers/{serverId}/action") @SelectJson("console") @Produces(MediaType.APPLICATION_JSON) @Fallback(MapHttp4xxCodesToExceptions.class) @MapBinder(BindConsoleToJsonPayload.class) Console getConsole(@PathParam("serverId") String serverId, @PayloadParam("type") Console.Type type); }
/** * Provides asynchronous access to Virtual Interface features (VIFs). * * @see VirtualInterfaceApi * @author Adam Lowe */ @Beta @Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.VIRTUAL_INTERFACES) @RequestFilters(AuthenticateRequest.class) public interface VirtualInterfaceAsyncApi { /** * @see VirtualInterfaceApi#listOnServer(String) */ @Named("virtualinterface:list") @GET @SelectJson("virtual_interfaces") @Consumes(MediaType.APPLICATION_JSON) @Path("/servers/{server_id}/os-virtual-interfaces") @Fallback(EmptyFluentIterableOnNotFoundOr404.class) ListenableFuture<? extends FluentIterable<? extends VirtualInterface>> listOnServer(@PathParam("server_id") String serverId); }
/** * Provides access to EC2 Windows Features via the Query API * <p/> * * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference" >doc</a> * @see WindowsAsyncApi * @author Adrian Cole */ @RequestFilters(FormSigner.class) @VirtualHost @Beta @SinceApiVersion("2008-08-08") public interface WindowsAsyncApi { /** * @see WindowsApi#getPasswordDataForInstance */ @Named("GetPasswordData") @POST @Path("/") @FormParams(keys = ACTION, values = "GetPasswordData") @XMLResponseParser(GetPasswordDataResponseHandler.class) @Fallback(NullOnNotFoundOr404.class) ListenableFuture<PasswordData> getPasswordDataForInstance(@FormParam("InstanceId") String instanceId); }
/** * Provides asynchronous access to CloudStack storage pool features. * <p/> * * @see GlobalStoragePoolClient * @see <a href="http://download.cloud.com/releases/2.2.0/api_2.2.12/TOC_Global_Admin.html" /> * @author Richard Downer */ @RequestFilters(AuthenticationFilter.class) @QueryParams(keys = "response", values = "json") public interface GlobalStoragePoolAsyncClient { @Named("listStoragePools") @GET @QueryParams(keys = { "command", "listAll" }, values = { "listStoragePools", "true" }) @SelectJson("storagepool") @Consumes(MediaType.APPLICATION_JSON) ListenableFuture<Set<StoragePool>> listStoragePools(ListStoragePoolsOptions... options); }
@RequestFilters(FormSigner.class) @VirtualHost public interface AvailabilityZoneAndRegionAsyncClient {