[comment]: # translation:outdated

[comment]: # ({6d056871-6d056871})
# Anhang 1. Referenzkommentar

[comment]: # ({/6d056871-6d056871})

[comment]: # ({6594bdc4-6594bdc4})
### Notation

[comment]: # ({/6594bdc4-6594bdc4})

[comment]: # ({8c926b1a-2df08058})
#### Datentypen

Die Zabbix-API unterstützt die folgenden Datentypen als Eingabe:

|Typ|Beschreibung|
|--|--------|
|ID|Eine eindeutige Kennung, mit der auf eine Entität verwiesen wird.|
|Boolean|Ein Boolescher Wert (entweder `true` oder `false`).|
|Flag|Ein Wert, der als `true` betrachtet wird, wenn er übergeben wird, und ungleich `null` ist; andernfalls wird der Wert als `false` betrachtet.|
|Integer|Eine ganze Zahl.|
|Float|Eine Gleitkommazahl.|
|String|Eine Textzeichenfolge.|
|Text|Eine längere Textzeichenfolge.|
|Timestamp|Ein Unix-Zeitstempel.|
|Array|Eine geordnete Wertefolge (ein einfaches Array).|
|Object|Ein assoziatives Array.|
|Query|Ein Wert, der die zurückzugebenden Daten definiert. Der Wert kann als Array von Eigenschaftsnamen (um nur bestimmte Eigenschaften zurückzugeben) oder als einer der vordefinierten Werte definiert werden:<br>`extend` – gibt alle Objekteigenschaften zurück;<br>`count` – gibt die Anzahl der abgerufenen Datensätze zurück, wird nur von bestimmten Unterauswahlen unterstützt.|

::: noteimportant
Die Zabbix-API gibt Werte immer nur als Zeichenfolgen oder
Arrays zurück.
:::

[comment]: # ({/8c926b1a-2df08058})

[comment]: # ({8f68b338-a2c16a18})
#### Verhalten von Eigenschaften

Einige der Objekteigenschaften sind mit kurzen Bezeichnungen versehen, um ihr Verhalten zu beschreiben. Die folgenden Bezeichnungen werden verwendet:

-   ***schreibgeschützt*** - der Wert der Eigenschaft wird automatisch gesetzt und kann vom Benutzer nicht definiert oder geändert werden, auch nicht unter bestimmten Bedingungen (z. B. *schreibgeschützt* für geerbte oder entdeckte Objekte);
-   ***nur schreibbar*** - der Wert der Eigenschaft kann gesetzt, danach jedoch nicht mehr abgerufen werden;
-   ***konstant*** - der Wert der Eigenschaft kann beim Erstellen eines Objekts gesetzt, danach jedoch nicht mehr geändert werden;
-   ***unterstützt*** - der Wert der Eigenschaft muss nicht gesetzt werden, darf jedoch unter bestimmten Bedingungen gesetzt werden (z. B. *unterstützt*, wenn `type` auf "Simple check", "External check", "SSH agent", "TELNET agent" oder "HTTP agent" gesetzt ist); beachten Sie jedoch, dass *unterstützte* Eigenschaften unabhängig von den Bedingungen weiterhin auf ihre Standardwerte gesetzt werden können;
-   ***erforderlich*** - der Wert der Eigenschaft muss für alle Operationen (außer get-Operationen) oder unter bestimmten Bedingungen gesetzt werden (z. B. *erforderlich* für create-Operationen; *erforderlich*, wenn `operationtype` auf "global script" gesetzt ist und `opcommand_hst` nicht gesetzt ist).

::: noteclassic
Bei update-Operationen gilt eine Eigenschaft als „gesetzt“, wenn sie während der update-Operation gesetzt wird.
:::

Eigenschaften, die nicht mit Bezeichnungen versehen sind, sind optional.

[comment]: # ({/8f68b338-a2c16a18})

[comment]: # ({f960f4be-f255da9d})
#### Verhalten von Parametern

