All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bettercloud.scim2.server.annotation.ScimResource Maven / Gradle / Ivy

package com.bettercloud.scim2.server.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Annotation for SCIM resource classes.
 */
@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ScimResource {

    /**
     * The description for the object.
     *
     * @return The object's description.
     */
    String description();

    /**
     * The name for the object.  This is a human readable
     * name.
     *
     * @return The object's human-readable name.
     */
    String name();

    /**
     * The "schemas" attribute is a REQUIRED attribute and is an array of
     * Strings containing URIs that are used to indicate the namespaces
     * of the SCIM schemas that define the attributes present in the
     * current JSON structure.  This attribute may be used by parsers to
     * define the attributes present in the JSON structure that is the
     * body to an HTTP request or response.  Each String value must be a
     * unique URI.  All representations of SCIM schemas MUST include a
     * non-empty array with value(s) of the URIs supported by that
     * representation.  The "schemas" attribute for a resource MUST only
     * contain values defined as "schema" and "schemaExtensions" for the
     * resource's defined "resourceType".  Duplicate values MUST NOT be
     * included.  Value order is not specified and MUST NOT impact
     * behavior.
     *
     * @return The primary/base resource class.
     */
    Class schema();

    /**
     * The required schema extension resource classes.
     *
     * @return The required schema extension resource classes.
     */
    Class[] requiredSchemaExtensions() default {};

    /**
     * The optional schema extension resource classes.
     *
     * @return The optional schema extension resource classes.
     */
    Class[] optionalSchemaExtensions() default {};

    /**
     * Whether this resource type and its associated schemas should be
     * discoverable using the SCIM 2 standard /resourceTypes and /schemas
     * endpoints.
     *
     * @return A flag indicating the discoverability of this resource type and
     * its associated schemas.
     */
    boolean discoverable() default true;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy