Represents a management interface for a scaling group on a particular cloud. The {@link ScalingGroup}, which takes care of all protocol/API-specifics of the targeted cloud, provides primitives for identifying scaling group member {@link Machine} instances, provisioning new machine instances, anddecommissioning machine instances.
Note that the {@code configure} method must be invoked prior to executing anyother methods. Implementations should throw {@link IllegalStateException}s whenever a method is accessed before a configuration has been set.
Implementors should take care to ensure that implementations are thread-safe, since they may be called by several concurrent threads.
@see BaseCloudAdapter