package com.l7tech.gateway.common.security.signer;

import com.l7tech.gateway.common.admin.Administrative;
import com.l7tech.gateway.common.security.rbac.MethodStereotype;
import com.l7tech.gateway.common.security.rbac.Secured;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import java.security.cert.X509Certificate;
import java.util.Collection;
import org.jetbrains.annotations.NotNull;

@Secured
@Administrative
public interface TrustedSignerCertsAdmin {
   @Administrative(background = true)
   @Secured(types = EntityType.SERVER_MODULE_FILE, stereotype = MethodStereotype.SAVE)
   @NotNull
   Collection<X509Certificate> lookUpTrustedSigningCertsForServerModuleFiles() throws FindException;

   @Administrative(background = true)
   @Secured(types = EntityType.SOLUTION_KIT, stereotype = MethodStereotype.SAVE_OR_UPDATE)
   @NotNull
   Collection<X509Certificate> lookUpTrustedSigningCertsForSolutionKits() throws FindException;
}
