# Une famille Une famille est un conteneur de variables et de sous-famille. Pour décrire une famille il faut mettre au minimum un nom : ```yml --- version: '1.0' my_family: type: family ``` Elle peut être placé dans une autre famille : ```yml --- version: '1.0' my_family: my_subfamily: type: family ``` Il est recommander de n'utiliser que des lettres, chiffres et '\_' dans le nom des familles. Le nom ne pas commencé par le caractère "\_". Attention, une famille ou sous-famille vide sera automatiquement supprimée. ## Type, description et aide de la famille En plus d'un nom, il est possible de mettre un type pour aider le moteur à detecter le bon type de cette objet : ```yml --- version: '1.0' my_family: type: family ``` Si la famille contient une variable ou famille du nom "type", on peut préciser le type de la famille avec l'attribut "\_type" : ```yml --- version: '1.0' my_family: _type: family type: type: family ``` On peut également préciser une "description" à la famille. C'est une information "utilisateur" qui nous permettra d'avoir des informations complémentaires sur le contenu de cette famille : ```yml --- version: '1.0' my_family: description: This is a great family ``` Si la famille contient une variable ou famille du nom "description", on peut préciser la description de la famille avec l'attribut "\_description" : ```yml --- version: '1.0' my_family: _description: This is a great family description: description: This is a other great family ``` En plus de la description, il est possible de préciser une aide complémentaire : ```yml --- version: '1.0' my_family: help: This is a great family ``` Si la famille contient une variable ou famille du nom "help", on peut préciser l'aide de la famille avec l'attribut "\_help" : ```yml --- version: '1.0' my_family: _help: This is a great family help: help: This is a other great family ``` ## Mode de la famille Le [mode](../variable/mode.md) par défaut d'une famille correspond au [mode](../variable/mode.md) le plus petit entre la famille parente, les variables enfants ou des familles enfants qui sont contenu dans cette famille. Changer le [mode](../variable/mode.md) d'une famille permet de définir le [mode](../variable/mode.md) par défaut des variables ou des familles inclusent dans cette famille. Pour définir le [mode](../variable/mode.md) : ```yml --- version: '1.0' my_family: mode: expert ``` Si la famille contient une variable ou famille du nom "mode", on peut préciser le mode de la famille avec l'attribut "\_mode" : ```yml --- version: '1.0' my_family: _mode: expert mode: mode: expert ``` ## Famille invisible Il est possible de cacher une famille, ainsi que toutes les variables et des familles inclusent dans cette famille. Cacher une famille signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service. Par contre ces variables sont accessibles lorsqu'on va utiliser ces variables. Pour cacher une famille : ```yml --- version: '1.0' my_family: hidden: true ``` Si la famille contient une variable ou famille du nom "hidden", on peut préciser l'invisiblité de la famille avec l'attribut "\_hidden" : ```yml --- version: '1.0' my_family: _hidden: true hidden: hidden: true ``` [La valeur de cet attribut peut être fixé par un calcul](../condition/README.md) ## Famille désactivé Il est possible de désactiver une famille, ainsi que toutes les variables et des familles inclusent dans cette famille. Désactiver une famille signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service, ni lorsqu'on va utiliser ces variables. Pour cacher une famille : ```yml --- version: '1.0' my_family: disabled: true ``` Si la famille contient une variable ou famille du nom "disabled", on peut préciser la désactivation de la famille avec l'attribut "\_disabled" : ```yml --- version: '1.0' my_family: _disabled: true disabled: disabled: true ``` [La valeur de cet attribut peut être fixé par un calcul](../condition/README.md)