# StopInstances

## 1. 接口描述

本接口(StopInstances)用于关闭一台或多台虚拟机实例。

{% hint style="info" %}
**注意事项**

* 实例状态为运行中(`RUNNING`)或关闭中的实例(`STOPPING`)，可以进行此操作。在一些场景可能会导致普通关机失败，可以设置 `forceShutdown` = true 来强制关机。
* 本接口为异步接口，关闭实例请求发送成功后会立即返回，此时操作并未完成。实例操作结果可以通过调用[DescribeInstancesStatus](https://docs.console.zenlayer.com/api/cn/compute/zec/instance/describeinstancesstatus)接口查询，如果实例状态(`instanceStatus`)由`STOPPING`变为`STOPPED`，则代表实例关闭成功，关闭过程中不可对实例进行任何操作。
* 支持批量操作。每次请求批量实例的上限为100。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称          | 必选 | 类型              | 描述                             |
| ------------- | -- | --------------- | ------------------------------ |
| instanceIds   | 是  | Array of String | 待关闭的实例ID。                      |
| forceShutdown | 否  | Boolean         | <p>是否强制关机。</p><p>默认值：true。</p> |

## 3. 响应结果

| 参数名称        | 类型              | 描述                                                       |
| ----------- | --------------- | -------------------------------------------------------- |
| requestId   | String          | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |
| instanceIds | Array of String | 操作失败的实例ID列表。                                             |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 强制关闭2台实例。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: StopInstances
<Common Request Params>

Request：
{
  "instanceIds": [
    "instanceId1",
    "instanceId2"
  ],
  "forceShutdown":true
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "instanceIds": []
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](https://docs.console.zenlayer.com/api/cn/api-introduction/toolkit)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](https://docs.console.zenlayer.com/api/cn/api-introduction/instruction/commonerrorcode)

| HTTP状态码 | 错误码                                        | 说明          |
| ------- | ------------------------------------------ | ----------- |
| 400     | OPERATION\_DENIED\_INSTANCE\_IN\_OPERATION | 实例正在其它操作中。  |
| 400     | UNSUPPORTED\_OPERATION\_INSTANCE\_STATUS   | 实例状态不支持此操作。 |
