package alien4cloud.orchestrators.plugin;
import java.util.List;
import java.util.Set;
import org.alien4cloud.tosca.model.CSARDependency;
import org.alien4cloud.tosca.model.types.AbstractToscaType;
import alien4cloud.model.orchestrators.locations.LocationResourceTemplate;
/**
* Allows to access the resources of a defined location.
*/
public interface ILocationResourceAccessor {
/**
* Get all configured resources for the current location.
*
* @return A list with all configured resources for the location this instance is associated with.
*/
List<LocationResourceTemplate> getResources();
/**
* Get all the resources of the given type for a given location.
*
* @param type The type of the location resource to get.
* @return A list with all configured resources of the given type for the location this instance is associated with.
*/
List<LocationResourceTemplate> getResources(String type);
/**
* Get all tosca elements of a given type for a location
*
* @param type The type of the tosca element to get
* @return the tosca elements found given the provided type, in the related dependencies of the location.
*/
<T extends AbstractToscaType> T getIndexedToscaElement(String type);
/**
* Get the set of this location dependencies
*
* @return A Set of the location archives dependencies.
*/
Set<CSARDependency> getDependencies();
}