# Génération : instance v1 Contrat : `instance.v1.yml` Modules écrits : **28**, écartés : **2** ## Deux couvertures, et elles ne disent pas la même chose Un seul chiffre ne suffit pas ici, et publier le plus flatteur en laissant croire qu'il désigne l'autre serait exactement le genre de maquillage que ce rapport existe pour empêcher. | ce qu'on mesure | ratio | ce que ça veut dire | |---|---|---| | opérations Day-2 **classées** pour génération automatique | 97,5 % (39/40) | aucune règle ne demande de les écrire à la main | | opérations Day-2 **portées par un module que cette génération a écrit** | 95,0 % (38/40) | un module existe et les appelle | Le second dépend du périmètre demandé autant que du générateur : un module hors périmètre et un module que le modèle refuse de construire comptent pareil ici, et se distinguent dans la section suivante, où chaque écart porte sa raison. C'est là que l'écart entre les deux ratios se lit en entier, module par module. ## Ce qui est écrit - `instance_dashboard_info` - `instance_image` - `instance_image_info` - `instance_ip` - `instance_ip_action` - `instance_ip_info` - `instance_placement_group` - `instance_placement_group_info` - `instance_placement_group_server_info` - `instance_security_group` - `instance_security_group_info` - `instance_security_group_rule` - `instance_security_group_rule_info` - `instance_server` - `instance_server_action` - `instance_server_compatible_type_info` - `instance_server_info` - `instance_server_private_nic` - `instance_server_private_nic_info` - `instance_server_type_availability_info` - `instance_server_type_info` - `instance_server_user_data_info` - `instance_snapshot` - `instance_snapshot_action` - `instance_snapshot_info` - `instance_volume` - `instance_volume_info` - `instance_volume_type_info` ## Ce qui est écarté, et pourquoi Un module absent sans explication serait indiscernable d'un module oublié. Chaque écart porte sa raison. | raison | modules | |---|---| | classe WORKFLOW : aucun renderer à ce stade (1) | `instance_security_group_rules` | | instance_server_user_data : le contrat ne décrit aucun champ du corps de SetServerUserData, donc le module ne saurait pas quoi envoyer. Voir les limites du rapport : un `requestBody` hors `application/json` y est signalé par le parser. (1) | `instance_server_user_data` | ## Comment les modules de gestion comparent Un module de gestion n'écrit que ce qui diffère, et « diffère » n'a pas le même sens pour un nom et pour une liste de tags. Le type décide ce qu'il peut ; le reste vient d'un override, avec sa raison. `ordered_list` est un **repli**, pas une décision : le contrat ne dit ni l'ordre ni l'unicité d'un tableau. Un paramètre qui y tombe et que l'API réordonne rendra `changed` à chaque exécution, et c'est ce compte qui rend la dette visible. | stratégie | paramètres | |---|---| | `id_list` | 2 | | `mapping` | 3 | | `ordered_list` | 8 | | `scalar` | 36 | ## Ce que le contrat ne dit pas Rencontré au rendu, et signalé plutôt que comblé par une supposition. - action : 3 valeur(s) du contrat non exposées par override (backup, terminate, enable_routed_ip) - arch : aucune description dans le contrat, comblée par override - boot_type : aucune description dans le contrat, comblée par override - disable_ipv6 : paramètre du contrat masqué par override - dynamic_ip_required : aucune description dans le contrat, comblée par override - enable_ipv6 : aucune description dans le contrat, comblée par override - name : aucune description dans le contrat, comblée par override - name : paramètre du contrat masqué par override - organization : aucune description dans le contrat, comblée par override - private_nics : tableau sans type d'éléments dans le contrat, `str` par repli - project : aucune description dans le contrat, comblée par override - public : aucune description dans le contrat, comblée par override - public_ips : tableau sans type d'éléments dans le contrat, `str` par repli - security_group : aucune description dans le contrat, comblée par override - security_group_rule_id : aucune description dans le contrat, comblée par override - server : aucune description dans le contrat, comblée par override - tags : aucune description dans le contrat, comblée par override - tags : exposé en liste, joint par des virgules (override) - tags : tableau sans type d'éléments dans le contrat, `str` par repli - volumes : aucune description dans le contrat, comblée par override - volumes : paramètre du contrat masqué par override