.. Document meta

:orphan:

.. |antsibull-internal-nbsp| unicode:: 0xA0
    :trim:

.. meta::
  :antsibull-docs: 2.24.0

.. Anchors

.. _ansible_collections.middleware_automation.keycloak.keycloak_userprofile_module:

.. Anchors: short name for ansible.builtin

.. Title

keycloak_userprofile -- Allows managing Keycloak User Profiles
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.. Collection note

.. note::
    This module is part of the `middleware_automation.keycloak collection <https://galaxy.ansible.com/ui/repo/published/middleware_automation/keycloak/>`_.

    It is not included in ``ansible-core``.
    To check whether it is installed, run :code:`ansible-galaxy collection list`.

    To install it, use: :code:`ansible\-galaxy collection install middleware\_automation.keycloak`.

    To use it in a playbook, specify: :code:`middleware_automation.keycloak.keycloak_userprofile`.

.. version_added

.. rst-class:: ansible-version-added

New in middleware\_automation.keycloak 3.0.0

.. contents::
   :local:
   :depth: 1

.. Deprecated


Synopsis
--------

.. Description

- This module allows you to create, update, or delete Keycloak User Profiles using the Keycloak API. You can also customize the "Unmanaged Attributes" with it.
- The names of module options are snake\_cased versions of the camelCase ones found in the Keycloak API and its documentation at \ `https://www.keycloak.org/docs\-api/24.0.5/rest\-api/index.html <https://www.keycloak.org/docs-api/24.0.5/rest-api/index.html>`__. For compatibility reasons, the module also accepts the camelCase versions of the options.


.. Aliases


.. Requirements






.. Options

Parameters
----------

.. raw:: html

  <table class="colwidths-auto ansible-option-table docutils align-default" style="width: 100%">
  <thead>
  <tr class="row-odd">
    <th class="head"><p>Parameter</p></th>
    <th class="head"><p>Comments</p></th>
  </tr>
  </thead>
  <tbody>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_client_id"></div>
      <p class="ansible-option-title"><strong>auth_client_id</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_client_id" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>OpenID Connect <em>client_id</em> to authenticate to the API with.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">&#34;admin-cli&#34;</code></p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_client_secret"></div>
      <p class="ansible-option-title"><strong>auth_client_secret</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_client_secret" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Client Secret to use in conjunction with <em>auth_client_id</em> (if required).</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_keycloak_url"></div>
      <div class="ansibleOptionAnchor" id="parameter-url"></div>
      <p class="ansible-option-title"><strong>auth_keycloak_url</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_keycloak_url" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: url</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>URL to the Keycloak instance.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_password"></div>
      <div class="ansibleOptionAnchor" id="parameter-password"></div>
      <p class="ansible-option-title"><strong>auth_password</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_password" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: password</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Password to authenticate for API access with.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_realm"></div>
      <p class="ansible-option-title"><strong>auth_realm</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_realm" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Keycloak realm name to authenticate to for API access.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-auth_username"></div>
      <div class="ansibleOptionAnchor" id="parameter-username"></div>
      <p class="ansible-option-title"><strong>auth_username</strong></p>
      <a class="ansibleOptionLink" href="#parameter-auth_username" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: username</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Username to authenticate for API access with.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config"></div>
      <p class="ansible-option-title"><strong>config</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>The configuration of the User Profile Provider.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig"></div>
      <p class="ansible-option-title"><strong>kc_user_profile_config</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: kcUserProfileConfig</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Define a declarative User Profile. See EXAMPLES for more context.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes"></div>
      <p class="ansible-option-title"><strong>attributes</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>A list of attributes to be included in the User Profile.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/annotations"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/annotations"></div>
      <p class="ansible-option-title"><strong>annotations</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/annotations" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Annotations for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/display_name"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/display_name"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/displayName"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/displayName"></div>
      <p class="ansible-option-title"><strong>display_name</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/display_name" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: displayName</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The display name of the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/group"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/group"></div>
      <p class="ansible-option-title"><strong>group</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/group" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Specifies the User Profile group where this attribute is added.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/multivalued"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/multivalued"></div>
      <p class="ansible-option-title"><strong>multivalued</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/multivalued" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">boolean</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Whether the attribute can have multiple values.</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-default-bold"><strong>false</strong></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">true</code></p></li>
      </ul>

    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/name"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/name"></div>
      <p class="ansible-option-title"><strong>name</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/name" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The name of the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/permissions"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/permissions"></div>
      <p class="ansible-option-title"><strong>permissions</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/permissions" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The permissions for viewing and editing the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/permissions/edit"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/permissions/edit"></div>
      <p class="ansible-option-title"><strong>edit</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/permissions/edit" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The roles that can edit the attribute.</p>
      <p>Supported values are <code class="ansible-value literal notranslate">admin</code> and <code class="ansible-value literal notranslate">user</code>.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">[&#34;admin&#34;, &#34;user&#34;]</code></p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/permissions/view"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/permissions/view"></div>
      <p class="ansible-option-title"><strong>view</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/permissions/view" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The roles that can view the attribute.</p>
      <p>Supported values are <code class="ansible-value literal notranslate">admin</code> and <code class="ansible-value literal notranslate">user</code>.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">[&#34;admin&#34;, &#34;user&#34;]</code></p>
    </div></td>
  </tr>

  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/required"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/required"></div>
      <p class="ansible-option-title"><strong>required</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/required" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The roles that require this attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/required/roles"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/required/roles"></div>
      <p class="ansible-option-title"><strong>roles</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/required/roles" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The roles for which this attribute is required.</p>
      <p>Supported values are <code class="ansible-value literal notranslate">admin</code> and <code class="ansible-value literal notranslate">user</code>.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">[&#34;user&#34;]</code></p>
    </div></td>
  </tr>

  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/selector"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/selector"></div>
      <p class="ansible-option-title"><strong>selector</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/selector" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Selector when the attribute should be added.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/selector/scopes"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/selector/scopes"></div>
      <p class="ansible-option-title"><strong>scopes</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/selector/scopes" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Scopes to which the attribute should be added.</p>
    </div></td>
  </tr>

  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations"></div>
      <p class="ansible-option-title"><strong>validations</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The validations to be applied to the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/double"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/double"></div>
      <p class="ansible-option-title"><strong>double</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/double" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The double validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/email"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/email"></div>
      <p class="ansible-option-title"><strong>email</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/email" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The email validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/integer"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/integer"></div>
      <p class="ansible-option-title"><strong>integer</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/integer" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The integer validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/iso_date"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/iso_date"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/isoDate"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/isoDate"></div>
      <p class="ansible-option-title"><strong>iso_date</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/iso_date" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: isoDate</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The iso-date validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/length"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/length"></div>
      <p class="ansible-option-title"><strong>length</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/length" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The length validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/length/max"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/length/max"></div>
      <p class="ansible-option-title"><strong>max</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/length/max" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">integer</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The maximum length of the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/length/min"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/length/min"></div>
      <p class="ansible-option-title"><strong>min</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/length/min" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">integer</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The minimum length of the attribute.</p>
    </div></td>
  </tr>

  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/local_date"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/local_date"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/localDate"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/localDate"></div>
      <p class="ansible-option-title"><strong>local_date</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/local_date" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: localDate</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The local-date validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/multivalued"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/multivalued"></div>
      <p class="ansible-option-title"><strong>multivalued</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/multivalued" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The multivalued validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/multivalued/max"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/multivalued/max"></div>
      <p class="ansible-option-title"><strong>max</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/multivalued/max" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">integer</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The maximum amount of values of the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/multivalued/min"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/multivalued/min"></div>
      <p class="ansible-option-title"><strong>min</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/multivalued/min" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">integer</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The minimum amount of values of the attribute.</p>
    </div></td>
  </tr>

  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/options"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/options"></div>
      <p class="ansible-option-title"><strong>options</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/options" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Validation to ensure the attribute matches one of the provided options.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/pattern"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/pattern"></div>
      <p class="ansible-option-title"><strong>pattern</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/pattern" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The pattern validation for the attribute using regular expressions.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/person_name_prohibited_characters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/person_name_prohibited_characters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/personNameProhibitedCharacters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/personNameProhibitedCharacters"></div>
      <p class="ansible-option-title"><strong>person_name_prohibited_characters</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/person_name_prohibited_characters" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: personNameProhibitedCharacters</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The prohibited characters validation for person name attributes.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/up_username_not_idn_homograph"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/up_username_not_idn_homograph"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/upUsernameNotIdnHomograph"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/upUsernameNotIdnHomograph"></div>
      <p class="ansible-option-title"><strong>up_username_not_idn_homograph</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/up_username_not_idn_homograph" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: upUsernameNotIdnHomograph</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The validation to prevent IDN homograph attacks in usernames.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/uri"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/uri"></div>
      <p class="ansible-option-title"><strong>uri</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/uri" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The URI validation for the attribute.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/username_prohibited_characters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/username_prohibited_characters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/attributes/validations/usernameProhibitedCharacters"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/attributes/validations/usernameProhibitedCharacters"></div>
      <p class="ansible-option-title"><strong>username_prohibited_characters</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/attributes/validations/username_prohibited_characters" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: usernameProhibitedCharacters</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The prohibited characters validation for the username attribute.</p>
    </div></td>
  </tr>


  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups"></div>
      <p class="ansible-option-title"><strong>groups</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/groups" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">list</span>
        / <span class="ansible-option-elements">elements=dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>A list of attribute groups to be included in the User Profile.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/annotations"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/annotations"></div>
      <p class="ansible-option-title"><strong>annotations</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/groups/annotations" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The annotations included in the group.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/display_description"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/display_description"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/displayDescription"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/displayDescription"></div>
      <p class="ansible-option-title"><strong>display_description</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/groups/display_description" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: displayDescription</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The display description for the group.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/display_header"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/display_header"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/displayHeader"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/displayHeader"></div>
      <p class="ansible-option-title"><strong>display_header</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/groups/display_header" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: displayHeader</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The display header for the group.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/groups/name"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/groups/name"></div>
      <p class="ansible-option-title"><strong>name</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/groups/name" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>The name of the group.</p>
    </div></td>
  </tr>

  <tr class="row-even">
    <td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/unmanaged_attribute_policy"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/unmanaged_attribute_policy"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kc_user_profile_config/unmanagedAttributePolicy"></div>
      <div class="ansibleOptionAnchor" id="parameter-config/kcUserProfileConfig/unmanagedAttributePolicy"></div>
      <p class="ansible-option-title"><strong>unmanaged_attribute_policy</strong></p>
      <a class="ansibleOptionLink" href="#parameter-config/kc_user_profile_config/unmanaged_attribute_policy" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: unmanagedAttributePolicy</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
      <p>Policy for unmanaged attributes.</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">&#34;ENABLED&#34;</code></p></li>
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">&#34;ADMIN_EDIT&#34;</code></p></li>
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">&#34;ADMIN_VIEW&#34;</code></p></li>
      </ul>

    </div></td>
  </tr>


  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-connection_timeout"></div>
      <p class="ansible-option-title"><strong>connection_timeout</strong></p>
      <a class="ansibleOptionLink" href="#parameter-connection_timeout" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">integer</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Controls the HTTP connections timeout period (in seconds) to Keycloak API.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">10</code></p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-http_agent"></div>
      <p class="ansible-option-title"><strong>http_agent</strong></p>
      <a class="ansibleOptionLink" href="#parameter-http_agent" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Configures the HTTP User-Agent header.</p>
      <p class="ansible-option-line"><strong class="ansible-option-default-bold">Default:</strong> <code class="ansible-value literal notranslate ansible-option-default">&#34;Ansible&#34;</code></p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-parent_id"></div>
      <div class="ansibleOptionAnchor" id="parameter-parentId"></div>
      <div class="ansibleOptionAnchor" id="parameter-realm"></div>
      <p class="ansible-option-title"><strong>parent_id</strong></p>
      <a class="ansibleOptionLink" href="#parameter-parent_id" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: parentId, realm</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
        / <span class="ansible-option-required">required</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>The parent ID of the realm key. In practice the ID (name) of the realm.</p>
    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-provider_id"></div>
      <div class="ansibleOptionAnchor" id="parameter-providerId"></div>
      <p class="ansible-option-title"><strong>provider_id</strong></p>
      <a class="ansibleOptionLink" href="#parameter-provider_id" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: providerId</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>The name of the provider ID for the key (supported value is <code class="ansible-value literal notranslate">declarative-user-profile</code>).</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-default-bold"><strong>&#34;declarative-user-profile&#34;</strong></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
      </ul>

    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-provider_type"></div>
      <div class="ansibleOptionAnchor" id="parameter-providerType"></div>
      <p class="ansible-option-title"><strong>provider_type</strong></p>
      <a class="ansibleOptionLink" href="#parameter-provider_type" title="Permalink to this option"></a>
      <p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: providerType</span></p>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Component type for User Profile (only supported value is <code class="ansible-value literal notranslate">org.keycloak.userprofile.UserProfileProvider</code>).</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-default-bold"><strong>&#34;org.keycloak.userprofile.UserProfileProvider&#34;</strong></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
      </ul>

    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-refresh_token"></div>
      <p class="ansible-option-title"><strong>refresh_token</strong></p>
      <a class="ansibleOptionLink" href="#parameter-refresh_token" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Authentication refresh token for Keycloak API.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-state"></div>
      <p class="ansible-option-title"><strong>state</strong></p>
      <a class="ansibleOptionLink" href="#parameter-state" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>State of the User Profile provider.</p>
      <p>On <code class="ansible-value literal notranslate">present</code>, the User Profile provider is created if it does not yet exist, or updated with the parameters you provide.</p>
      <p>On <code class="ansible-value literal notranslate">absent</code>, the User Profile provider is removed if it exists.</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-default-bold"><strong>&#34;present&#34;</strong></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">&#34;absent&#34;</code></p></li>
      </ul>

    </div></td>
  </tr>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-token"></div>
      <p class="ansible-option-title"><strong>token</strong></p>
      <a class="ansibleOptionLink" href="#parameter-token" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Authentication token for Keycloak API.</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="parameter-validate_certs"></div>
      <p class="ansible-option-title"><strong>validate_certs</strong></p>
      <a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">boolean</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>Verify TLS certificates (do not disable this in production).</p>
      <p class="ansible-option-line"><strong class="ansible-option-choices">Choices:</strong></p>
      <ul class="simple">
        <li><p><code class="ansible-value literal notranslate ansible-option-choices-entry">false</code></p></li>
        <li><p><code class="ansible-value literal notranslate ansible-option-default-bold"><strong>true</strong></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
      </ul>

    </div></td>
  </tr>
  </tbody>
  </table>



.. Attributes


Attributes
----------

.. tabularcolumns:: \X{2}{10}\X{3}{10}\X{5}{10}

.. list-table::
  :width: 100%
  :widths: auto
  :header-rows: 1
  :class: longtable ansible-option-table

  * - Attribute
    - Support
    - Description

  * - .. raw:: html

        <div class="ansible-option-cell">
        <div class="ansibleOptionAnchor" id="attribute-action_group"></div>

      .. _ansible_collections.middleware_automation.keycloak.keycloak_userprofile_module__attribute-action_group:

      .. rst-class:: ansible-option-title

      **action_group**

      .. raw:: html

        <a class="ansibleOptionLink" href="#attribute-action_group" title="Permalink to this attribute"></a>

      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      :ansible-attribute-support-property:`Action group:` |antsibull-internal-nbsp|:ansible-attribute-support-full:`middleware\_automation.keycloak.keycloak`

      :ansible-option-versionadded:`added in middleware\_automation.keycloak 3.0.0`


      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      Use :literal:`group/middleware\_automation.keycloak.keycloak` in :literal:`module\_defaults` to set defaults for this module.


      .. raw:: html

        </div>


  * - .. raw:: html

        <div class="ansible-option-cell">
        <div class="ansibleOptionAnchor" id="attribute-check_mode"></div>

      .. _ansible_collections.middleware_automation.keycloak.keycloak_userprofile_module__attribute-check_mode:

      .. rst-class:: ansible-option-title

      **check_mode**

      .. raw:: html

        <a class="ansibleOptionLink" href="#attribute-check_mode" title="Permalink to this attribute"></a>

      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      :ansible-attribute-support-label:`Support: \ `\ :ansible-attribute-support-full:`full`


      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      Can run in :literal:`check\_mode` and return changed status prediction without modifying target.


      .. raw:: html

        </div>


  * - .. raw:: html

        <div class="ansible-option-cell">
        <div class="ansibleOptionAnchor" id="attribute-diff_mode"></div>

      .. _ansible_collections.middleware_automation.keycloak.keycloak_userprofile_module__attribute-diff_mode:

      .. rst-class:: ansible-option-title

      **diff_mode**

      .. raw:: html

        <a class="ansibleOptionLink" href="#attribute-diff_mode" title="Permalink to this attribute"></a>

      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      :ansible-attribute-support-label:`Support: \ `\ :ansible-attribute-support-full:`full`


      .. raw:: html

        </div>

    - .. raw:: html

        <div class="ansible-option-cell">

      Will return details on what has changed (or possibly needs changing in :literal:`check\_mode`\ ), when in diff mode.


      .. raw:: html

        </div>



