All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elastisys.scale.cloudpool.google.commons.api.compute.InstanceGroupClient Maven / Gradle / Ivy

There is a newer version: 5.2.3
Show newest version
package com.elastisys.scale.cloudpool.google.commons.api.compute;

import java.util.List;

import com.elastisys.scale.cloudpool.api.NotFoundException;
import com.elastisys.scale.cloudpool.google.commons.errors.GceException;
import com.google.api.services.compute.model.InstanceGroupManager;
import com.google.api.services.compute.model.ManagedInstance;
import com.google.api.services.compute.model.Operation;

/**
 * Represents a management interface for a particular
 * managed
 * instance group. The interface works for both single-zone (zonal) and
 * multi-zone (regional) instance groups.
 */
public interface InstanceGroupClient {
    /**
     * Retrieves metadata about the instance group.
     *
     * @return
     * @throws GceException
     * @throws NotFoundException
     */
    InstanceGroupManager getInstanceGroup() throws GceException, NotFoundException;

    /**
     * Lists all instances in the instance group.
     *
     * @return
     * @throws GceException
     * @throws NotFoundException
     */
    List listInstances() throws GceException, NotFoundException;

    /**
     * Sets a new target size for the instance group.
     *
     * @param targetSize
     * @return
     * @throws GceException
     * @throws NotFoundException
     */
    Operation resize(int targetSize) throws GceException, NotFoundException;

    /**
     * Removes and terminates a set of instances from the instance group,
     * thereby decrementing the target size of he instance group.
     *
     * @param instanceUrls
     *            An list of instances to delete from the instance group. For
     *            example
     *            {@code https://www.googleapis.com/compute/v1/projects//zones/europe-west1-d/instances/webservers-d58p}.
     * @return
     *
     */
    Operation deleteInstances(List instanceUrls) throws GceException, NotFoundException;

    /**
     * Removes a set of instances from the instance group (without terminating
     * the instances), thereby decrementing the target size of he instance
     * group.
     *
     * @param instanceUrls
     *            An list of instances to detach from the instance group. For
     *            example
     *            {@code https://www.googleapis.com/compute/v1/projects//zones/europe-west1-d/instances/webservers-d58p}.
     * @return
     */
    Operation abandonInstances(List instanceUrls) throws GceException, NotFoundException;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy