rougail/doc/family/simple.md

173 lines
4 KiB
Markdown
Raw Normal View History

2021-02-06 17:11:17 +01:00
# Une famille
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Une famille est un conteneur de variables et de sous-famille.
2021-01-30 19:42:46 +01:00
Pour décrire une famille il faut mettre au minimum un nom :
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
type: family
2021-02-06 16:14:24 +01:00
```
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Elle peut être placé dans une autre famille :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
my_subfamily:
type: family
2022-11-02 22:52:50 +01:00
```
2023-10-12 08:17:30 +02:00
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 "\_".
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Attention, une famille ou sous-famille vide sera automatiquement supprimée.
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
## Type, description et aide de la famille
2022-11-02 22:52:50 +01:00
2023-10-12 08:17:30 +02:00
En plus d'un nom, il est possible de mettre un type pour aider le moteur à detecter le bon type de cette objet :
2022-11-02 22:52:50 +01:00
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
type: family
2021-02-14 18:03:15 +01:00
```
2021-02-12 18:08:28 +01:00
2023-10-12 08:17:30 +02:00
Si la famille contient une variable ou famille du nom "type", on peut préciser le type de la famille avec l'attribut "\_type" :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
_type: family
type:
type: family
2022-11-02 22:52:50 +01:00
```
2023-10-12 08:17:30 +02:00
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 :
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
description: This is a great family
2021-02-06 16:14:24 +01:00
```
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Si la famille contient une variable ou famille du nom "description", on peut préciser la description de la famille avec l'attribut "\_description" :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
_description: This is a great family
description:
description: This is a other great family
2022-11-02 22:52:50 +01:00
```
2021-01-30 19:42:46 +01:00
En plus de la description, il est possible de préciser une aide complémentaire :
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
help: This is a great family
2021-02-06 16:14:24 +01:00
```
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Si la famille contient une variable ou famille du nom "help", on peut préciser l'aide de la famille avec l'attribut "\_help" :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
_help: This is a great family
help:
help: This is a other great family
2022-11-02 22:52:50 +01:00
```
2021-02-06 16:01:35 +01:00
## Mode de la famille
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
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.
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
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.
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Pour définir le [mode](../variable/mode.md) :
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
mode: expert
2021-02-06 16:14:24 +01:00
```
2021-01-30 19:42:46 +01:00
2023-10-12 08:17:30 +02:00
Si la famille contient une variable ou famille du nom "mode", on peut préciser le mode de la famille avec l'attribut "\_mode" :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
_mode: expert
mode:
2022-11-02 22:52:50 +01:00
mode: expert
```
2021-02-06 16:28:33 +01:00
## Famille invisible
2021-01-30 19:42:46 +01:00
Il est possible de cacher une famille, ainsi que toutes les variables et des familles inclusent dans cette famille.
2021-01-30 19:42:46 +01:00
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 :
2023-10-12 08:17:30 +02:00
```yml
---
version: '1.0'
my_family:
hidden: true
2021-02-06 16:14:24 +01:00
```
2022-11-02 22:52:50 +01:00
2023-10-12 08:17:30 +02:00
Si la famille contient une variable ou famille du nom "hidden", on peut préciser l'invisiblité de la famille avec l'attribut "\_hidden" :
2022-11-02 22:52:50 +01:00
2022-11-03 22:17:43 +01:00
```yml
2023-10-12 08:17:30 +02:00
---
version: '1.0'
my_family:
_hidden: true
hidden:
2022-11-03 22:16:52 +01:00
hidden: true
2022-11-02 22:52:50 +01:00
```
2023-10-12 08:17:30 +02:00
[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)