
# 更新磁盘信息 - UpdateDiskInfo
#### 功能介绍
更新服务器的磁盘信息，此接口会把服务器原有磁盘信息清空，然后更新成新磁盘信息。
接口仅在"待设置目的端"才能生效，开始迁移后更改磁盘信息不生效。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-sms/sms_api_0007.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-sms/sms_api_8001.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                       | 访问级别  | 资源类型（\*为必须） | 条件键                   | 别名                        | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | sms:server:updateDiskInfo | Write | server \*   | -                     | sms:server:registerServer | -      |
  | sms:server:updateDiskInfo | Write | -           | g:EnterpriseProjectId | sms:server:registerServer | -      |
     
  
 
#### URI
PUT /v3/sources/{source_id}/diskinfo
表1路径参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                 |
|:---|:---|:---|:---|
| source_id | 是    | String | 源端服务器ID 最小长度：**1** 最大长度：**36** |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 最小长度：**1** 最大长度：**16384** |
   
表3请求Body参数 
| 参数           | 是否必选 | 参数类型                                                                         | 描述                                                              |
|:---|:---|:---|:---|
| disks        | 否    | Array of [ServerDisk] objects           | 更新的磁盘信息 数组长度：**0 - 50**       |
| volumegroups | 否    | Array of [VolumeGroups] objects       | 更新的卷信息 数组长度：**0 - 50**        |
| btrfs_list   | 否    | Array of [BtrfsFileSystem] objects | 更新的btrfs信息 数组长度：**0 - 65535** |
   
 表4ServerDisk 
| 参数               | 是否必选 | 参数类型                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| name             | 否    | String                                                                     | 磁盘名称 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                                          |
| partition_style  | 否    | String                                                                     | 磁盘的分区类型，添加源端时源端磁盘必选，否则无法通过后续环境检查 （非枚举数据，来源于EVS服务） 常见类型如：MBR：主启动记录分区，GPT：Guid Partition Table，全局分区表。 详细类型请参考EVS服务API文档中"MBR和GPT分区形式有何区别"部分描述 最小长度：**0** 最大长度：**255**                                                             |
| device_use       | 否    | String                                                                     | 磁盘类型。 无强约束，可为空值，常见取值如下 NORMAL：平常 OS：系统设备 BOOT：BOOT设备 VOLUME_GROUP：VolumeGroup组成设备 BTRFS：BTRFS组成设备 最小长度：**0** 最大长度：**255** |
| size             | 否    | Long                                                                       | 磁盘总大小，以字节为单位 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                    |
| used_size        | 否    | Long                                                                       | 磁盘已使用大小，以字节为单位 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                  |
| physical_volumes | 否    | Array of [PhysicalVolume] objects | 磁盘上的物理分区信息 数组长度：**0 - 50**                                                                                                                                                                                                                                                                                                                                              |
| os_disk          | 否    | Boolean                                                                    | 是否为系统盘                                                                                                                                                                                                                                                                                                                                                                                                    |
| relation_name    | 否    | String                                                                     | Linux系统 目的端ECS中与源端关联的磁盘名称 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                     |
| inode_size       | 否    | Integer                                                                    | inode大小 最小值：**0** 最大值：**2147483647**                                                                                                                                                                                                                                                                                                  |
   
 表5PhysicalVolume 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| device_use       | 否    | String  | 磁盘类型。 无强约束，可为空值，常见取值如下 NORMAL：平常 OS：系统设备 BOOT：BOOT设备 VOLUME_GROUP：VolumeGroup组成设备 BTRFS：BTRFS组成设备 最小长度：**0** 最大长度：**255** |
| file_system      | 否    | String  | 文件系统类型 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                                        |
| index            | 否    | Integer | 顺序 最小值：**0** 最大值：**2147483647**                                                                                                                                                                                                                                                                                                       |
| mount_point      | 否    | String  | 挂载点 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                                           |
| name             | 否    | String  | 名称，windows表示盘符，Linux表示设备号 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                     |
| size             | 否    | Long    | 大小 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                              |
| used_size        | 否    | Long    | 使用大小 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                            |
| inode_size       | 否    | Integer | inode数量 最小值：**0** 最大值：**2147483647**                                                                                                                                                                                                                                                                                                  |
| inode_nums       | 否    | Long    | inode节点数量 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                       |
| uuid             | 否    | String  | GUID，可从源端查询 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                                   |
| size_per_cluster | 否    | Integer | 每个cluster大小 最小值：**0** 最大值：**2147483647**                                                                                                                                                                                                                                                                                              |
   
 表6VolumeGroups 
| 参数              | 是否必选 | 参数类型                                                                       | 描述                                                                                                             |
|:---|:---|:---|:---|
| components      | 否    | String                                                                     | Pv信息 最小长度：**0** 最大长度：**255**               |
| free_size       | 否    | Long                                                                       | 剩余空间 最小值：**0** 最大值：**9223372036854775807** |
| logical_volumes | 否    | Array of [LogicalVolumes] objects | lv信息 数组长度：**0 - 50**                                                         |
| name            | 否    | String                                                                     | 名称 最小长度：**0** 最大长度：**255**                 |
| size            | 否    | Long                                                                       | 大小 最小值：**0** 最大值：**9223372036854775807**   |
   
 表7LogicalVolumes 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| block_count | 否    | Integer | 块数量 最小值：**0** 最大值：**2147483647** 缺省值：**0**                                                                                                                                                                                                                                                         |
| block_size  | 否    | Long    | 块大小 最小值：**0** 最大值：**1048576** 缺省值：**0**                                                                                                                                                                                                                                                            |
| file_system | 否    | String  | 文件系统 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                                                                         |
| inode_size  | 否    | Integer | inode数量 最小值：**0** 最大值：**2147483647**                                                                                                                                                                                                                                                                                                 |
| inode_nums  | 否    | Long    | inode节点数量 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                      |
| device_use  | 否    | String  | 分区类型 无强约束，可为空值，常见取值如下 NORMAL：平常 OS：系统设备 BOOT：BOOT设备 VOLUME_GROUP：VolumeGroup组成设备 BTRFS：BTRFS组成设备 最小长度：**0** 最大长度：**255** |
| mount_point | 否    | String  | 挂载点 最小长度：**0** 最大长度：**256**                                                                                                                                                                                                                                                                                                          |
| name        | 否    | String  | 名称 最小长度：**0** 最大长度：**1024**                                                                                                                                                                                                                                                                                                          |
| size        | 否    | Long    | 大小 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                             |
| used_size   | 否    | Long    | 使用大小 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                           |
| free_size   | 否    | Long    | 剩余空间 最小值：**0** 最大值：**9223372036854775807**                                                                                                                                                                                                                                                                                           |
   
 表8BtrfsFileSystem 
