
# 切换弹性云服务器操作系统（未安装Cloud-init） - ChangeServerOsWithoutCloudInit
#### 功能介绍
切换弹性云服务器操作系统。
本接口为异步接口，当前切换弹性云服务器操作系统请求下发成功后会返回job_id，此时切换弹性云服务器操作系统并没有立即完成，需要通过调用[查询任务的执行状态 - ShowJob](https://support.huaweicloud.com/api-ecs/ecs_02_0901.html)查询job状态，当Job状态为 SUCCESS 时代表云服务器操作系统切换成功。
调用该接口后，系统将卸载系统盘，然后使用新镜像重新创建系统盘，并挂载至弹性云服务器，实现切换操作系统功能。
该接口支持未安装Cloud-init或Cloudbase-init的镜像使用，如果镜像安装了Cloud-init或者Cloudbase-init，请使用 [切换弹性云服务器操作系统（安装Cloud-init） - ChangeServerOsWithCloudInit](https://support.huaweicloud.com/api-ecs/ecs_02_0202.html)接口。
关于Cloud-init和Cloudbase-init的更多信息，请参见[Cloud-init/Cloudbase-init](https://support.huaweicloud.com/productdesc-ecs/ecs_01_0055.html)。
#### 接口约束
- 不包含系统盘的弹性云服务器不能切换操作系统。
- 竞价计费的弹性云服务器不支持切换操作系统。
- 执行切换操作系统任务时，请勿并行执行其他任务，否则可能会引起切换操作系统失败。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ECS&api=ChangeServerOsWithoutCloudInit)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ecs/ecs_06_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                       | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| ecs:cloudServers:changeOS | write | instance \* | - g:ResourceTag/\<tag-key\>  - g:EnterpriseProjectId  - ecs:imageID  - evs:Encrypted  - ecs:KmsKeyId  - ecs:SSHKeyPairName  - ecs:ImageType  - ecs:OsVersion  - ecs:OsType  - ecs:ImagePlatform   | -  | -      |
   
#### URI
POST /v1/{project_id}/cloudservers/{server_id}/changeos
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| project_id | 是    | **参数解释：** 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| server_id  | 是    | **参数解释：** 弹性云服务器ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                   |
   
#### 请求消息
请求参数如[表2]所示。
 表2请求参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| os-change | 是    | Object | **参数解释：** 切换弹性云服务器操作系统，详情参见 [表3]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表3os-change字段数据结构说明 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| adminpass | 否    | String | **参数解释：** 云服务器管理员账户的初始登录密码。 其中，Windows管理员账户的用户名为Administrator，Linux管理员账户的用户名为root。 **约束限制：** - Windows云服务器仅支持密码方式，且密码不能包含用户名或用户名的逆序，不能包含用户名中超过两个连续字符的部分。  - adminpass和keyname不能同时为空。  - adminpass和keyname不能同时有值。   **取值范围：** 建议密码复杂度如下： - 长度为8-26位。  - 密码至少必须包含大写字母、小写字母、数字和特殊字符（!@$%\^-_=+\[{}\]:,./?\~#\*）中的三种。   **默认取值：** 不涉及 |
| keyname   | 否    | String | **参数解释：** 密钥名称。 密钥可以通过密钥创建接口进行创建（请参见[创建和导入SSH密钥对](https://support.huaweicloud.com/api-dew/CreateKeypair.html)），或使用SSH密钥查询接口查询已有的密钥（请参见[查询SSH密钥对列表](https://support.huaweicloud.com/api-dew/ListKeypairs.html) ）。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| userid    | 否    | String | **参数解释：** 用户ID。 **约束限制：** 当传入keyname参数时，优先使用本参数设置的userid，若userid为空，默认使用当前token中的userid。 登录管理控制台，在[我的凭证](https://console.huaweicloud.com/iam/?#/mine/apiCredential)页面查看IAM用户查看IAM用户ID。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| imageid   | 是    | String | **参数解释：** 切换系统所使用的新镜像的ID，格式为UUID。 镜像的ID可以从控制台或者参考《镜像服务API参考》的"[查询镜像列表](https://support.huaweicloud.com/api-ims/ims_03_0602.html)"的章节获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| isAutoPay | 否    | String | **参数解释：** 下单订购后，是否自动从客户的账户中支付，而不需要客户手动去进行支付。 **约束限制：** 适用于包年/包月虚拟机费用发生变化时，不传该字段时默认为客户手动支付。 **取值范围：** - "true"：是（自动支付）  - "false"：否（需要客户手动支付）   **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| metadata  | 否    | Object | **参数解释：** 切换云服务器的元数据。 更多信息，请参见[表4]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mode      | 否    | String | **参数解释：** 取值为withStopServer ，支持开机状态下切换弹性云服务器操作系统。 **约束限制：** 不涉及 **取值范围：** mode取值为withStopServer时，对开机状态的弹性云服务器执行切换操作系统操作，系统自动对云服务器先执行关机，再切换操作系统。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表4metadata字段数据结构说明 
| 参数                  | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| __system__encrypted | 否    | String | **参数解释：** metadata中的表示加密功能的字段。 **约束限制：** 不涉及 **取值范围：** - 0：代表不加密  - 1：代表加密。   **默认取值：** 该字段不存在时，系统盘默认为不加密。 |
| __system__cmkid     | 否    | String | **参数解释：** 用户主密钥ID，是metadata中的表示加密功能的字段 **约束限制：** 与__system__encrypted配合使用。 说明： 请参考[查询密钥列表](https://support.huaweicloud.com/api-dew/ListKeys.html)，通过HTTPS请求获取密钥ID。 **取值范围：** 不涉及 **默认取值：** 不涉及   |
   
#### 响应消息
响应参数如[表5]所示。
 表5响应参数 
| 参数     | 参数类型   | 描述                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| job_id | String | **参数解释：** 提交任务成功后返回的任务ID，用户可以使用该ID对任务执行情况进行查询。如何根据job_id来查询Job的执行状态，请参考[查询Job状态](https://support.huaweicloud.com/api-ecs/ecs_02_0900.html)。 **取值范围：** 不涉及 |
   
异常响应请参考[响应（任务类）](https://support.huaweicloud.com/api-ecs/ecs_07_0005.html)，异常响应要素说明。
#### 请求示例
切换云服务器操作系统，切换后采用密钥方式登录鉴权。
```
POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/changeos
{
    "os-change": {
        "keyname": "KeyPair-350b", 
        "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
        "imageid": "e215580f-73ad-429d-b6f2-5433947433b0",
        "metadata": {
              "__system__encrypted": "1",
              "__system__cmkid": "83cdb52d-9ebf-4469-9cfa-e7b5b80da846"
        },
        "mode": "withStopServer"
    }
}
```
#### 响应示例
请参考[响应（任务类）](https://support.huaweicloud.com/api-ecs/ecs_07_0005.html)。
```
{      
    "job_id": "ff80808288d41e1b018990260955686a"
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
