package org.alien4cloud.tosca.catalog.index;
import alien4cloud.plugin.aop.Overridable;
import alien4cloud.tosca.model.ArchiveRoot;
/**
* Check authorization when an archive is indexed in the repository.
*/
public interface IArchiveIndexerAuthorizationFilter {
/**
* Pre-check authorization to upload to the given workspace. This is because before parsing we don't know yet if the archive contains topology or types.
* The more detailed check based on the content of the CSAR should be done later with checkAuthorization method
*
* @param workspace the workspace to check for authorization
*/
@Overridable
void preCheckAuthorization(String workspace);
/**
* Check authorization to upload to the given workspace with the given archive.
* If the archive contains topology then ARCHITECT role is necessary.
* If the archive contains types then COMPONENT_MANAGER role is necessary.
*
* @param archiveRoot the archive to check for authorization
*/
@Overridable
void checkAuthorization(ArchiveRoot archiveRoot);
}