[comment]: # ({c0df6427-c0df6427})
# hostprototype.update

[comment]: # ({/c0df6427-c0df6427})

[comment]: # ({7da22d8d-796670ab})
### Description

`object hostprototype.update(object/array hostPrototypes)`

Cette méthode permet de mettre à jour des prototypes d’hôte existants.

::: noteclassic
Cette méthode est disponible uniquement pour les types d’utilisateur *Admin* et *Super admin*.
Les autorisations d’appel de la méthode peuvent être révoquées dans les paramètres du rôle utilisateur.
Voir [User
roles](/manual/web_interface/frontend_sections/users/user_roles)
pour plus d’informations.
:::

[comment]: # ({/7da22d8d-796670ab})

[comment]: # ({0881900c-50727275})
### Paramètres

`(object/array)` Propriétés du prototype d'hôte à mettre à jour.

La propriété `hostid` doit être définie pour chaque prototype d'hôte, toutes les autres
propriétés sont facultatives. Seules les propriétés transmises seront mises à jour, toutes
les autres resteront inchangées.

En plus des [propriétés standard du prototype
d'hôte](object#host-prototype), la méthode accepte les
paramètres suivants.

|Paramètre|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|groupLinks|array|[Liens de groupes](/manual/api/reference/hostprototype/object#group-link) pour remplacer les liens de groupes actuels sur le prototype d'hôte.<br><br>[Comportement des paramètres](/manual/api/reference_commentary#parameter-behavior) :<br>- *lecture seule* pour les objets hérités|
|groupPrototypes|array|[Prototypes de groupes](/manual/api/reference/hostprototype/object#group-prototype) pour remplacer les prototypes de groupes existants sur le prototype d'hôte.<br><br>Tous les prototypes de groupes qui ne sont pas listés dans la requête seront supprimés.<br><br>[Comportement des paramètres](/manual/api/reference_commentary#parameter-behavior) :<br>- *lecture seule* pour les objets hérités|
|macros|object/array|[Macros utilisateur](/manual/api/reference/usermacro/object) pour remplacer les macros utilisateur actuelles.<br>Toutes les macros qui ne sont pas listées dans la requête seront supprimées.|
|tags|object/array|[Tags du prototype d'hôte](/manual/api/reference/hostprototype/object#host-prototype-tag) pour remplacer les tags actuels.<br>Tous les tags qui ne sont pas listés dans la requête seront supprimés.<br><br>[Comportement des paramètres](/manual/api/reference_commentary#parameter-behavior) :<br>- *lecture seule* pour les objets hérités|
|interfaces|object/array|[Interfaces personnalisées](/manual/api/reference/hostprototype/object#custom-interface) du prototype d'hôte pour remplacer les interfaces actuelles.<br>L'objet d'interface personnalisée doit contenir tous ses paramètres.<br>Toutes les interfaces qui ne sont pas listées dans la requête seront supprimées.<br><br>[Comportement des paramètres](/manual/api/reference_commentary#parameter-behavior) :<br>- *pris en charge* si `custom_interfaces` de [l'objet prototype d'hôte](/manual/api/reference/usermacro/object#host-prototype) est défini sur "use host prototypes custom interfaces"<br>- *lecture seule* pour les objets hérités|
|templates|object/array|[Modèles](/manual/api/reference/template/object) pour remplacer les modèles actuellement liés.<br><br>Seule la propriété `templateid` doit être définie pour les modèles.|

[comment]: # ({/0881900c-50727275})

[comment]: # ({c97defa2-c97defa2})
### Valeurs retournées

`(object)` Retourne un objet contenant les identifiants des prototypes hôte mis à jour sous la propriété `hostids`.

[comment]: # ({/c97defa2-c97defa2})

[comment]: # ({b41637d2-b41637d2})
### Exemples

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({b9437ec2-9e34a671})
#### Désactivation d’un prototype d’hôte

Désactivez un prototype d’hôte, c’est-à-dire définissez son statut sur « 1 ».

[Requête](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "hostprototype.update",
    "params": {
        "hostid": "10092",
        "status": 1
    },
    "id": 1
}
```

Réponse :

```json
{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10092"
        ]
    },
    "id": 1
}
```

[comment]: # ({/b9437ec2-9e34a671})

[comment]: # ({4592dcdd-440003e2})
#### Mise à jour des tags du prototype d’hôte

Remplacez les tags du prototype d’hôte par de nouveaux.

[Requête](/manual/api#performing-requests) :

```json
{
    "jsonrpc": "2.0",
    "method": "hostprototype.update",
    "params": {
        "hostid": "10092",
        "tags": [
            {
                "tag": "datacenter",
                "value": "{#DATACENTER.NAME}"
            },
            {
                "tag": "instance-type",
                "value": "{#INSTANCE_TYPE}"
            }
        ]
    },
    "id": 1
}
```

Réponse :

```json
{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10092"
        ]
    },
    "id": 1
}
```

[comment]: # ({/4592dcdd-440003e2})

[comment]: # ({5195d3ed-7a7b18a4})
#### Mise à jour des interfaces personnalisées du prototype d'hôte

Remplacez les interfaces héritées par les interfaces personnalisées du prototype d'hôte.

[Requête](/manual/api#performing-requests) :

```json
{
    "jsonrpc": "2.0",
    "method": "hostprototype.update",
    "params": {
        "hostid": "10092",
        "custom_interfaces": "1",
        "interfaces": [
            {
                "main": "1",
                "type": "2",
                "useip": "1",
                "ip": "127.0.0.1",
                "dns": "",
                "port": "161",
                "details": {
                    "version": "2",
                    "bulk": "1",
                    "community": "{$SNMP_COMMUNITY}"
                }
            }
        ]
    },
    "id": 1
}
```

Réponse :

```json
{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10092"
        ]
    },
    "id": 1
}
```

[comment]: # ({/5195d3ed-7a7b18a4})

[comment]: # ({508c69b6-c4a38bf3})
### Voir aussi

-   [Lien de groupe](object#group-link)
-   [Prototype de groupe](object#group-prototype)
-   [Tag de prototype d'hôte](object#host-prototype-tag)
-   [Interface personnalisée](object#custom-interface)
-   [Macro
    utilisateur](/manual/api/reference/usermacro/object#hosttemplate-level-macro)

[comment]: # ({/508c69b6-c4a38bf3})

[comment]: # ({a380e3fb-a380e3fb})
### Source

CHostPrototype::update() dans *ui/include/classes/api/services/CHostPrototype.php*.

[comment]: # ({/a380e3fb-a380e3fb})
