001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package gov.nist.secauto.metaschema.databind.model.annotations; 007 008import static java.lang.annotation.ElementType.ANNOTATION_TYPE; 009import static java.lang.annotation.RetentionPolicy.RUNTIME; 010 011import java.lang.annotation.Documented; 012import java.lang.annotation.Retention; 013import java.lang.annotation.Target; 014 015import edu.umd.cs.findbugs.annotations.NonNull; 016 017/** 018 * This annotation provides an enumerated value that is used as part of an 019 * {@link AllowedValues} annotation. 020 */ 021@Documented 022@Retention(RUNTIME) 023@Target(ANNOTATION_TYPE) 024public @interface AllowedValue { 025 /** 026 * The specific enumerated value. 027 * 028 * @return the value 029 */ 030 @NonNull 031 String value(); 032 033 /** 034 * A description, encoded as a line of Markdown. 035 * 036 * @return an encoded markdown string 037 */ 038 @NonNull 039 String description(); 040 041 /** 042 * The version this value was deprecated in. 043 * 044 * @return the version or an empty string if the value is not deprecated 045 */ 046 @NonNull 047 String deprecatedVersion() default ""; 048}