package com.eucalyptus.component.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Associates accounts to a component such that the accounts are visibly
* mapped to component in output provided to users.
*
* Use annotation by providing a list of account aliases that the component
* uses/relies upon.
* Example: @ComponentAccounts("serviceaccount1","serviceaccount2")
*
* Typically used with values from com.eucalyptus.auth.principal.AccountIdentifiers
* e.g. @ComponentAccounts(AccountIdentifiers.BLOCK_STORAGE_SYSTEM_ACCOUNT)
*
* Created by zhill on 8/4/15.
*/
@Target( { ElementType.TYPE,
ElementType.FIELD } )
@Retention( RetentionPolicy.RUNTIME )
public @interface PublicComponentAccounts {
String[] value() default {};
}