.. Notes

Notes
-----

.. note::
   - Currently, only a single :ansval:`declarative\-user\-profile` entry is supported for :ansopt:`middleware\_automation.keycloak.keycloak\_userprofile#module:provider\_id` (design of the Keyckoak API). However, there can be multiple :ansopt:`middleware\_automation.keycloak.keycloak\_userprofile#module:config.kc\_user\_profile\_config[].attributes[]` entries.

.. Seealso


.. Examples

Examples
--------

.. code-block:: yaml+jinja

    - name: Create a Declarative User Profile with default settings
      middleware_automation.keycloak.keycloak_userprofile:
        state: present
        parent_id: master
        config:
          kc_user_profile_config:
            - attributes:
                - name: username
                  displayName: ${username}
                  validations:
                    length:
                      min: 3
                      max: 255
                    username_prohibited_characters: {}
                    up_username_not_idn_homograph: {}
                  annotations: {}
                  permissions:
                    view:
                      - admin
                      - user
                    edit: []
                  multivalued: false
                - name: email
                  displayName: ${email}
                  validations:
                    email: {}
                    length:
                      max: 255
                  annotations: {}
                  required:
                    roles:
                      - user
                  permissions:
                    view:
                      - admin
                      - user
                    edit: []
                  multivalued: false
                - name: firstName
                  displayName: ${firstName}
                  validations:
                    length:
                      max: 255
                    person_name_prohibited_characters: {}
                  annotations: {}
                  required:
                    roles:
                      - user
                  permissions:
                    view:
                      - admin
                      - user
                    edit: []
                  multivalued: false
                - name: lastName
                  displayName: ${lastName}
                  validations:
                    length:
                      max: 255
                    person_name_prohibited_characters: {}
                  annotations: {}
                  required:
                    roles:
                      - user
                  permissions:
                    view:
                      - admin
                      - user
                    edit: []
                  multivalued: false
                - name: testAttribute
                  displayName: ${testAttribute}
                  validations:
                    integer:
                      min: 0
                      max: 255
                  annotations: {}
                  required:
                    roles:
                      - user
                  permissions:
                    view:
                      - admin
                      - user
                    edit: []
                  multivalued: false
              groups:
                - name: user-metadata
                  displayHeader: User metadata
                  displayDescription: Attributes, which refer to user metadata
                  annotations: {}

    - name: Delete a Keycloak User Profile Provider
      keycloak_userprofile:
        state: absent
        parent_id: master

    # Unmanaged attributes are user attributes not explicitly defined in the User Profile
    # configuration. By default, unmanaged attributes are "Disabled" and are not
    # available from any context such as registration, account, and the
    # administration console. By setting "Enabled", unmanaged attributes are fully
    # recognized by the server and accessible through all contexts, useful if you are
    # starting migrating an existing realm to the declarative User Profile
    # and you don't have yet all user attributes defined in the User Profile configuration.
    - name: Enable Unmanaged Attributes
      middleware_automation.keycloak.keycloak_userprofile:
        state: present
        parent_id: master
        config:
          kc_user_profile_config:
            - unmanagedAttributePolicy: ENABLED

    # By setting "Only administrators can write", unmanaged attributes can be managed
    # only through the administration console and API, useful if you have already
    # defined any custom attribute that can be managed by users but you are unsure
    # about adding other attributes that should only be managed by administrators.
    - name: Enable ADMIN_EDIT on Unmanaged Attributes
      middleware_automation.keycloak.keycloak_userprofile:
        state: present
        parent_id: master
        config:
          kc_user_profile_config:
            - unmanagedAttributePolicy: ADMIN_EDIT

    # By setting `Only administrators can view`, unmanaged attributes are read-only
    # and only available through the administration console and API.
    - name: Enable ADMIN_VIEW on Unmanaged Attributes
      middleware_automation.keycloak.keycloak_userprofile:
        state: present
        parent_id: master
        config:
          kc_user_profile_config:
            - unmanagedAttributePolicy: ADMIN_VIEW



