001/* 002 * The contents of this file are subject to the terms of the Common Development and 003 * Distribution License (the License). You may not use this file except in compliance with the 004 * License. 005 * 006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the 007 * specific language governing permission and limitations under the License. 008 * 009 * When distributing Covered Software, include this CDDL Header Notice in each file and include 010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL 011 * Header, with the fields enclosed by brackets [] replaced by your own identifying 012 * information: "Portions copyright [year] [name of copyright owner]". 013 * 014 * Copyright 2016 ForgeRock AS. 015 */ 016 017package org.forgerock.api.annotations; 018 019import org.forgerock.api.enums.ParameterSource; 020 021/** 022 * A extra parameter to an operation. 023 */ 024public @interface Parameter { 025 /** The name of the parameter. */ 026 String name(); 027 /** The type semantics of the String value. */ 028 String type(); 029 /** The default value, if applicable. Should not be an empty string. */ 030 String defaultValue() default ""; 031 /** A description of the parameter. */ 032 String description() default ""; 033 /** The source of the parameter. Defaults to {@code PATH}. */ 034 ParameterSource source() default ParameterSource.PATH; 035 /** Whether the parameter is required. Defaults to {@code true}. */ 036 boolean required() default true; 037 /** Enumeration of acceptable values, if required. */ 038 String[] enumValues() default {}; 039 /** Titles of enumeration values. */ 040 String[] enumTitles() default {}; 041}