Einige der Operationsparameter sind mit kurzen Bezeichnungen versehen, um ihr Verhalten für die Operation zu beschreiben. Die folgenden Bezeichnungen werden verwendet:

-   ***schreibgeschützt*** - der Wert des Parameters wird automatisch gesetzt und kann vom Benutzer nicht definiert oder geändert werden, auch nicht unter bestimmten Bedingungen (z. B. *schreibgeschützt* für geerbte Objekte oder entdeckte Objekte);
-   ***nur schreiben*** - der Wert des Parameters kann gesetzt, danach jedoch nicht mehr abgerufen werden;
-   ***unterstützt*** - der Wert des Parameters muss nicht gesetzt werden, darf jedoch unter bestimmten Bedingungen gesetzt werden (z. B. *unterstützt*, wenn `operating_mode` des Proxy-Objekts auf "passive proxy" gesetzt ist); beachten Sie jedoch, dass *unterstützte* Parameter unabhängig von den Bedingungen weiterhin auf ihre Standardwerte gesetzt werden können;
-   ***erforderlich*** - der Wert des Parameters muss gesetzt werden.

Parameter, die nicht mit Bezeichnungen versehen sind, sind optional.

[comment]: # ({/f960f4be-f255da9d})

[comment]: # ({cf59def4-5e99748d})
### Reservierter ID-Wert "0"

Der reservierte ID-Wert "0" kann zum Filtern von Elementen und zum Entfernen
referenzierter Objekte verwendet werden. Um zum Beispiel einen referenzierten Proxy von einem Host zu
entfernen, sollte die proxyid auf 0 gesetzt werden ("proxyid": "0") oder zum 
Filtern von Hosts, die von der Server-Option proxyids überwacht werden, sollte der Wert auf 0 gesetzt werden
("proxyids": "0").“

[comment]: # ({/cf59def4-5e99748d})

[comment]: # ({da9957c2-b4e0f5ab})
### Allgemeine Parameter der Methode "get"

Die folgenden Parameter werden von allen `get`-Methoden unterstützt:

