1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.databind.model.annotations;
7   
8   import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
9   import static java.lang.annotation.RetentionPolicy.RUNTIME;
10  
11  import java.lang.annotation.Documented;
12  import java.lang.annotation.Retention;
13  import java.lang.annotation.Target;
14  
15  import edu.umd.cs.findbugs.annotations.NonNull;
16  
17  /**
18   * This annotation provides an enumerated value that is used as part of an
19   * {@link AllowedValues} annotation.
20   */
21  @Documented
22  @Retention(RUNTIME)
23  @Target(ANNOTATION_TYPE)
24  public @interface AllowedValue {
25    /**
26     * The specific enumerated value.
27     *
28     * @return the value
29     */
30    @NonNull
31    String value();
32  
33    /**
34     * A description, encoded as a line of Markdown.
35     *
36     * @return an encoded markdown string
37     */
38    @NonNull
39    String description();
40  
41    /**
42     * The version this value was deprecated in.
43     *
44     * @return the version or an empty string if the value is not deprecated
45     */
46    @NonNull
47    String deprecatedVersion() default "";
48  }