001package io.prometheus.metrics.annotations;
002
003import static java.lang.annotation.ElementType.CONSTRUCTOR;
004import static java.lang.annotation.ElementType.FIELD;
005import static java.lang.annotation.ElementType.METHOD;
006import static java.lang.annotation.ElementType.TYPE;
007import static java.lang.annotation.RetentionPolicy.CLASS;
008
009import java.lang.annotation.Documented;
010import java.lang.annotation.Retention;
011import java.lang.annotation.Target;
012
013/**
014 * Marks a Java element as part of the stable, published Prometheus Metrics API.
015 *
016 * <p>Use this on public or protected types to publish the type and its members. Use it on
017 * individual constructors, methods, and fields when only part of a public type is stable.
018 */
019@Documented
020@Retention(CLASS)
021@Target({TYPE, CONSTRUCTOR, METHOD, FIELD})
022public @interface StableApi {}