[comment]: # ({1359fe15-1359fe15})
# configuration.import

[comment]: # ({/1359fe15-1359fe15})

[comment]: # ({1a68a159-fe885a4a})
### 描述

`boolean configuration.import(object parameters)`

此方法允许从序列化的string中import配置数据。

::: noteclassic
该方法对任何类型的用户都可用。
调用该方法的权限可以在用户角色设置中撤销。
更多信息请参阅[User roles](/manual/web_interface/frontend_sections/administration/user_roles)。

:::

[comment]: # ({/1a68a159-fe885a4a})

[comment]: # ({67c30ab6-147fd272})
### 参数

`(object)` 包含用于`import`的数据参数及数据处理规则

| 参数 | [数据类型](/manual/api/reference_commentary#数据类型) | 描述 |
|--|--|------|
| **format**<br>(required) | string | 序列化string的格式.<br><br>可选值:<br>`yaml` - YAML;<br>`xml` - XML;<br>`json` - JSON. |
| **source**<br>(required) | string | 包含配置数据的序列化string。 |
| **rules**<br>(required) | object | 关于如何导入新旧objects的规则。<br><br>*Admin*类型用户仅可import其具有*读写*权限[permission](/manual/api/reference/usergroup/object#permission)的objects及地图。例如，一个主机及其关联实体（监控项、触发器、图表等）仅当用户所在用户组对导入主机所属的主机组具有权限时方可导入。图片与媒体类型不可由*Admin*类型用户导入。<br><br>`rules`参数详情如下表所述。|

::: noteimportant
如果没有给出规则，配置将不会更新。

:::

`rules` object 支持以下参数.

| 参数 | [数据类型](/manual/api/reference_commentary#数据类型) | 描述 |
|--|--|------|
| discoveryRules | object | 关于如何import LLD规则的规范.<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新的LLD规则；默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有的LLD规则；默认值: `false`;<br>`deleteMissing` - `(boolean)` 如果设置为`true`，导入数据中不存在的LLD规则将从数据库中删除；默认值: `false`. |
| graphs | object | 关于如何import图表的规则。<br><br>支持的参数：<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新图表；默认值：`false`；<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有图表；默认值：`false`；<br>`deleteMissing` - `(boolean)` 如果设置为`true`，将从数据库中删除导入数据中不存在的图表；默认值：`false`。 |
| groups | object | 关于如何import主机组的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新的主机组；默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有的主机组；默认值: `false`。 |
| hosts | object | 关于如何import主机的规则.<br><br>支持的参数:<br>`createMissing` - 如果设置为`true`则`(boolean)`，将创建新的主机；默认值：`false`;<br>`updateExisting` - 如果设置为`true`则`(boolean)`，将更新现有的主机；默认值：`false`. |
| httptests | object | 关于如何importWeb场景的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新的Web场景；默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有的Web场景；默认值: `false`;<br>`deleteMissing` - `(boolean)` 如果设置为`true`，导入数据中不存在的Web场景将从数据库中删除；默认值: `false`。 |
| images | object | 关于如何import图像的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新图像；默认值：`false`；<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有图像；默认值：`false`。 |
| items | object | 关于如何import监控项的规则.<br><br>支持的参数:<br>`createMissing` - 如果设置为`true`则创建新的监控项，类型为`(boolean)`；默认值: `false`;<br>`updateExisting` - 如果设置为`true`则更新现有监控项，类型为`(boolean)`；默认值: `false`;<br>`deleteMissing` - 如果设置为`true`则删除数据库中不存在于导入数据的监控项，类型为`(boolean)`；默认值: `false`. |
| maps | object | 关于如何import地图的规则.<br><br>支持的参数:<br>`createMissing` - 如果设置为`true`则创建新地图, 类型为`(boolean)`; 默认值: `false`;<br>`updateExisting` - 如果设置为`true`则更新现有地图, 类型为`(boolean)`; 默认值: `false`. |
| mediaTypes | object | 关于如何import媒体类型的规则.<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`, 将创建新的媒体类型; 默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`, 将更新现有媒体类型; 默认值: `false`. |
| templateLinkage | object | 关于如何import模板链接的规则.<br><br>支持的参数:<br>`createMissing` - `(boolean)` 若设置为`true`，则未链接到主机或正在导入的模板、但存在于导入数据中的模板将被链接；默认值: `false`;<br>`deleteMissing` - `(boolean)` 若设置为`true`，则链接到主机或正在导入的模板、但不存在于导入数据中的模板将被解除链接，同时保留从解除链接模板继承的实体(监控项、触发器等)；默认值: `false`. |
| templates | object | 关于如何import模板的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新模板；默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有模板；默认值: `false`。 |
| templateDashboards | object | 关于如何import模板仪表板的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`, 将创建新的模板仪表板; 默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`, 将更新现有的模板仪表板; 默认值: `false`;<br>`deleteMissing` - `(boolean)` 如果设置为`true`, 将从数据库中删除导入数据中不存在的模板仪表板; 默认值: `false`. |
| triggers | object | 关于如何import触发器的规则。<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`，将创建新触发器；默认值: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`，将更新现有触发器；默认值: `false`;<br>`deleteMissing` - `(boolean)` 如果设置为`true`，导入数据中不存在的触发器将从数据库中删除；默认值: `false`。 |
| valueMaps | object | 关于如何import主机或模板值映射的规则.<br><br>支持的参数:<br>`createMissing` - `(boolean)` 如果设置为`true`, 将创建新的值映射; 默认: `false`;<br>`updateExisting` - `(boolean)` 如果设置为`true`, 将更新现有的值映射; 默认: `false`;<br>`deleteMissing` - `(boolean)` 如果设置为`true`, 将从数据库中删除导入数据中不存在的值映射; 默认: `false`. |

[comment]: # ({/67c30ab6-147fd272})

[comment]: # ({08d02880-08d02880})
### 返回值

`(boolean)` 返回 `true` 表示导入操作已成功完成。

[comment]: # ({/08d02880-08d02880})

[comment]: # ({b41637d2-b41637d2})
### 示例

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

[comment]: # ({ce189b44-0801380e})
#### 导入模板

导入XML string中包含的模板配置。
如果XML string中缺少任何监控项或触发器，它们将从数据库中删除，其余内容将保持不变。

请求:

```json
{
    "jsonrpc": "2.0",
    "method": "configuration.import",
    "params": {
        "format": "xml",
        "rules": {
            "templates": {
                "createMissing": true,
                "updateExisting": true
            },
            "items": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "triggers": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "valueMaps": {
                "createMissing": true,
                "updateExisting": false
            }
        },
        "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<zabbix_export><version>6.0</version><date>2023-01-01T12:00:00Z</date><groups><group><uuid>7df96b18c230490a9a0a9e2307226338</uuid><name>Templates</name></group></groups><templates><template><uuid>5aef0444a82a4d8cb7a95dc4c0c85330</uuid><template>New template</template><name>New template</name><groups><group><name>Templates</name></group></groups><items><item><uuid>7f1e6f1e48aa4a128e5b6a958a5d11c3</uuid><name>Zabbix agent ping</name><key>agent.ping</key></item><item><uuid>77ba228662be4570830aa3c503fcdc03</uuid><name>Apache server uptime</name><type>DEPENDENT</type><key>apache.server.uptime</key><delay>0</delay><trends>0</trends><value_type>TEXT</value_type><preprocessing><step><type>REGEX</type><parameters><parameter>&lt;dt&gt;Server uptime: (.*)&lt;/dt&gt;</parameter><parameter>\\1</parameter></parameters></step></preprocessing><master_item><key>web.page.get[127.0.0.1/server-status]</key></master_item></item><item><uuid>6805d4c39a624a8bab2cc8ab63df1ab3</uuid><name>CPU load</name><key>system.cpu.load</key><value_type>FLOAT</value_type><triggers><trigger><uuid>ab4c2526c2bc42e48a633082255ebcb3</uuid><expression>avg(/New template/system.cpu.load,3m)&gt;2</expression><name>CPU load too high on 'New host' for 3 minutes</name><priority>WARNING</priority></trigger></triggers></item><item><uuid>590efe5731254f089265c76ff9320726</uuid><name>Apache server status</name><key>web.page.get[127.0.0.1/server-status]</key><trends>0</trends><value_type>TEXT</value_type></item></items><valuemaps><valuemap><uuid>8fd5814c45d44a00a15ac6eaae1f3946</uuid><name>Zabbix agent ping</name><mappings><mapping><value>1</value><newvalue>Available</newvalue></mapping><mapping><value>0</value><newvalue>Not available</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>\n"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```
响应:

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

[comment]: # ({/ce189b44-0801380e})

[comment]: # ({b6dce61f-c5744b74})
### 来源

CConfiguration::import() 位于 *ui/include/classes/api/services/CConfiguration.php* 文件中。

[comment]: # ({/b6dce61f-c5744b74})
