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 {}