package org.keycloak.models;

/**
 * This is the base interface for all models, usually representing a realm resource.
 */
public interface Model {

    /**
     * <p>Returns the unique identifier of this model. The identifier is generated by the persistence layer and is not
     * supposed to be manually set. It is used internally to identify the model and should not be confused with any
     * user-facing identifier, such as a username or email.
     *
     * <p>The identifier is immutable and should not be changed after the model is created.
     *
     * @return the unique identifier of this model, not {@code null}
     */
    String getId();

}