| 参数                       | 是否必选 | 参数类型                                                                       | 描述                                                                                                                      |
|:---|:---|:---|:---|
| name                     | 否    | String                                                                     | 文件系统名称 最小长度：**0** 最大长度：**255**                      |
| label                    | 否    | String                                                                     | 文件系统标签，若无标签为空字符串 最小长度：**0** 最大长度：**255**            |
| uuid                     | 否    | String                                                                     | 文件系统的uuid 最小长度：**0** 最大长度：**255**                   |
| device                   | 否    | String                                                                     | btrfs包含的设备名称 最小长度：**0** 最大长度：**255**                |
| size                     | 否    | Long                                                                       | 文件系统数据占用大小 最小值：**0** 最大值：**9223372036854775807**    |
| nodesize                 | 否    | Long                                                                       | btrfs节点大小 最小值：**0** 最大值：**9223372036854775807**     |
| sectorsize               | 否    | Integer                                                                    | 扇区大小 最小值：**0** 最大值：**2147483647**                   |
| data_profile             | 否    | String                                                                     | 数据配置（RAD） 最小长度：**0** 最大长度：**255**                   |
| system_profile           | 否    | String                                                                     | 文件系统配置（RAD） 最小长度：**0** 最大长度：**255**                 |
| metadata_profile         | 否    | String                                                                     | 元数据配置（RAD） 最小长度：**0** 最大长度：**255**                  |
| global_reserve1          | 否    | String                                                                     | Btrfs文件系统信息 最小长度：**0** 最大长度：**255**                 |
| g_vol_used_size          | 否    | Long                                                                       | Btrfs卷已使用空间大小 最小值：**0** 最大值：**9223372036854775807** |
| default_subvolid         | 否    | String                                                                     | 默认子卷ID 最小长度：**0** 最大长度：**255**                      |
| default_subvol_name      | 否    | String                                                                     | 默认子卷名称 最小长度：**0** 最大长度：**255**                      |
| default_subvol_mountpath | 否    | String                                                                     | 默认子卷挂载路径/BTRFS文件系统的挂载路径 最小长度：**0** 最大长度：**255**     |
| subvolumn                | 否    | Array of [BtrfsSubvolumn] objects | 子卷信息 数组长度：**0 - 65535**                                                               |
   
 表9BtrfsSubvolumn 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                  |
|:---|:---|:---|:---|
| uuid              | 否    | String | 父卷的uuid 最小长度：**0** 最大长度：**255** |
| is_snapshot       | 否    | String | 子卷是否为快照 最小长度：**0** 最大长度：**255** |
| subvol_id         | 否    | String | 子卷的ID 最小长度：**0** 最大长度：**255**   |
| parent_id         | 否    | String | 父卷ID 最小长度：**0** 最大长度：**255**    |
| subvol_name       | 否    | String | 子卷的名称 最小长度：**0** 最大长度：**255**   |
| subvol_mount_path | 否    | String | 子卷的挂载路径 最小长度：**0** 最大长度：**255** |
   
#### 响应参数
**状态码：200**
表10响应Body参数 
| 参数 | 参数类型   | 描述       |
|:---|:---|:---|
| -  | String | 更新磁盘信息成功 |
   
**状态码：403**
表11响应Body参数 
| 参数                            | 参数类型                                                          | 描述                                                                                                                                                   |
|:---|:---|:---|
| error_code                    | String                                                        | 错误代码 最小长度：**0** 最大长度：**255**                                                     |
| error_msg                     | String                                                        | 错误信息 最小长度：**0** 最大长度：**255**                                                     |
| encoded_authorization_message | String                                                        | 加密授权信息 最小长度：**0** 最大长度：**65535**                                                 |
| error_param                   | Array of strings                                              | 错误参数 最小长度：**0** 最大长度：**65535** 数组长度：**1 - 20** |
| details                       | Array of [details] objects | 详细错误信息 数组长度：**1 - 20**                                                                                             |
   
 表12details 
| 参数         | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code | String | SMS错误代码 最小长度：**0** 最大长度：**65535** |
| error_msg  | String | SMS错误信息 最小长度：**0** 最大长度：**65535** |
   
