001package com.identityworksllc.iiq.common.plugin.annotations;
002
003import java.lang.annotation.ElementType;
004import java.lang.annotation.Retention;
005import java.lang.annotation.RetentionPolicy;
006import java.lang.annotation.Target;
007
008/**
009 * Indicates that the API method ought to authorize the user only if they
010 * are authorized by all of the {@link AuthorizedBy} sub-elements.
011 */
012@Retention(RetentionPolicy.RUNTIME)
013@Target({ElementType.TYPE, ElementType.METHOD})
014public @interface AuthorizeAll {
015    /**
016     * The list of authorizations
017     * @return The list of authorizations
018     */
019    AuthorizedBy[] value();
020}