io.swagger.v3.oas.annotations.extensions.Extension Maven / Gradle / Ivy
package io.swagger.v3.oas.annotations.extensions;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
/**
* An optionally named list of extension properties.
*
* @see Specification extensions (OpenAPI specification)
*/
@Target({FIELD, METHOD, PARAMETER, TYPE, ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Extensions.class)
public @interface Extension {
/**
* An option name for these extensions.
*
* @return an option name for these extensions - will be prefixed with "x-"
*/
String name() default "";
/**
* The extension properties.
*
* @return the actual extension properties
* @see ExtensionProperty
*/
ExtensionProperty[] properties();
}