<!--
  ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
  ~ and other contributors as indicated by the @author tags.
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<chapter id="admin-rest-api">
    <title>Admin REST API</title>
    <para>
        The Keycloak Admin Console is implemented entirely with a fully functional REST admin API.  You can invoke this
        REST API from your Java applications by obtaining an access token.  You must have the appropriate
        permissions set up as described in <xref linkend="admin-permissions" /> and <xref linkend="per-realm-admin-permissions" />
    </para>
    <para>
        The documentation for this REST API is auto-generated and is contained in the distribution of keycloak under
        the docs/rest-api/overview-index.html directory, or directly from the docs page at the keycloak website.
    </para>
    <para>
        There are a number of examples that come with the keycloak distribution that show you how to invoke on this REST API.
        <literal>examples/preconfigured-demo/admin-access-app</literal> shows you how to access this api from java.
        <literal>examples/cors/angular-product-app</literal> shows you how to invoke on it from Javascript. Finally there is example in
        <literal>example/admin-client</literal>, which contains example for Admin client, that can be used to invoke REST endpoints easily as Java methods.
    </para>
</chapter>