.. Facts


.. Return values

Return Values
-------------
Common return values are documented :ref:`here <common_return_values>`, the following are the fields unique to this module:

.. raw:: html

  <table class="colwidths-auto ansible-option-table docutils align-default" style="width: 100%">
  <thead>
  <tr class="row-odd">
    <th class="head"><p>Key</p></th>
    <th class="head"><p>Description</p></th>
  </tr>
  </thead>
  <tbody>
  <tr class="row-even">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="return-data"></div>
      <p class="ansible-option-title"><strong>data</strong></p>
      <a class="ansibleOptionLink" href="#return-data" title="Permalink to this return value"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">dictionary</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>The data returned by the Keycloak API.</p>
      <p class="ansible-option-line"><strong class="ansible-option-returned-bold">Returned:</strong> when state is present</p>
    </div></td>
  </tr>
  <tr class="row-odd">
    <td><div class="ansible-option-cell">
      <div class="ansibleOptionAnchor" id="return-msg"></div>
      <p class="ansible-option-title"><strong>msg</strong></p>
      <a class="ansibleOptionLink" href="#return-msg" title="Permalink to this return value"></a>
      <p class="ansible-option-type-line">
        <span class="ansible-option-type">string</span>
      </p>
    </div></td>
    <td><div class="ansible-option-cell">
      <p>The output message generated by the module.</p>
      <p class="ansible-option-line"><strong class="ansible-option-returned-bold">Returned:</strong> always</p>
      <p class="ansible-option-line ansible-option-sample"><strong class="ansible-option-sample-bold">Sample:</strong> <code class="ansible-value literal notranslate ansible-option-sample">&#34;UserProfileProvider created successfully&#34;</code></p>
    </div></td>
  </tr>
  </tbody>
  </table>



..  Status (Presently only deprecated)


.. Authors

Authors
~~~~~~~

- Eike Waldt (@yeoldegrove)


.. Extra links


.. Parsing errors
