<!--
  ~ Copyright (c) 2026 Arista Networks, Inc.
  ~ Use of this source code is governed by the Apache License 2.0
  ~ that can be found in the LICENSE file.
  -->
=== "Table"

    | Variable | Type | Required | Default | Value Restrictions | Description |
    | -------- | ---- | -------- | ------- | ------------------ | ----------- |
    | [<samp>custom_structured_configuration_list_merge</samp>](## "custom_structured_configuration_list_merge") | String |  | `append_rp` | Valid Values:<br>- <code>replace</code><br>- <code>append</code><br>- <code>keep</code><br>- <code>prepend</code><br>- <code>append_rp</code><br>- <code>prepend_rp</code> | The List-merge strategy used when merging custom structured configurations.<br><br>This applies to all vars prefixed by prefixes in `custom_structured_configuration_prefix`<br>and all data under the various `structured_config` options.<br><br>The available list merge strategies:<br>- `replace`:<br>  - Any list will be replaced with the list defined in custom structured configurations.<br>- `append`:<br>  - Existing list items with the same "Primary key"-value will be updated.<br>  - New items will be appended to the existing list (including duplicates).<br>- `keep`:<br>  - Only set list if there is no existing list or existing list is `None`.<br>- `prepend`:<br>  - Existing list items with the same "Primary key"-value will be updated.<br>  - New items will be prepended to the existing list (including duplicates).<br>- `append_rp`:<br>  - Existing list items with the same "Primary key"-value will be updated.<br>  - New unique items will be appended to the existing list.<br>- `prepend_rp`:<br>  - Existing list items with the same "Primary key"-value will be updated.<br>  - New unique items will be prepended to the existing list.<br> |
    | [<samp>custom_structured_configuration_prefix</samp>](## "custom_structured_configuration_prefix") | List, items: String |  | `['custom_structured_configuration_']` |  | Custom EOS Structured Configuration keys can be set on any group or host_var level using the name<br>of the corresponding EOS Config key prefixed with content of `custom_structured_configuration_prefix`.<br><br>The content of Custom Structured Configuration variables will be merged with the structured config generated by the eos_designs role.<br><br>The merge is done recursively, so it is possible to update a sub-key of a variable set by Arista AVD already.<br><br>The merge follow these recursive merge strategies:<br>- New keys will be added for all types.<br>- Existing keys of type "List" with a "Primary key" set in the schema:<br>  - Strategy can be changed with `custom_structured_configuration_list_merge`. Default strategy:<br>    - Existing list items with the same "Primary key"-value will be updated.<br>    - New unique items will be appended to the existing list<br>- Other keys of type "List" will have new unique items appended the the existing list.<br>- Existing keys of type "Dictionary" will recursively merge<br>- Other existing keys will be replaced.<br> |
    | [<samp>&nbsp;&nbsp;-&nbsp;&lt;str&gt;</samp>](## "custom_structured_configuration_prefix.[]") | String |  |  |  |  |

=== "YAML"

    ```yaml
    # The List-merge strategy used when merging custom structured configurations.
    #
    # This applies to all vars prefixed by prefixes in `custom_structured_configuration_prefix`
    # and all data under the various `structured_config` options.
    #
    # The available list merge strategies:
    # - `replace`:
    #   - Any list will be replaced with the list defined in custom structured configurations.
    # - `append`:
    #   - Existing list items with the same "Primary key"-value will be updated.
    #   - New items will be appended to the existing list (including duplicates).
    # - `keep`:
    #   - Only set list if there is no existing list or existing list is `None`.
    # - `prepend`:
    #   - Existing list items with the same "Primary key"-value will be updated.
    #   - New items will be prepended to the existing list (including duplicates).
    # - `append_rp`:
    #   - Existing list items with the same "Primary key"-value will be updated.
    #   - New unique items will be appended to the existing list.
    # - `prepend_rp`:
    #   - Existing list items with the same "Primary key"-value will be updated.
    #   - New unique items will be prepended to the existing list.
    custom_structured_configuration_list_merge: <str; "replace" | "append" | "keep" | "prepend" | "append_rp" | "prepend_rp"; default="append_rp">

    # Custom EOS Structured Configuration keys can be set on any group or host_var level using the name
    # of the corresponding EOS Config key prefixed with content of `custom_structured_configuration_prefix`.
    #
    # The content of Custom Structured Configuration variables will be merged with the structured config generated by the eos_designs role.
    #
    # The merge is done recursively, so it is possible to update a sub-key of a variable set by Arista AVD already.
    #
    # The merge follow these recursive merge strategies:
    # - New keys will be added for all types.
    # - Existing keys of type "List" with a "Primary key" set in the schema:
    #   - Strategy can be changed with `custom_structured_configuration_list_merge`. Default strategy:
    #     - Existing list items with the same "Primary key"-value will be updated.
    #     - New unique items will be appended to the existing list
    # - Other keys of type "List" will have new unique items appended the the existing list.
    # - Existing keys of type "Dictionary" will recursively merge
    # - Other existing keys will be replaced.
    custom_structured_configuration_prefix: # default=['custom_structured_configuration_']
      - <str>
    ```