|Parameter|[Type](#data-types)|Beschreibung|
|-|-|--------|
|countOutput|boolean|Gibt die Anzahl der Datensätze im Ergebnis anstelle der eigentlichen Daten zurück.|
|editable|boolean|Wenn auf `true` gesetzt, werden nur Objekte zurückgegeben, für die der Benutzer Schreibrechte hat.<br><br>Standard: `false`.|
|excludeSearch|boolean|Gibt Ergebnisse zurück, die nicht den im Parameter `search` angegebenen Kriterien entsprechen.|
|filter|object|Gibt nur die Ergebnisse zurück, die exakt dem angegebenen Filter entsprechen.<br><br>Akzeptiert ein Objekt, bei dem die Schlüssel Eigenschaftsnamen sind (z. B. Host-Objekteigenschaften in `host.get`, Datenpunkt-Objekteigenschaften in `item.get` usw.) und die Werte entweder ein einzelner Wert oder ein Array von Werten sind, mit denen verglichen werden soll.<br><br>Unterstützt keine Eigenschaften des [Datentyps](#data-types) `text`.<br><br>Beachten Sie, dass einige Methoden für diesen Parameter eine spezielle Funktionalität haben, die auf der Methodenseite beschrieben ist (z. B. unterstützt der Parameter `filter` in [host.get](/manual/api/reference/host/get) auch Eigenschaften von Host-Schnittstellen).|
|limit|integer|Begrenzt die Anzahl der zurückgegebenen Datensätze.|
|output|query|Objekteigenschaften, die zurückgegeben werden sollen.<br><br>Beachten Sie, dass die Objekt-ID (d. h. `hostid`, `itemid` usw.) immer in der Antwort enthalten ist, auch wenn sie im Parameter `output` nicht angegeben ist.<br><br>Standard: `extend`.|
|preservekeys|boolean|Verwendet IDs als Schlüssel im resultierenden Array.|
|search|object|Gibt Ergebnisse zurück, die dem angegebenen Muster entsprechen (Groß-/Kleinschreibung wird nicht beachtet).<br><br>Akzeptiert ein Objekt, bei dem die Schlüssel Eigenschaftsnamen sind (z. B. Host-Objekteigenschaften in `host.get`, Datenpunkt-Objekteigenschaften in `item.get` usw.) und die Werte Zeichenfolgen sind, nach denen gesucht werden soll. Wenn keine zusätzlichen Optionen angegeben sind, wird eine Suche vom Typ `LIKE "%…%"` durchgeführt.<br><br>Unterstützt nur Eigenschaften des [Datentyps](#data-types) `string` und `text`.<br><br>Beachten Sie, dass einige Methoden für diesen Parameter eine spezielle Funktionalität haben, die auf der Methodenseite beschrieben ist (z. B. unterstützt der Parameter `search` in [host.get](/manual/api/reference/host/get) auch Eigenschaften von Host-Schnittstellen).|
|searchByAny|boolean|Wenn auf `true` gesetzt, werden Ergebnisse zurückgegeben, die einem beliebigen der im Parameter `filter` oder `search` angegebenen Kriterien entsprechen, anstatt allen Kriterien.<br><br>Standard: `false`.|
|searchWildcardsEnabled|boolean|Wenn auf `true` gesetzt, wird die Verwendung von "\*" als Platzhalterzeichen im Parameter `search` aktiviert.<br><br>Standard: `false`.|
|sortfield|string/array|Sortiert das Ergebnis nach den angegebenen Eigenschaften. Eine Liste der Eigenschaften, die zum Sortieren verwendet werden können, finden Sie in der Beschreibung der jeweiligen API-get-Methode. Makros werden vor dem Sortieren nicht expandiert.<br><br>Wenn kein Wert angegeben ist, werden die Daten unsortiert zurückgegeben.|
|sortorder|string/array|Reihenfolge der Sortierung. Wenn ein Array übergeben wird, wird jeder Wert der entsprechenden Eigenschaft zugeordnet, die im Parameter `sortfield` angegeben ist.<br><br>Mögliche Werte:<br>`ASC` - *(Standard)* aufsteigend;<br>`DESC` - absteigend.|
|startSearch|boolean|Der Parameter `search` vergleicht den Anfang von Feldern, führt also stattdessen eine Suche vom Typ `LIKE "…%"` aus.<br><br>Wird ignoriert, wenn `searchWildcardsEnabled` auf `true` gesetzt ist.|

[comment]: # ({/da9957c2-b4e0f5ab})

[comment]: # ({1f52febe-4a0aeab6})
### Flags für den Entitätsursprung

Get-Methoden geben eine Eigenschaft `flags` für Entitäten zurück, die mit Low-Level-Discovery zusammenhängen (LLD-Regel/LLD-Regelprototyp, Datenpunkt/Datenpunktprototyp usw.). Diese Eigenschaft ist nützlich, um anzugeben, ob die Entität entdeckt wurde oder nicht, da die Bearbeitung für entdeckte Entitäten eingeschränkt ist.

Die Eigenschaft `flags` gibt ein Ergebnis zurück, das auf einer Kombination (Operation „+“) dieser Werte basiert:

|Value|Description|
|--|--------|
|0|Basisentität (Datenpunkt, Auslöser, Graph, Host)|
|1|Low-Level-Discovery-Regel|
|2|Beliebiger Prototyp (Datenpunktprototyp, Auslöserprototyp, LLD-Regelprototyp usw.)|
|4|Entdeckte Entität (entdeckter Datenpunkt, Auslöser, Graph, Host, LLD-Regel)|

Der von der Eigenschaft `flags` zurückgegebene **kombinierte** Wert kann sein:

|Value|Combination of|Description|
|--|--|------|
|**0**|0|Normale Entität (Datenpunkt, Auslöser, Graph, Host).|
|**2**|2|Entitätsprototyp (Datenpunktprototyp, Auslöserprototyp usw.).|
|**6**|2+4|Entdeckter Datenpunkt, Auslöser, Graph, Host (aus Prototyp konvertiert).|
|**1**|1|Low-Level-Discovery-Regel.|
|**3**|1+2|Low-Level-Discovery-Regelprototyp.|
|**5**|1+4|Entdeckte Low-Level-Discovery-Regel (aus Prototyp konvertiert).|
|**7**|1+2+4|Entdeckter Low-Level-Discovery-Regelprototyp.|

[comment]: # ({/1f52febe-4a0aeab6})

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

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

[comment]: # ({7f8a25ac-7a121fac})
#### Benutzerberechtigungsprüfung

Hat der Benutzer die Berechtigung, auf Hosts zu schreiben, deren Namen mit
"MySQL" oder "Linux" beginnen?
[Anfrage](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "countOutput": true,
        "search": {
            "host": ["MySQL", "Linux"]
        },
        "editable": true,
        "startSearch": true,
        "searchByAny": true
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": "0",
    "id": 1
}
```

::: noteclassic
Keine Ergebnisse bedeuten, es gibt keine Host mit Lese-/Schreib-
Berechtigungen.
:::

[comment]: # ({/7f8a25ac-7a121fac})

[comment]: # ({b814e950-ea3cccd8})
#### Mismatch-Zählung

Zählt die Anzahl der Hosts, deren Namen die Teilzeichenkette
"ubuntu" nicht enthalten.

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

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "countOutput": true,
        "search": {
            "host": "ubuntu"
        },
        "excludeSearch": true
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": "44",
    "id": 1
}
```

[comment]: # ({/b814e950-ea3cccd8})

[comment]: # ({a325f949-e911c08b})
#### Suche nach Hosts mithilfe von Platzhaltern

Suche nach Hosts, deren Name das Wort "Server" enthält und die Schnittstellenports
"10050" or "10071" haben. Sortieren Sie das Ergebnis nach dem Hostnamen in absteigender Reihenfolge und
beschränke die Ausgabe auf 5 Hosts.

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

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host"],
        "selectInterfaces": ["port"],
        "filter": {
            "port": ["10050", "10071"]
        },
        "search": {
            "host": "*server*"
        },
        "searchWildcardsEnabled": true,
        "searchByAny": true,
        "sortfield": "host",
        "sortorder": "DESC",
        "limit": 5
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "50003",
            "host": "WebServer-Tomcat02",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "50005",
            "host": "WebServer-Tomcat01",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "50004",
            "host": "WebServer-Nginx",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "99032",
            "host": "MySQL server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        },
        {
            "hostid": "99061",
            "host": "Linux server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        }
    ],
    "id": 1
}
```

[comment]: # ({/a325f949-e911c08b})

[comment]: # ({8c8fa5f6-8ce6f554})
#### Suche nach Hosts mit Wildcards und "preservekeys"

Wenn Sie der vorherigen Anfrage den Parameter "preservekeys" hinzufügen, 
wird das Ergebnis als assoziatives Array zurückgegeben, 
wobei die Schlüssel die IDs der Objekte sind.

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

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host"],
        "selectInterfaces": ["port"],
        "filter": {
            "port": ["10050", "10071"]
        },
        "search": {
            "host": "*server*"
        },
        "searchWildcardsEnabled": true,
        "searchByAny": true,
        "sortfield": "host",
        "sortorder": "DESC",
        "limit": 5,
        "preservekeys": true
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "50003": {
            "hostid": "50003",
            "host": "WebServer-Tomcat02",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        "50005": {
            "hostid": "50005",
            "host": "WebServer-Tomcat01",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        "50004": {
            "hostid": "50004",
            "host": "WebServer-Nginx",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        "99032": {
            "hostid": "99032",
            "host": "MySQL server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        },
        "99061": {
            "hostid": "99061",
            "host": "Linux server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        }
    },
    "id": 1
}
```

[comment]: # ({/8c8fa5f6-8ce6f554})
