[comment]: # ({16011390-16011390})
# mediatype.get

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

[comment]: # ({b6b5b44e-10e7fdda})
### Description

`integer/array mediatype.get(object parameters)`

La méthode permet de récupérer les types de média selon les paramètres donnés.

::: noteclassic
Cette méthode est disponible pour les utilisateurs de tout type.
Les autorisations d’appel de la méthode peuvent être révoquées dans les paramètres des rôles utilisateur.
Voir [User roles](/manual/web_interface/frontend_sections/users/user_roles) pour plus d’informations.
:::

[comment]: # ({/b6b5b44e-10e7fdda})

[comment]: # ({1f99b3dc-dde2e026})
### Paramètres

`(object)` Paramètres définissant la sortie souhaitée.

La méthode prend en charge les paramètres suivants.

::: noteclassic
Lors de la demande d'informations liées à l'utilisateur sur les types de média, les utilisateurs de type *Admin* et *User* ne peuvent récupérer des données que sur leur propre utilisateur.
Pour un exemple, voir [Récupération des types de média en tant qu'*Admin*](#retrieving-media-types-as-admin).
:::

|Paramètre|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|mediatypeids|ID/array|Retourner uniquement les types de média avec les ID donnés.|
|mediaids|ID/array|Retourner uniquement les types de média utilisés par les [media](/manual/api/reference/user/object#media) donnés.|
|userids|ID/array|Retourner uniquement les types de média utilisés par les utilisateurs donnés.|
|selectActions|query|Retourner une propriété [`actions`](/manual/api/reference/action/object) avec les actions qui utilisent le type de média.|
|selectMessageTemplates|query|Retourner une propriété [`message_templates`](/manual/api/reference/mediatype/object#message-template) avec un tableau de messages de type de média.<br><br>[Comportement des paramètres](/manual/api/reference_commentary#parameter-behavior) :<br>- *pris en charge* pour les utilisateurs de type *Super admin*|
|selectUsers|query|Retourner une propriété [`users`](/manual/api/reference/user/object) avec les utilisateurs qui utilisent le type de média.<br><br>Voir [`user.get`](/manual/api/reference/user/get) pour les restrictions selon le type d'utilisateur.|
|sortfield|string/array|Trier le résultat selon les propriétés données.<br><br>Valeurs possibles : `mediatypeid`.|
|filter|object|Retourner uniquement les résultats qui correspondent exactement au filtre donné.<br><br>Accepte un objet, où les clés sont des noms de propriété et les valeurs sont soit une valeur unique, soit un tableau de valeurs à comparer.<br><br>Ne prend pas en charge les propriétés du [type de données](/manual/api/reference_commentary#data-types) `text`.<br><br>Propriétés possibles de l'[objet type de média](/manual/api/reference/mediatype/object) pour les utilisateurs de type *Admin* et *User* : `mediatypeid`, `name`, `type`, `status`, `maxattempts`.|
|output|query|Propriétés de l'[objet type de média](/manual/api/reference/mediatype/object) à retourner.<br><br>Les utilisateurs de type *Admin* et *User* ne peuvent récupérer que les propriétés suivantes : `mediatypeid`, `name`, `type`, `status`, `maxattempts`, `description`. Pour un exemple, voir [Récupération des types de média en tant qu'*Admin*](#retrieving-media-types-as-admin).<br><br>Par défaut : `extend`.|
|search|object|Retourner les résultats correspondant au motif donné (insensible à la casse).<br><br>Accepte un objet, où les clés sont des noms de propriété et les valeurs sont des chaînes à rechercher. Si aucune option supplémentaire n'est fournie, cela effectuera une recherche `LIKE "%…%"`.<br><br>Prend en charge uniquement les propriétés des [types de données](/manual/api/reference_commentary#data-types) `string` et `text`.<br><br>Propriétés possibles de l'[objet type de média](/manual/api/reference/mediatype/object) pour les utilisateurs de type *Admin* et *User* : `name`, `description`.|
|countOutput|boolean|Ces paramètres sont décrits dans la [référence commentée](/manual/api/reference_commentary#common-get-method-parameters).|
|editable|boolean|^|
|excludeSearch|boolean|^|
|limit|integer|^|
|preservekeys|boolean|^|
|searchByAny|boolean|^|
|searchWildcardsEnabled|boolean|^|
|sortorder|string/array|^|
|startSearch|boolean|^|

[comment]: # ({/1f99b3dc-dde2e026})

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

`(integer/array)` Retourne soit :

-   un tableau d'objets ;
-   le nombre d'objets récupérés, si le paramètre `countOutput` a été utilisé.

[comment]: # ({/7223bab1-7223bab1})

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

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

[comment]: # ({b4639c84-173c5ab7})
#### Récupération des types de média

Récupérez tous les types de média configurés. L'exemple suivant renvoie deux types de média : 

- type de média e-mail ; 
- type de média SMS.

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

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "selectMessageTemplates": "extend"
    },
    "id": 1
}
```

Réponse :

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "1",
            "type": "0",
            "name": "Email",
            "smtp_server": "mail.example.com",
            "smtp_helo": "example.com",
            "smtp_email": "zabbix@example.com",
            "exec_path": "",
            "gsm_modem": "",
            "username": "",
            "passwd": "",
            "status": "0",
            "smtp_port": "25",
            "smtp_security": "0",
            "smtp_verify_peer": "0",
            "smtp_verify_host": "0",
            "smtp_authentication": "0",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "message_format": "0",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "provider": "0",
            "message_templates": [
                {
                    "eventsource": "0",
                    "recovery": "0",
                    "subject": "Problème : {EVENT.NAME}",
                    "message": "Le problème a commencé à {EVENT.TIME} le {EVENT.DATE}\r\nNom du problème : {EVENT.NAME}\r\nHôte : {HOST.NAME}\r\nSévérité : {EVENT.SEVERITY}\r\nDonnées opérationnelles : {EVENT.OPDATA}\r\nID du problème d'origine : {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "Résolu : {EVENT.NAME}",
                    "message": "Le problème a été résolu à {EVENT.RECOVERY.TIME} le {EVENT.RECOVERY.DATE}\r\nNom du problème : {EVENT.NAME}\r\nHôte : {HOST.NAME}\r\nSévérité : {EVENT.SEVERITY}\r\n\r\nID du problème d'origine : {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "Problème mis à jour : {EVENT.NAME}",
                    "message": "{USER.FULLNAME} a effectué l'action {EVENT.UPDATE.ACTION} sur le problème le {EVENT.UPDATE.DATE} à {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nL'état actuel du problème est {EVENT.STATUS}, acquitté : {EVENT.ACK.STATUS}."
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "Découverte : {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
                    "message": "Règle de découverte : {DISCOVERY.RULE.NAME}\r\n\r\nIP du périphérique : {DISCOVERY.DEVICE.IPADDRESS}\r\nDNS du périphérique : {DISCOVERY.DEVICE.DNS}\r\nÉtat du périphérique : {DISCOVERY.DEVICE.STATUS}\r\nTemps de fonctionnement du périphérique : {DISCOVERY.DEVICE.UPTIME}\r\n\r\nNom du service du périphérique : {DISCOVERY.SERVICE.NAME}\r\nPort du service du périphérique : {DISCOVERY.SERVICE.PORT}\r\nÉtat du service du périphérique : {DISCOVERY.SERVICE.STATUS}\r\nTemps de fonctionnement du service du périphérique : {DISCOVERY.SERVICE.UPTIME}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "Auto-enregistrement : {HOST.HOST}",
                    "message": "Nom de l'hôte : {HOST.HOST}\r\nIP de l'hôte : {HOST.IP}\r\nPort de l'agent : {HOST.PORT}"
                }
            ],
            "parameters": []
        },
        {
            "mediatypeid": "3",
            "type": "2",
            "name": "SMS",
            "smtp_server": "",
            "smtp_helo": "",
            "smtp_email": "",
            "exec_path": "",
            "gsm_modem": "/dev/ttyS0",
            "username": "",
            "passwd": "",
            "status": "0",
            "smtp_port": "25",
            "smtp_security": "0",
            "smtp_verify_peer": "0",
            "smtp_verify_host": "0",
            "smtp_authentication": "0",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "message_format": "1",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "provider": "0",
            "message_templates": [
                {
                    "eventsource": "0",
                    "recovery": "0",
                    "subject": "",
                    "message": "{EVENT.SEVERITY} : {EVENT.NAME}\r\nHôte : {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "",
                    "message": "RÉSOLU : {EVENT.NAME}\r\nHôte : {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "",
                    "message": "{USER.FULLNAME} a effectué l'action {EVENT.UPDATE.ACTION} sur le problème le {EVENT.UPDATE.DATE} à {EVENT.UPDATE.TIME}"
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "",
                    "message": "Découverte : {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "",
                    "message": "Auto-enregistrement : {HOST.HOST}\r\nIP de l'hôte : {HOST.IP}\r\nPort de l'agent : {HOST.PORT}"
                }
            ],
            "parameters": []
        }
    ],
    "id": 1
}
```

[comment]: # ({/b4639c84-173c5ab7})

[comment]: # ({5b0f82b1-0576a674})
#### Récupération des types de média en tant qu’*Admin*

En tant qu’utilisateur de type *Admin*, récupérez tous les types de média activés, avec les utilisateurs qui utilisent ces types de média.
L’exemple suivant renvoie deux types de média :

- le type de média email avec un utilisateur (uniquement l’utilisateur du type *Admin* lui-même) ;
- le type de média SMS sans utilisateur.

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

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "filter": {
            "status": 0
        },
        "selectUsers": "extend"
    },
    "id": 1
}
```

Réponse :

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "1",
            "type": "0",
            "name": "Email",
            "status": "0",
            "description": "",
            "maxattempts": "3",
            "users": [
                {
                    "userid": "3",
                    "username": "database-admin",
                    "name": "John",
                    "surname": "Doe",
                    "url": "",
                    "autologin": "0",
                    "autologout": "0",
                    "lang": "default",
                    "refresh": "30s",
                    "theme": "default",
                    "attempt_failed": "0",
                    "attempt_ip": "",
                    "attempt_clock": "0",
                    "rows_per_page": "50",
                    "timezone": "default",
                    "roleid": "2",
                    "provisioned": "0"
                }
            ]
        },
        {
            "mediatypeid": "3",
            "type": "2",
            "name": "SMS",
            "status": "0",
            "description": "",
            "maxattempts": "3",
            "users": []
        }
    ],
    "id": 1
}
```

[comment]: # ({/5b0f82b1-0576a674})

[comment]: # ({fcea1a0a-621ff52f})

#### Retrieve script and webhook media types

The following example returns three media types:

-   script media type with parameters;
-   script media type without parameters;
-   webhook media type with parameters.

[Request](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": ["mediatypeid", "name", "parameters"],
        "filter": {
            "type": [1, 4]
        }
    },
    "id": 1
}
```

Response:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "10",
            "name": "Script with parameters",
            "parameters": [
                {
                    "sortorder": "0",
                    "value": "{ALERT.SENDTO}"
                },
                {
                    "sortorder": "1",
                    "value": "{EVENT.NAME}"
                },
                {
                    "sortorder": "2",
                    "value": "{ALERT.MESSAGE}"
                },
                {
                    "sortorder": "3",
                    "value": "Zabbix alert"
                }
            ]
        },
        {
            "mediatypeid": "13",
            "name": "Script without parameters",
            "parameters": []
        },
        {
            "mediatypeid": "11",
            "name": "Webhook",
            "parameters": [
                {
                    "name": "alert_message",
                    "value": "{ALERT.MESSAGE}"
                },
                {
                    "name": "event_update_message",
                    "value": "{EVENT.UPDATE.MESSAGE}"
                },
                {
                    "name": "host_name",
                    "value": "{HOST.NAME}"
                },
                {
                    "name": "trigger_description",
                    "value": "{TRIGGER.DESCRIPTION}"
                },
                {
                    "name": "trigger_id",
                    "value": "{TRIGGER.ID}"
                },
                {
                    "name": "alert_source",
                    "value": "Zabbix"
                }
            ]
        }
    ],
    "id": 1
}
```

[comment]: # ({/fcea1a0a-621ff52f})

[comment]: # ({039ccba1-039ccba1})
### Voir également

-   [Utilisateur](/manual/api/reference/user/object#user)

[comment]: # ({/039ccba1-039ccba1})

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

CMediaType::get() dans *ui/include/classes/api/services/CMediaType.php*.

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