#### 请求示例
更新服务器的磁盘信息，此接口会把服务器原有磁盘信息清空，然后更新成新磁盘信息，新的磁盘名称是/dev/vda，磁盘类型是BOOT，磁盘大小是42949672960字节。
```
PUT https://{endpoint}/v3/sources/{source_id}/diskinfo
{
  "disks" : [ {
    "name" : "/dev/vda",
    "device_use" : "BOOT",
    "size" : 42949672960,
    "partition_style" : "MBR",
    "used_size" : 42948624384,
    "physical_volumes" : [ {
      "name" : "/dev/vda1",
      "size" : 2153775104,
      "device_use" : "NORMAL",
      "used_size" : 2153775104,
      "inode_size" : 0,
      "file_system" : "swap",
      "mount_point" : ""
    }, {
      "name" : "/dev/vda2",
      "size" : 16862150656,
      "device_use" : "BTRFS",
      "used_size" : 16862150656,
      "inode_size" : 0,
      "file_system" : "btrfs",
      "mount_point" : ""
    }, {
      "name" : "/dev/vda3",
      "size" : 23932698624,
      "device_use" : "NORMAL",
      "used_size" : 33988608,
      "inode_size" : 0,
      "file_system" : "xfs",
      "mount_point" : "/home"
    } ]
  }, {
    "name" : "/dev/vdb",
    "device_use" : "NORMAL",
    "size" : 21474836480,
    "partition_style" : "MBR",
    "used_size" : 21473787904,
    "physical_volumes" : [ {
      "name" : "/dev/vdb1",
      "size" : 21473787904,
      "device_use" : "VOLUME_GROUP",
      "used_size" : 21473787904,
      "inode_size" : 0,
      "file_system" : "LVM2_member",
      "mount_point" : ""
    } ]
  }, {
    "name" : "/dev/vdc",
    "device_use" : "VOLUME_GROUP",
    "size" : 21474836480,
    "partition_style" : "MBR",
    "used_size" : 0,
    "physical_volumes" : [ ]
  } ],
  "volumegroups" : [ {
    "name" : "vg1",
    "size" : 42948624384,
    "components" : "/dev/vdb1;/dev/vdc",
    "logical_volumes" : [ {
      "name" : "/dev/mapper/vg1-lv1",
      "device_use" : "NORMAL",
      "size" : 10737418240,
      "free_size" : 10713837568,
      "used_size" : 23580672,
      "file_system" : "ext4",
      "mount_point" : "/mnt/lv1",
      "inode_size" : 256
    } ]
  } ],
  "btrfs_list" : [ {
    "name" : "/dev/vda2",
    "label" : "none",
    "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "device" : "/dev/vda2",
    "size" : 3538944000,
    "nodesize" : 16384,
    "sectorsize" : 4096,
    "data_profile" : "single",
    "system_profile" : "single",
    "metadata_profile" : "single",
    "global_reserve1" : "single",
    "g_vol_used_size" : 3894038528,
    "default_subvolid" : "259",
    "default_subvol_name" : "@/.snapshots/1/snapshot",
    "default_subvol_mountpath" : "/",
    "subvolumn" : [ {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "257",
      "parent_id" : "5",
      "subvol_name" : "@",
      "subvol_mount_path" : null
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "258",
      "parent_id" : "257",
      "subvol_name" : "@/.snapshots",
      "subvol_mount_path" : "/.snapshots"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "true",
      "subvol_id" : "259",
      "parent_id" : "258",
      "subvol_name" : "@/.snapshots/1/snapshot",
      "subvol_mount_path" : "/"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "260",
      "parent_id" : "257",
      "subvol_name" : "@/boot/grub2/i386-pc",
      "subvol_mount_path" : "/boot/grub2/i386-pc"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "261",
      "parent_id" : "257",
      "subvol_name" : "@/boot/grub2/x86_64-efi",
      "subvol_mount_path" : "/boot/grub2/x86_64-efi"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "262",
      "parent_id" : "257",
      "subvol_name" : "@/opt",
      "subvol_mount_path" : "/opt"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "263",
      "parent_id" : "257",
      "subvol_name" : "@/srv",
      "subvol_mount_path" : "/srv"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "264",
      "parent_id" : "257",
      "subvol_name" : "@/tmp",
      "subvol_mount_path" : "/tmp"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "265",
      "parent_id" : "257",
      "subvol_name" : "@/usr/local",
      "subvol_mount_path" : "/usr/local"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "266",
      "parent_id" : "257",
      "subvol_name" : "@/var/cache",
      "subvol_mount_path" : "/var/cache"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "267",
      "parent_id" : "257",
      "subvol_name" : "@/var/crash",
      "subvol_mount_path" : "/var/crash"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "268",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/libvirt/images",
      "subvol_mount_path" : "/var/lib/libvirt/images"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "269",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/machines",
      "subvol_mount_path" : "/var/lib/machines"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "270",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/mailman",
      "subvol_mount_path" : "/var/lib/mailman"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "271",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/mariadb",
      "subvol_mount_path" : "/var/lib/mariadb"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "272",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/mysql",
      "subvol_mount_path" : "/var/lib/mysql"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "273",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/named",
      "subvol_mount_path" : "/var/lib/named"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "274",
      "parent_id" : "257",
      "subvol_name" : "@/var/lib/pgsql",
      "subvol_mount_path" : "/var/lib/pgsql"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "275",
      "parent_id" : "257",
      "subvol_name" : "@/var/log",
      "subvol_mount_path" : "/var/log"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "276",
      "parent_id" : "257",
      "subvol_name" : "@/var/opt",
      "subvol_mount_path" : "/var/opt"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "277",
      "parent_id" : "257",
      "subvol_name" : "@/var/spool",
      "subvol_mount_path" : "/var/spool"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "false",
      "subvol_id" : "278",
      "parent_id" : "257",
      "subvol_name" : "@/var/tmp",
      "subvol_mount_path" : "/var/tmp"
    }, {
      "uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "is_snapshot" : "true",
      "subvol_id" : "282",
      "parent_id" : "258",
      "subvol_name" : "@/.snapshots/2/snapshot",
      "subvol_mount_path" : null
    } ]
  } ]
}
```
#### 响应示例
**状态码：200**
更新磁盘信息成功
```
"{}"
```
**状态码：403**
鉴权失败
```
{
  "error_code" : "SMS.9004",
  "error_msg" : "The current account does not have the permission to execute policy. You do not have permission to perform action XXX on resource XXX.",
  "encoded_authorization_message" : "XXXXXX",
  "error_param" : [ "You do not have permission to perform action XXX on resource XXX." ],
  "details" : [ {
    "error_code" : "SMS.9004",
    "error_msg" : "You do not have permission to perform action XXX on resource XXX."
  } ]
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  更新服务器的磁盘信息，此接口会把服务器原有磁盘信息清空，然后更新成新磁盘信息，新的磁盘名称是/dev/vda，磁盘类型是BOOT，磁盘大小是42949672960字节。
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.GlobalCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.sms.v3.region.SmsRegion;
  import com.huaweicloud.sdk.sms.v3.*;
  import com.huaweicloud.sdk.sms.v3.model.*;
  import java.util.List;
  import java.util.ArrayList;
  public class UpdateDiskInfoSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          ICredential auth = new GlobalCredentials()
                  .withAk(ak)
                  .withSk(sk);
          SmsClient client = SmsClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(SmsRegion.valueOf("<YOUR REGION>"))
                  .build();
          UpdateDiskInfoRequest request = new UpdateDiskInfoRequest();
          request.withSourceId("{source_id}");
          PutDiskInfoReq body = new PutDiskInfoReq();
          List<BtrfsSubvolumn> listBtrfsListSubvolumn = new ArrayList<>();
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("257")
                  .withParentId("5")
                  .withSubvolName("@")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("258")
                  .withParentId("257")
                  .withSubvolName("@/.snapshots")
                  .withSubvolMountPath("/.snapshots")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("true")
                  .withSubvolId("259")
                  .withParentId("258")
                  .withSubvolName("@/.snapshots/1/snapshot")
                  .withSubvolMountPath("/")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("260")
                  .withParentId("257")
                  .withSubvolName("@/boot/grub2/i386-pc")
                  .withSubvolMountPath("/boot/grub2/i386-pc")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("261")
                  .withParentId("257")
                  .withSubvolName("@/boot/grub2/x86_64-efi")
                  .withSubvolMountPath("/boot/grub2/x86_64-efi")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("262")
                  .withParentId("257")
                  .withSubvolName("@/opt")
                  .withSubvolMountPath("/opt")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("263")
                  .withParentId("257")
                  .withSubvolName("@/srv")
                  .withSubvolMountPath("/srv")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("264")
                  .withParentId("257")
                  .withSubvolName("@/tmp")
                  .withSubvolMountPath("/tmp")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("265")
                  .withParentId("257")
                  .withSubvolName("@/usr/local")
                  .withSubvolMountPath("/usr/local")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("266")
                  .withParentId("257")
                  .withSubvolName("@/var/cache")
                  .withSubvolMountPath("/var/cache")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("267")
                  .withParentId("257")
                  .withSubvolName("@/var/crash")
                  .withSubvolMountPath("/var/crash")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("268")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/libvirt/images")
                  .withSubvolMountPath("/var/lib/libvirt/images")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("269")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/machines")
                  .withSubvolMountPath("/var/lib/machines")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("270")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/mailman")
                  .withSubvolMountPath("/var/lib/mailman")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("271")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/mariadb")
                  .withSubvolMountPath("/var/lib/mariadb")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("272")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/mysql")
                  .withSubvolMountPath("/var/lib/mysql")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("273")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/named")
                  .withSubvolMountPath("/var/lib/named")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("274")
                  .withParentId("257")
                  .withSubvolName("@/var/lib/pgsql")
                  .withSubvolMountPath("/var/lib/pgsql")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("275")
                  .withParentId("257")
                  .withSubvolName("@/var/log")
                  .withSubvolMountPath("/var/log")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("276")
                  .withParentId("257")
                  .withSubvolName("@/var/opt")
                  .withSubvolMountPath("/var/opt")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("277")
                  .withParentId("257")
                  .withSubvolName("@/var/spool")
                  .withSubvolMountPath("/var/spool")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("false")
                  .withSubvolId("278")
                  .withParentId("257")
                  .withSubvolName("@/var/tmp")
                  .withSubvolMountPath("/var/tmp")
          );
          listBtrfsListSubvolumn.add(
              new BtrfsSubvolumn()
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withIsSnapshot("true")
                  .withSubvolId("282")
                  .withParentId("258")
                  .withSubvolName("@/.snapshots/2/snapshot")
          );
          List<BtrfsFileSystem> listbodyBtrfsList = new ArrayList<>();
          listbodyBtrfsList.add(
              new BtrfsFileSystem()
                  .withName("/dev/vda2")
                  .withLabel("none")
                  .withUuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001")
                  .withDevice("/dev/vda2")
                  .withSize(3538944000L)
                  .withNodesize(16384L)
                  .withSectorsize(4096)
                  .withDataProfile("single")
                  .withSystemProfile("single")
                  .withMetadataProfile("single")
                  .withGlobalReserve1("single")
                  .withGVolUsedSize(3894038528L)
                  .withDefaultSubvolid("259")
                  .withDefaultSubvolName("@/.snapshots/1/snapshot")
                  .withDefaultSubvolMountpath("/")
                  .withSubvolumn(listBtrfsListSubvolumn)
          );
          List<LogicalVolumes> listVolumegroupsLogicalVolumes = new ArrayList<>();
          listVolumegroupsLogicalVolumes.add(
              new LogicalVolumes()
                  .withFileSystem("ext4")
                  .withInodeSize(256)
                  .withDeviceUse("NORMAL")
                  .withMountPoint("/mnt/lv1")
                  .withName("/dev/mapper/vg1-lv1")
                  .withSize(10737418240L)
                  .withUsedSize(23580672L)
                  .withFreeSize(10713837568L)
          );
          List<VolumeGroups> listbodyVolumegroups = new ArrayList<>();
          listbodyVolumegroups.add(
              new VolumeGroups()
                  .withComponents("/dev/vdb1;/dev/vdc")
                  .withLogicalVolumes(listVolumegroupsLogicalVolumes)
                  .withName("vg1")
                  .withSize(42948624384L)
          );
          List<PhysicalVolume> listDisksPhysicalVolumes = new ArrayList<>();
          listDisksPhysicalVolumes.add(
              new PhysicalVolume()
                  .withDeviceUse("VOLUME_GROUP")
                  .withFileSystem("LVM2_member")
                  .withMountPoint("")
                  .withName("/dev/vdb1")
                  .withSize(21473787904L)
                  .withUsedSize(21473787904L)
                  .withInodeSize(0)
          );
          List<PhysicalVolume> listDisksPhysicalVolumes1 = new ArrayList<>();
          listDisksPhysicalVolumes1.add(
              new PhysicalVolume()
                  .withDeviceUse("NORMAL")
                  .withFileSystem("swap")
                  .withMountPoint("")
                  .withName("/dev/vda1")
                  .withSize(2153775104L)
                  .withUsedSize(2153775104L)
                  .withInodeSize(0)
          );
          listDisksPhysicalVolumes1.add(
              new PhysicalVolume()
                  .withDeviceUse("BTRFS")
                  .withFileSystem("btrfs")
                  .withMountPoint("")
                  .withName("/dev/vda2")
                  .withSize(16862150656L)
                  .withUsedSize(16862150656L)
                  .withInodeSize(0)
          );
          listDisksPhysicalVolumes1.add(
              new PhysicalVolume()
                  .withDeviceUse("NORMAL")
                  .withFileSystem("xfs")
                  .withMountPoint("/home")
                  .withName("/dev/vda3")
                  .withSize(23932698624L)
                  .withUsedSize(33988608L)
                  .withInodeSize(0)
          );
          List<ServerDisk> listbodyDisks = new ArrayList<>();
          listbodyDisks.add(
              new ServerDisk()
                  .withName("/dev/vda")
                  .withPartitionStyle("MBR")
                  .withDeviceUse("BOOT")
                  .withSize(42949672960L)
                  .withUsedSize(42948624384L)
                  .withPhysicalVolumes(listDisksPhysicalVolumes1)
          );
          listbodyDisks.add(
              new ServerDisk()
                  .withName("/dev/vdb")
                  .withPartitionStyle("MBR")
                  .withDeviceUse("NORMAL")
                  .withSize(21474836480L)
                  .withUsedSize(21473787904L)
                  .withPhysicalVolumes(listDisksPhysicalVolumes)
          );
          listbodyDisks.add(
              new ServerDisk()
                  .withName("/dev/vdc")
                  .withPartitionStyle("MBR")
                  .withDeviceUse("VOLUME_GROUP")
                  .withSize(21474836480L)
                  .withUsedSize(0L)
                  .withPhysicalVolumes()
          );
          body.withBtrfsList(listbodyBtrfsList);
          body.withVolumegroups(listbodyVolumegroups);
          body.withDisks(listbodyDisks);
          request.withBody(body);
          try {
              UpdateDiskInfoResponse response = client.updateDiskInfo(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  更新服务器的磁盘信息，此接口会把服务器原有磁盘信息清空，然后更新成新磁盘信息，新的磁盘名称是/dev/vda，磁盘类型是BOOT，磁盘大小是42949672960字节。
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import GlobalCredentials
  from huaweicloudsdksms.v3.region.sms_region import SmsRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdksms.v3 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      credentials = GlobalCredentials(ak, sk)
      client = SmsClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(SmsRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = UpdateDiskInfoRequest()
          request.source_id = "{source_id}"
          listSubvolumnBtrfsList = [
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="257",
                  parent_id="5",
                  subvol_name="@"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="258",
                  parent_id="257",
                  subvol_name="@/.snapshots",
                  subvol_mount_path="/.snapshots"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="true",
                  subvol_id="259",
                  parent_id="258",
                  subvol_name="@/.snapshots/1/snapshot",
                  subvol_mount_path="/"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="260",
                  parent_id="257",
                  subvol_name="@/boot/grub2/i386-pc",
                  subvol_mount_path="/boot/grub2/i386-pc"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="261",
                  parent_id="257",
                  subvol_name="@/boot/grub2/x86_64-efi",
                  subvol_mount_path="/boot/grub2/x86_64-efi"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="262",
                  parent_id="257",
                  subvol_name="@/opt",
                  subvol_mount_path="/opt"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="263",
                  parent_id="257",
                  subvol_name="@/srv",
                  subvol_mount_path="/srv"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="264",
                  parent_id="257",
                  subvol_name="@/tmp",
                  subvol_mount_path="/tmp"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="265",
                  parent_id="257",
                  subvol_name="@/usr/local",
                  subvol_mount_path="/usr/local"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="266",
                  parent_id="257",
                  subvol_name="@/var/cache",
                  subvol_mount_path="/var/cache"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="267",
                  parent_id="257",
                  subvol_name="@/var/crash",
                  subvol_mount_path="/var/crash"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="268",
                  parent_id="257",
                  subvol_name="@/var/lib/libvirt/images",
                  subvol_mount_path="/var/lib/libvirt/images"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="269",
                  parent_id="257",
                  subvol_name="@/var/lib/machines",
                  subvol_mount_path="/var/lib/machines"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="270",
                  parent_id="257",
                  subvol_name="@/var/lib/mailman",
                  subvol_mount_path="/var/lib/mailman"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="271",
                  parent_id="257",
                  subvol_name="@/var/lib/mariadb",
                  subvol_mount_path="/var/lib/mariadb"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="272",
                  parent_id="257",
                  subvol_name="@/var/lib/mysql",
                  subvol_mount_path="/var/lib/mysql"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="273",
                  parent_id="257",
                  subvol_name="@/var/lib/named",
                  subvol_mount_path="/var/lib/named"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="274",
                  parent_id="257",
                  subvol_name="@/var/lib/pgsql",
                  subvol_mount_path="/var/lib/pgsql"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="275",
                  parent_id="257",
                  subvol_name="@/var/log",
                  subvol_mount_path="/var/log"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="276",
                  parent_id="257",
                  subvol_name="@/var/opt",
                  subvol_mount_path="/var/opt"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="277",
                  parent_id="257",
                  subvol_name="@/var/spool",
                  subvol_mount_path="/var/spool"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="false",
                  subvol_id="278",
                  parent_id="257",
                  subvol_name="@/var/tmp",
                  subvol_mount_path="/var/tmp"
              ),
              BtrfsSubvolumn(
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  is_snapshot="true",
                  subvol_id="282",
                  parent_id="258",
                  subvol_name="@/.snapshots/2/snapshot"
              )
          ]
          listBtrfsListbody = [
              BtrfsFileSystem(
                  name="/dev/vda2",
                  label="none",
                  uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
                  device="/dev/vda2",
                  size=3538944000,
                  nodesize=16384,
                  sectorsize=4096,
                  data_profile="single",
                  system_profile="single",
                  metadata_profile="single",
                  global_reserve1="single",
                  g_vol_used_size=3894038528,
                  default_subvolid="259",
                  default_subvol_name="@/.snapshots/1/snapshot",
                  default_subvol_mountpath="/",
                  subvolumn=listSubvolumnBtrfsList
              )
          ]
          listLogicalVolumesVolumegroups = [
              LogicalVolumes(
                  file_system="ext4",
                  inode_size=256,
                  device_use="NORMAL",
                  mount_point="/mnt/lv1",
                  name="/dev/mapper/vg1-lv1",
                  size=10737418240,
                  used_size=23580672,
                  free_size=10713837568
              )
          ]
          listVolumegroupsbody = [
              VolumeGroups(
                  components="/dev/vdb1;/dev/vdc",
                  logical_volumes=listLogicalVolumesVolumegroups,
                  name="vg1",
                  size=42948624384
              )
          ]
          listPhysicalVolumesDisks = [
              PhysicalVolume(
                  device_use="VOLUME_GROUP",
                  file_system="LVM2_member",
                  mount_point="",
                  name="/dev/vdb1",
                  size=21473787904,
                  used_size=21473787904,
                  inode_size=0
              )
          ]
          listPhysicalVolumesDisks1 = [
              PhysicalVolume(
                  device_use="NORMAL",
                  file_system="swap",
                  mount_point="",
                  name="/dev/vda1",
                  size=2153775104,
                  used_size=2153775104,
                  inode_size=0
              ),
              PhysicalVolume(
                  device_use="BTRFS",
                  file_system="btrfs",
                  mount_point="",
                  name="/dev/vda2",
                  size=16862150656,
                  used_size=16862150656,
                  inode_size=0
              ),
              PhysicalVolume(
                  device_use="NORMAL",
                  file_system="xfs",
                  mount_point="/home",
                  name="/dev/vda3",
                  size=23932698624,
                  used_size=33988608,
                  inode_size=0
              )
          ]
          listDisksbody = [
              ServerDisk(
                  name="/dev/vda",
                  partition_style="MBR",
                  device_use="BOOT",
                  size=42949672960,
                  used_size=42948624384,
                  physical_volumes=listPhysicalVolumesDisks1
              ),
              ServerDisk(
                  name="/dev/vdb",
                  partition_style="MBR",
                  device_use="NORMAL",
                  size=21474836480,
                  used_size=21473787904,
                  physical_volumes=listPhysicalVolumesDisks
              ),
              ServerDisk(
                  name="/dev/vdc",
                  partition_style="MBR",
                  device_use="VOLUME_GROUP",
                  size=21474836480,
                  used_size=0,
              )
          ]
          request.body = PutDiskInfoReq(
              btrfs_list=listBtrfsListbody,
              volumegroups=listVolumegroupsbody,
              disks=listDisksbody
          )
          response = client.update_disk_info(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  更新服务器的磁盘信息，此接口会把服务器原有磁盘信息清空，然后更新成新磁盘信息，新的磁盘名称是/dev/vda，磁盘类型是BOOT，磁盘大小是42949672960字节。
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global"
      sms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/region"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      auth, err := global.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := sms.SmsClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := sms.NewSmsClient(hcClient)
      request := &model.UpdateDiskInfoRequest{}
  request.SourceId = "{source_id}"
  uuidSubvolumn:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn:= "false"
  subvolIdSubvolumn:= "257"
  parentIdSubvolumn:= "5"
  subvolNameSubvolumn:= "@"
  uuidSubvolumn1:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn1:= "false"
  subvolIdSubvolumn1:= "258"
  parentIdSubvolumn1:= "257"
  subvolNameSubvolumn1:= "@/.snapshots"
  subvolMountPathSubvolumn:= "/.snapshots"
  uuidSubvolumn2:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn2:= "true"
  subvolIdSubvolumn2:= "259"
  parentIdSubvolumn2:= "258"
  subvolNameSubvolumn2:= "@/.snapshots/1/snapshot"
  subvolMountPathSubvolumn1:= "/"
  uuidSubvolumn3:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn3:= "false"
  subvolIdSubvolumn3:= "260"
  parentIdSubvolumn3:= "257"
  subvolNameSubvolumn3:= "@/boot/grub2/i386-pc"
  subvolMountPathSubvolumn2:= "/boot/grub2/i386-pc"
  uuidSubvolumn4:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn4:= "false"
  subvolIdSubvolumn4:= "261"
  parentIdSubvolumn4:= "257"
  subvolNameSubvolumn4:= "@/boot/grub2/x86_64-efi"
  subvolMountPathSubvolumn3:= "/boot/grub2/x86_64-efi"
  uuidSubvolumn5:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn5:= "false"
  subvolIdSubvolumn5:= "262"
  parentIdSubvolumn5:= "257"
  subvolNameSubvolumn5:= "@/opt"
  subvolMountPathSubvolumn4:= "/opt"
  uuidSubvolumn6:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn6:= "false"
  subvolIdSubvolumn6:= "263"
  parentIdSubvolumn6:= "257"
  subvolNameSubvolumn6:= "@/srv"
  subvolMountPathSubvolumn5:= "/srv"
  uuidSubvolumn7:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn7:= "false"
  subvolIdSubvolumn7:= "264"
  parentIdSubvolumn7:= "257"
  subvolNameSubvolumn7:= "@/tmp"
  subvolMountPathSubvolumn6:= "/tmp"
  uuidSubvolumn8:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn8:= "false"
  subvolIdSubvolumn8:= "265"
  parentIdSubvolumn8:= "257"
  subvolNameSubvolumn8:= "@/usr/local"
  subvolMountPathSubvolumn7:= "/usr/local"
  uuidSubvolumn9:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn9:= "false"
  subvolIdSubvolumn9:= "266"
  parentIdSubvolumn9:= "257"
  subvolNameSubvolumn9:= "@/var/cache"
  subvolMountPathSubvolumn8:= "/var/cache"
  uuidSubvolumn10:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn10:= "false"
  subvolIdSubvolumn10:= "267"
  parentIdSubvolumn10:= "257"
  subvolNameSubvolumn10:= "@/var/crash"
  subvolMountPathSubvolumn9:= "/var/crash"
  uuidSubvolumn11:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn11:= "false"
  subvolIdSubvolumn11:= "268"
  parentIdSubvolumn11:= "257"
  subvolNameSubvolumn11:= "@/var/lib/libvirt/images"
  subvolMountPathSubvolumn10:= "/var/lib/libvirt/images"
  uuidSubvolumn12:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn12:= "false"
  subvolIdSubvolumn12:= "269"
  parentIdSubvolumn12:= "257"
  subvolNameSubvolumn12:= "@/var/lib/machines"
  subvolMountPathSubvolumn11:= "/var/lib/machines"
  uuidSubvolumn13:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn13:= "false"
  subvolIdSubvolumn13:= "270"
  parentIdSubvolumn13:= "257"
  subvolNameSubvolumn13:= "@/var/lib/mailman"
  subvolMountPathSubvolumn12:= "/var/lib/mailman"
  uuidSubvolumn14:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn14:= "false"
  subvolIdSubvolumn14:= "271"
  parentIdSubvolumn14:= "257"
  subvolNameSubvolumn14:= "@/var/lib/mariadb"
  subvolMountPathSubvolumn13:= "/var/lib/mariadb"
  uuidSubvolumn15:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn15:= "false"
  subvolIdSubvolumn15:= "272"
  parentIdSubvolumn15:= "257"
  subvolNameSubvolumn15:= "@/var/lib/mysql"
  subvolMountPathSubvolumn14:= "/var/lib/mysql"
  uuidSubvolumn16:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn16:= "false"
  subvolIdSubvolumn16:= "273"
  parentIdSubvolumn16:= "257"
  subvolNameSubvolumn16:= "@/var/lib/named"
  subvolMountPathSubvolumn15:= "/var/lib/named"
  uuidSubvolumn17:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn17:= "false"
  subvolIdSubvolumn17:= "274"
  parentIdSubvolumn17:= "257"
  subvolNameSubvolumn17:= "@/var/lib/pgsql"
  subvolMountPathSubvolumn16:= "/var/lib/pgsql"
  uuidSubvolumn18:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn18:= "false"
  subvolIdSubvolumn18:= "275"
  parentIdSubvolumn18:= "257"
  subvolNameSubvolumn18:= "@/var/log"
  subvolMountPathSubvolumn17:= "/var/log"
  uuidSubvolumn19:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn19:= "false"
  subvolIdSubvolumn19:= "276"
  parentIdSubvolumn19:= "257"
  subvolNameSubvolumn19:= "@/var/opt"
  subvolMountPathSubvolumn18:= "/var/opt"
  uuidSubvolumn20:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn20:= "false"
  subvolIdSubvolumn20:= "277"
  parentIdSubvolumn20:= "257"
  subvolNameSubvolumn20:= "@/var/spool"
  subvolMountPathSubvolumn19:= "/var/spool"
  uuidSubvolumn21:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn21:= "false"
  subvolIdSubvolumn21:= "278"
  parentIdSubvolumn21:= "257"
  subvolNameSubvolumn21:= "@/var/tmp"
  subvolMountPathSubvolumn20:= "/var/tmp"
  uuidSubvolumn22:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  isSnapshotSubvolumn22:= "true"
  subvolIdSubvolumn22:= "282"
  parentIdSubvolumn22:= "258"
  subvolNameSubvolumn22:= "@/.snapshots/2/snapshot"
  var listSubvolumnBtrfsList = []model.BtrfsSubvolumn{
          {
              Uuid: &uuidSubvolumn,
              IsSnapshot: &isSnapshotSubvolumn,
              SubvolId: &subvolIdSubvolumn,
              ParentId: &parentIdSubvolumn,
              SubvolName: &subvolNameSubvolumn,
          },
          {
              Uuid: &uuidSubvolumn1,
              IsSnapshot: &isSnapshotSubvolumn1,
              SubvolId: &subvolIdSubvolumn1,
              ParentId: &parentIdSubvolumn1,
              SubvolName: &subvolNameSubvolumn1,
              SubvolMountPath: &subvolMountPathSubvolumn,
          },
          {
              Uuid: &uuidSubvolumn2,
              IsSnapshot: &isSnapshotSubvolumn2,
              SubvolId: &subvolIdSubvolumn2,
              ParentId: &parentIdSubvolumn2,
              SubvolName: &subvolNameSubvolumn2,
              SubvolMountPath: &subvolMountPathSubvolumn1,
          },
          {
              Uuid: &uuidSubvolumn3,
              IsSnapshot: &isSnapshotSubvolumn3,
              SubvolId: &subvolIdSubvolumn3,
              ParentId: &parentIdSubvolumn3,
              SubvolName: &subvolNameSubvolumn3,
              SubvolMountPath: &subvolMountPathSubvolumn2,
          },
          {
              Uuid: &uuidSubvolumn4,
              IsSnapshot: &isSnapshotSubvolumn4,
              SubvolId: &subvolIdSubvolumn4,
              ParentId: &parentIdSubvolumn4,
              SubvolName: &subvolNameSubvolumn4,
              SubvolMountPath: &subvolMountPathSubvolumn3,
          },
          {
              Uuid: &uuidSubvolumn5,
              IsSnapshot: &isSnapshotSubvolumn5,
              SubvolId: &subvolIdSubvolumn5,
              ParentId: &parentIdSubvolumn5,
              SubvolName: &subvolNameSubvolumn5,
              SubvolMountPath: &subvolMountPathSubvolumn4,
          },
          {
              Uuid: &uuidSubvolumn6,
              IsSnapshot: &isSnapshotSubvolumn6,
              SubvolId: &subvolIdSubvolumn6,
              ParentId: &parentIdSubvolumn6,
              SubvolName: &subvolNameSubvolumn6,
              SubvolMountPath: &subvolMountPathSubvolumn5,
          },
          {
              Uuid: &uuidSubvolumn7,
              IsSnapshot: &isSnapshotSubvolumn7,
              SubvolId: &subvolIdSubvolumn7,
              ParentId: &parentIdSubvolumn7,
              SubvolName: &subvolNameSubvolumn7,
              SubvolMountPath: &subvolMountPathSubvolumn6,
          },
          {
              Uuid: &uuidSubvolumn8,
              IsSnapshot: &isSnapshotSubvolumn8,
              SubvolId: &subvolIdSubvolumn8,
              ParentId: &parentIdSubvolumn8,
              SubvolName: &subvolNameSubvolumn8,
              SubvolMountPath: &subvolMountPathSubvolumn7,
          },
          {
              Uuid: &uuidSubvolumn9,
              IsSnapshot: &isSnapshotSubvolumn9,
              SubvolId: &subvolIdSubvolumn9,
              ParentId: &parentIdSubvolumn9,
              SubvolName: &subvolNameSubvolumn9,
              SubvolMountPath: &subvolMountPathSubvolumn8,
          },
          {
              Uuid: &uuidSubvolumn10,
              IsSnapshot: &isSnapshotSubvolumn10,
              SubvolId: &subvolIdSubvolumn10,
              ParentId: &parentIdSubvolumn10,
              SubvolName: &subvolNameSubvolumn10,
              SubvolMountPath: &subvolMountPathSubvolumn9,
          },
          {
              Uuid: &uuidSubvolumn11,
              IsSnapshot: &isSnapshotSubvolumn11,
              SubvolId: &subvolIdSubvolumn11,
              ParentId: &parentIdSubvolumn11,
              SubvolName: &subvolNameSubvolumn11,
              SubvolMountPath: &subvolMountPathSubvolumn10,
          },
          {
              Uuid: &uuidSubvolumn12,
              IsSnapshot: &isSnapshotSubvolumn12,
              SubvolId: &subvolIdSubvolumn12,
              ParentId: &parentIdSubvolumn12,
              SubvolName: &subvolNameSubvolumn12,
              SubvolMountPath: &subvolMountPathSubvolumn11,
          },
          {
              Uuid: &uuidSubvolumn13,
              IsSnapshot: &isSnapshotSubvolumn13,
              SubvolId: &subvolIdSubvolumn13,
              ParentId: &parentIdSubvolumn13,
              SubvolName: &subvolNameSubvolumn13,
              SubvolMountPath: &subvolMountPathSubvolumn12,
          },
          {
              Uuid: &uuidSubvolumn14,
              IsSnapshot: &isSnapshotSubvolumn14,
              SubvolId: &subvolIdSubvolumn14,
              ParentId: &parentIdSubvolumn14,
              SubvolName: &subvolNameSubvolumn14,
              SubvolMountPath: &subvolMountPathSubvolumn13,
          },
          {
              Uuid: &uuidSubvolumn15,
              IsSnapshot: &isSnapshotSubvolumn15,
              SubvolId: &subvolIdSubvolumn15,
              ParentId: &parentIdSubvolumn15,
              SubvolName: &subvolNameSubvolumn15,
              SubvolMountPath: &subvolMountPathSubvolumn14,
          },
          {
              Uuid: &uuidSubvolumn16,
              IsSnapshot: &isSnapshotSubvolumn16,
              SubvolId: &subvolIdSubvolumn16,
              ParentId: &parentIdSubvolumn16,
              SubvolName: &subvolNameSubvolumn16,
              SubvolMountPath: &subvolMountPathSubvolumn15,
          },
          {
              Uuid: &uuidSubvolumn17,
              IsSnapshot: &isSnapshotSubvolumn17,
              SubvolId: &subvolIdSubvolumn17,
              ParentId: &parentIdSubvolumn17,
              SubvolName: &subvolNameSubvolumn17,
              SubvolMountPath: &subvolMountPathSubvolumn16,
          },
          {
              Uuid: &uuidSubvolumn18,
              IsSnapshot: &isSnapshotSubvolumn18,
              SubvolId: &subvolIdSubvolumn18,
              ParentId: &parentIdSubvolumn18,
              SubvolName: &subvolNameSubvolumn18,
              SubvolMountPath: &subvolMountPathSubvolumn17,
          },
          {
              Uuid: &uuidSubvolumn19,
              IsSnapshot: &isSnapshotSubvolumn19,
              SubvolId: &subvolIdSubvolumn19,
              ParentId: &parentIdSubvolumn19,
              SubvolName: &subvolNameSubvolumn19,
              SubvolMountPath: &subvolMountPathSubvolumn18,
          },
          {
              Uuid: &uuidSubvolumn20,
              IsSnapshot: &isSnapshotSubvolumn20,
              SubvolId: &subvolIdSubvolumn20,
              ParentId: &parentIdSubvolumn20,
              SubvolName: &subvolNameSubvolumn20,
              SubvolMountPath: &subvolMountPathSubvolumn19,
          },
          {
              Uuid: &uuidSubvolumn21,
              IsSnapshot: &isSnapshotSubvolumn21,
              SubvolId: &subvolIdSubvolumn21,
              ParentId: &parentIdSubvolumn21,
              SubvolName: &subvolNameSubvolumn21,
              SubvolMountPath: &subvolMountPathSubvolumn20,
          },
          {
              Uuid: &uuidSubvolumn22,
              IsSnapshot: &isSnapshotSubvolumn22,
              SubvolId: &subvolIdSubvolumn22,
              ParentId: &parentIdSubvolumn22,
              SubvolName: &subvolNameSubvolumn22,
          },
      }
  nameBtrfsList:= "/dev/vda2"
  labelBtrfsList:= "none"
  uuidBtrfsList:= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
  deviceBtrfsList:= "/dev/vda2"
  sizeBtrfsList:= int64(3538944000)
  nodesizeBtrfsList:= int64(16384)
  sectorsizeBtrfsList:= int32(4096)
  dataProfileBtrfsList:= "single"
  systemProfileBtrfsList:= "single"
  metadataProfileBtrfsList:= "single"
  globalReserve1BtrfsList:= "single"
  gVolUsedSizeBtrfsList:= int64(3894038528)
  defaultSubvolidBtrfsList:= "259"
  defaultSubvolNameBtrfsList:= "@/.snapshots/1/snapshot"
  defaultSubvolMountpathBtrfsList:= "/"
  var listBtrfsListbody = []model.BtrfsFileSystem{
          {
              Name: &nameBtrfsList,
              Label: &labelBtrfsList,
              Uuid: &uuidBtrfsList,
              Device: &deviceBtrfsList,
              Size: &sizeBtrfsList,
              Nodesize: &nodesizeBtrfsList,
              Sectorsize: &sectorsizeBtrfsList,
              DataProfile: &dataProfileBtrfsList,
              SystemProfile: &systemProfileBtrfsList,
              MetadataProfile: &metadataProfileBtrfsList,
              GlobalReserve1: &globalReserve1BtrfsList,
              GVolUsedSize: &gVolUsedSizeBtrfsList,
              DefaultSubvolid: &defaultSubvolidBtrfsList,
              DefaultSubvolName: &defaultSubvolNameBtrfsList,
              DefaultSubvolMountpath: &defaultSubvolMountpathBtrfsList,
              Subvolumn: &listSubvolumnBtrfsList,
          },
      }
  fileSystemLogicalVolumes:= "ext4"
  inodeSizeLogicalVolumes:= int32(256)
  deviceUseLogicalVolumes:= "NORMAL"
  mountPointLogicalVolumes:= "/mnt/lv1"
  nameLogicalVolumes:= "/dev/mapper/vg1-lv1"
  sizeLogicalVolumes:= int64(10737418240)
  usedSizeLogicalVolumes:= int64(23580672)
  freeSizeLogicalVolumes:= int64(10713837568)
  var listLogicalVolumesVolumegroups = []model.LogicalVolumes{
          {
              FileSystem: &fileSystemLogicalVolumes,
              InodeSize: &inodeSizeLogicalVolumes,
              DeviceUse: &deviceUseLogicalVolumes,
              MountPoint: &mountPointLogicalVolumes,
              Name: &nameLogicalVolumes,
              Size: &sizeLogicalVolumes,
              UsedSize: &usedSizeLogicalVolumes,
              FreeSize: &freeSizeLogicalVolumes,
          },
      }
  componentsVolumegroups:= "/dev/vdb1;/dev/vdc"
  nameVolumegroups:= "vg1"
  sizeVolumegroups:= int64(42948624384)
  var listVolumegroupsbody = []model.VolumeGroups{
          {
              Components: &componentsVolumegroups,
              LogicalVolumes: &listLogicalVolumesVolumegroups,
              Name: &nameVolumegroups,
              Size: &sizeVolumegroups,
          },
      }
  deviceUsePhysicalVolumes:= "VOLUME_GROUP"
  fileSystemPhysicalVolumes:= "LVM2_member"
  mountPointPhysicalVolumes:= ""
  namePhysicalVolumes:= "/dev/vdb1"
  sizePhysicalVolumes:= int64(21473787904)
  usedSizePhysicalVolumes:= int64(21473787904)
  inodeSizePhysicalVolumes:= int32(0)
  var listPhysicalVolumesDisks = []model.PhysicalVolume{
          {
              DeviceUse: &deviceUsePhysicalVolumes,
              FileSystem: &fileSystemPhysicalVolumes,
              MountPoint: &mountPointPhysicalVolumes,
              Name: &namePhysicalVolumes,
              Size: &sizePhysicalVolumes,
              UsedSize: &usedSizePhysicalVolumes,
              InodeSize: &inodeSizePhysicalVolumes,
          },
      }
  deviceUsePhysicalVolumes1:= "NORMAL"
  fileSystemPhysicalVolumes1:= "swap"
  mountPointPhysicalVolumes1:= ""
  namePhysicalVolumes1:= "/dev/vda1"
  sizePhysicalVolumes1:= int64(2153775104)
  usedSizePhysicalVolumes1:= int64(2153775104)
  inodeSizePhysicalVolumes1:= int32(0)
  deviceUsePhysicalVolumes2:= "BTRFS"
  fileSystemPhysicalVolumes2:= "btrfs"
  mountPointPhysicalVolumes2:= ""
  namePhysicalVolumes2:= "/dev/vda2"
  sizePhysicalVolumes2:= int64(16862150656)
  usedSizePhysicalVolumes2:= int64(16862150656)
  inodeSizePhysicalVolumes2:= int32(0)
  deviceUsePhysicalVolumes3:= "NORMAL"
  fileSystemPhysicalVolumes3:= "xfs"
  mountPointPhysicalVolumes3:= "/home"
  namePhysicalVolumes3:= "/dev/vda3"
  sizePhysicalVolumes3:= int64(23932698624)
  usedSizePhysicalVolumes3:= int64(33988608)
  inodeSizePhysicalVolumes3:= int32(0)
  var listPhysicalVolumesDisks1 = []model.PhysicalVolume{
          {
              DeviceUse: &deviceUsePhysicalVolumes1,
              FileSystem: &fileSystemPhysicalVolumes1,
              MountPoint: &mountPointPhysicalVolumes1,
              Name: &namePhysicalVolumes1,
              Size: &sizePhysicalVolumes1,
              UsedSize: &usedSizePhysicalVolumes1,
              InodeSize: &inodeSizePhysicalVolumes1,
          },
          {
              DeviceUse: &deviceUsePhysicalVolumes2,
              FileSystem: &fileSystemPhysicalVolumes2,
              MountPoint: &mountPointPhysicalVolumes2,
              Name: &namePhysicalVolumes2,
              Size: &sizePhysicalVolumes2,
              UsedSize: &usedSizePhysicalVolumes2,
              InodeSize: &inodeSizePhysicalVolumes2,
          },
          {
              DeviceUse: &deviceUsePhysicalVolumes3,
              FileSystem: &fileSystemPhysicalVolumes3,
              MountPoint: &mountPointPhysicalVolumes3,
              Name: &namePhysicalVolumes3,
              Size: &sizePhysicalVolumes3,
              UsedSize: &usedSizePhysicalVolumes3,
              InodeSize: &inodeSizePhysicalVolumes3,
          },
      }
  nameDisks:= "/dev/vda"
  partitionStyleDisks:= "MBR"
  deviceUseDisks:= "BOOT"
  sizeDisks:= int64(42949672960)
  usedSizeDisks:= int64(42948624384)
  nameDisks1:= "/dev/vdb"
  partitionStyleDisks1:= "MBR"
  deviceUseDisks1:= "NORMAL"
  sizeDisks1:= int64(21474836480)
  usedSizeDisks1:= int64(21473787904)
  nameDisks2:= "/dev/vdc"
  partitionStyleDisks2:= "MBR"
  deviceUseDisks2:= "VOLUME_GROUP"
  sizeDisks2:= int64(21474836480)
  usedSizeDisks2:= int64(0)
  var listDisksbody = []model.ServerDisk{
          {
              Name: &nameDisks,
              PartitionStyle: &partitionStyleDisks,
              DeviceUse: &deviceUseDisks,
              Size: &sizeDisks,
              UsedSize: &usedSizeDisks,
              PhysicalVolumes: &listPhysicalVolumesDisks1,
          },
          {
              Name: &nameDisks1,
              PartitionStyle: &partitionStyleDisks1,
              DeviceUse: &deviceUseDisks1,
              Size: &sizeDisks1,
              UsedSize: &usedSizeDisks1,
              PhysicalVolumes: &listPhysicalVolumesDisks,
          },
          {
              Name: &nameDisks2,
              PartitionStyle: &partitionStyleDisks2,
              DeviceUse: &deviceUseDisks2,
              Size: &sizeDisks2,
              UsedSize: &usedSizeDisks2,
          },
      }
  request.Body = &model.PutDiskInfoReq{
  BtrfsList: &listBtrfsListbody,
  Volumegroups: &listVolumegroupsbody,
  Disks: &listDisksbody,
  }
  response, err := client.UpdateDiskInfo(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SMS/sdk?api=UpdateDiskInfo)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 200 | 更新磁盘信息成功 |
| 403 | 鉴权失败     |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-sms/ErrorCode.html)。
