package com.oguerreiro.resilient.security.custom;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.oguerreiro.resilient.security.resillient.SecurityPermission;
import com.oguerreiro.resilient.security.resillient.SecurityResourceType;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ResilientSecurityResourceConfig {
  public static final String DEFAULT_CODE = "@CLASSNAME@";

  String code() default DEFAULT_CODE;

  SecurityResourceType type() default SecurityResourceType.DOMAIN;

  SecurityPermission defaultCreatePermission() default SecurityPermission.NONE;

  SecurityPermission defaultReadPermission() default SecurityPermission.NONE;

  SecurityPermission defaultUpdatePermission() default SecurityPermission.NONE;

  SecurityPermission defaultDeletePermission() default SecurityPermission.NONE;
}