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

import com.l7tech.objectmodel.EntityType;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Secured {
   EntityType[] types() default {EntityType.ANY};

   MethodStereotype stereotype() default MethodStereotype.NONE;

   int relevantArg() default -1;

   String otherOperation() default "";

   String customInterceptor() default "";

   String customEntityTranslatorClassName() default "";
}
