public interface MachineProvisioningLocation<T extends MachineLocation> extends ProvisioningLocation<T>
Location to add the ability to provision MachineLocations in this location.BrooklynObject.TagSupport| Modifier and Type | Method and Description | 
|---|---|
| java.util.Map<java.lang.String,java.lang.Object> | getProvisioningFlags(java.util.Collection<java.lang.String> tags)Gets flags, suitable as an argument to  obtain(Map). | 
| MachineProvisioningLocation<T> | newSubLocation(java.util.Map<?,?> newFlags)Creates a new location of the same type, but with additional creation instructions in the form of flags,
 e.g. | 
| T | obtain(java.util.Map<?,?> flags)Obtain a machine in this location. | 
| void | release(T machine)Release a previously-obtained machine. | 
containsLocation, getAllConfig, getChildren, getConfig, getConfig, getDisplayName, getExtension, getId, getParent, hasConfig, hasExtension, setParent, toVerboseStringgetCatalogItemId, getTagSupport, tagsT obtain(java.util.Map<?,?> flags) throws NoMachinesAvailableException
obtain in interface ProvisioningLocation<T extends MachineLocation>flags - Details of the desired machine (e.g. image, size, open ports, etc; some flag support is limited to selected providers).
 "callerContext" can be specified to have custom logging and error messages (useful if starting machines in parallel)NoMachinesAvailableException - if there are no machines available in this location (or impls may return null, but that is discouraged)MachineProvisioningLocation<T> newSubLocation(java.util.Map<?,?> newFlags)
Implementers who wish to subclass this provisioning location for additional functionality in a specific cloud can use the relevant implementation of this method as a guide.
void release(T machine)
release in interface ProvisioningLocation<T extends MachineLocation>machine - a MachineLocation previously obtained from a call to #obtain()java.lang.IllegalStateException - if the machine did not come from a call to #obtain() or it has already been released.java.util.Map<java.lang.String,java.lang.Object> getProvisioningFlags(java.util.Collection<java.lang.String> tags)
obtain(Map). The tags provided give
 hints about the machine required. The provisioning-location could be configured to 
 understand those tags. 
 
 For example, an AWS-location could be configured to understand that a particular entity
 type (e.g. "TomcatServer") requires a particular AMI in that region, so would return the 
 required image id.tags -