From d888e2cbd7a2a484a4d7c83abbed6f6be2bfafc3 Mon Sep 17 00:00:00 2001 From: ucloud-bot Date: Thu, 30 Jul 2026 05:14:29 +0000 Subject: [PATCH] sdk: rolling update for 0.11.109 --- ucloud/services/uhost/client.py | 426 +++++++++++++++++++----- ucloud/services/uhost/schemas/apis.py | 270 +++++++++++---- ucloud/services/uhost/schemas/models.py | 245 ++++++++++---- ucloud/version.py | 2 +- 4 files changed, 741 insertions(+), 202 deletions(-) diff --git a/ucloud/services/uhost/client.py b/ucloud/services/uhost/client.py index 096f0da..62d1ce7 100644 --- a/ucloud/services/uhost/client.py +++ b/ucloud/services/uhost/client.py @@ -45,6 +45,74 @@ def add_uhost_to_isolation_group( resp = self.invoke("AddUHostToIsolationGroup", d, **kwargs) return apis.AddUHostToIsolationGroupResponseSchema().loads(resp) + def check_uhost_resource_capacity( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CheckUHostResourceCapacity - 主机创建资源余量检查 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ImageId** (str) - (Required) 镜像ID。 请通过 `DescribeImage `_ 获取 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **CPU** (int) - 虚拟CPU核数。可选参数:1-64(具体机型与CPU的对应关系参照控制台)。默认值: 4。 + - **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时预付费 \\ > Postpay,按小时后付费(支持关机不收费,目前仅部分可用区支持,请联系您的客户经理) \\ > Spot计费为抢占式实例(内测阶段) \\ 默认为月付 + - **Disks** (list) - 见 **CheckUHostResourceCapacityParamDisks** 模型定义 + - **Features** (dict) - 见 **CheckUHostResourceCapacityParamFeatures** 模型定义 + - **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关) + - **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100", "T4","T4A", "T4S","2080Ti","2080Ti-4C","1080Ti", "T4/4", "MI100", "V100S",2080","2080TiS","2080TiPro","3090","A100", "4090", "4090Pro", "4090_48G", "5090"],MachineType为G时必填 + - **HotplugFeature** (bool) - 热升级特性。True为开启,False为未开启,默认False。 + - **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。 + - **MachineType** (str) - 云主机机型(V2.0),在本字段和字段UHostType中,仅需要其中1个字段即可。枚举值["N", "C", "G", "O", "OS", "OM", "OPRO", "OMAX", "O.BM", "O.EPC"]。参考 `云主机机型说明 `_ 。 + - **MaxCount** (int) - 本次最大创建主机数量,取值范围是[1,100],默认值为1。 + - **Memory** (int) - 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围参考控制台)。默认值:8192 + - **MinCount** (int) - 本次最小创建主机数量,取值范围是[1,100],默认值为1。 + - **MinimalCpuPlatform** (str) - 最低cpu平台,枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake", "Intel/CascadelakeR", "Intel/IceLake", "Amd/Epyc2", "Amd/Auto","Ampere/Auto","Ampere/Altra"],默认值是"Intel/Auto"。 + - **NetCapability** (str) - 网络增强特性。枚举值:Normal,不开启; Super,开启网络增强1.0; Ultra,开启网络增强2.0(详情参考官网文档) + - **SecurityMode** (str) - 主机安全模式。Firewall:防火墙;SecGroup:安全组;默认值:Firewall。 + - **UHostFamily** (str) - 规格族。由机型代号和 CPU 平台组成,用于指定云主机的硬件类型与处理器平台。当 MachineType 为 "O"(快杰型)时,支持以下取值:o1i:快杰型 O1 代,Intel 平台o1a:快杰型 O1 代,AMD 平台o1r:快杰型 O1 代,ARM 平台o2i:快杰型 O2 代,Intel 平台默认值:o1i 或 o1a(系统将根据资源情况自动选择)当 MachineType 为 "OM"(快杰共享型)时,支持以下取值:om1i:快杰内存增强型 OM1 代,Intel 平台om2i:快杰内存增强型 OM2 代,Intel 平台⚠️ 注意:规格族必须与 MachineType 匹配,否则请求将被拒绝。 + + **Response** + + - **RdmaClusterIds** (list) - 随机的资源对应的RdmaClusterId数组,若资源不足则为空,只有快杰系列机型,以及A800才可能有此字段 + - **ResourceEnough** (bool) - 资源是否充足 + + **Request Model** + + **CheckUHostResourceCapacityParamDisksCustomBackup** + - **Day** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以5天级为基础进行倍数扩增,如5、10、15、20、25、30。 + - **Hour** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以24小时级为基础进行倍数扩增,如24、48、72、96。 + - **Journal** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以12小时秒级为基础进行倍数扩增,如12、24、36、48。 + + + **CheckUHostResourceCapacityParamDisks** + - **BackupMode** (str) - 指定快照备份策略。当Disks.N.BackupType为"SNAPSHOT"时此参数生效。枚举值:"Lite":轻量版,"Base":基础版,"Ultimate":旗舰版,"Custom":自定义备份链;默认值:"Base" + - **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ > SNAPSHOT,快照 \\当前磁盘支持的备份模式参考 `磁盘类型 `_ ,默认值:NONE + - **CouponId** (str) - 云盘代金券id。不适用于系统盘/本地盘。请通过DescribeCoupon接口查询,或登录用户中心查看 + - **CustomBackup** (dict) - 见 **CheckUHostResourceCapacityParamDisksCustomBackup** 模型定义 + - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 + - **Size** (int) - 磁盘大小,单位GB。请参考 `磁盘类型 `_ 。 + - **SnapshotId** (str) - 从快照创建盘时所用快照id,目前仅支持数据盘 + - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 + + + **CheckUHostResourceCapacityParamFeatures** + - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启,仅与 NetCapability Normal 兼容。 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CheckUHostResourceCapacityRequestSchema().dumps(d) + + resp = self.invoke("CheckUHostResourceCapacity", d, **kwargs) + return apis.CheckUHostResourceCapacityResponseSchema().loads(resp) + def copy_custom_image( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -176,6 +244,7 @@ def create_uhost_instance( - **CPU** (int) - 虚拟CPU核数。可选参数:1-64(具体机型与CPU的对应关系参照控制台)。默认值: 4。 - **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时预付费 \\ > Postpay,按小时后付费(支持关机不收费,目前仅部分可用区支持,请联系您的客户经理) \\ > Spot计费为抢占式实例(内测阶段) \\ 默认为月付 - **CouponId** (str) - 主机代金券ID。请通过DescribeCoupon接口查询,或登录用户中心查看 + - **DeletionProtection** (bool) - 删除保护,设置删除保护参数,true表示不允许控制台删除 - **Disks** (list) - 见 **CreateUHostInstanceParamDisks** 模型定义 - **Features** (dict) - 见 **CreateUHostInstanceParamFeatures** 模型定义 - **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关) @@ -203,7 +272,7 @@ def create_uhost_instance( - **Tag** (str) - 业务组。默认:Default(Default即为未分组)。请遵照 `字段规范 `_ 设定业务组。 - **UDHostId** (str) - 【私有专区属性】专区宿主机id - **UDSetId** (str) - 【私有专区属性】专区id - - **UHostFamily** (str) - 规格族。 由机型代号和 CPU 平台组成,用于指定云主机的硬件类型与处理器平台。 当 MachineType 为 "O"(快杰型)时,支持以下取值:- o1i:快杰型 O1 代,Intel 平台 - o1a:快杰型 O1 代,AMD 平台- o1r:快杰型 O1 代,ARM 平台 - o2i:快杰型 O2 代,Intel 平台 默认值:o1i 或 o1a(系统将根据资源情况自动选择) 当 MachineType 为 "OM"(快杰共享型)时,支持以下取值: - om1i:快杰内存增强型 OM1 代,Intel 平台 - om2i:快杰内存增强型 OM2 代,Intel 平台注意:规格族必须与 MachineType 匹配,否则请求将被拒绝。 + - **UHostFamily** (str) - 规格族。 由机型代号和 CPU 平台组成,用于指定云主机的硬件类型与处理器平台。 当 MachineType 为 "O"(快杰型)时,支持以下取值:- o1i:快杰型 O1 代,Intel 平台 - o1a:快杰型 O1 代,AMD 平台- o1r:快杰型 O1 代,ARM 平台 - o2i:快杰型 O2 代,Intel 平台 默认值:o1i 或 o1a当 MachineType 为 "OM"(快杰共享型)时,支持以下取值: - om1i:快杰内存增强型 OM1 代,Intel 平台 - om2i:快杰内存增强型 OM2 代,Intel 平台注意:规格族必须与 MachineType 匹配,否则请求将被拒绝。 - **UHostType** (str) - 【建议后续不再使用】云主机机型(V1.0),在本字段和字段MachineType中,仅需要其中1个字段即可。参考 `云主机机型说明 `_ 。 - **UserData** (str) - 用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超过 16K;2、使用base64编码 - **VPCId** (str) - VPC ID。默认为当前地域的默认VPC。 @@ -215,34 +284,6 @@ def create_uhost_instance( **Request Model** - **CreateUHostInstanceParamSecGroupId** - - **Id** (str) - 安全组 ID。至多可以同时绑定5个安全组。 - - **Priority** (int) - 安全组优先级。取值范围[1, 5] - - - **CreateUHostInstanceParamDisksCustomBackup** - - **Day** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以5天级为基础进行倍数扩增,如5、10、15、20、25、30。 - - **Hour** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以24小时级为基础进行倍数扩增,如24、48、72、96。 - - **Journal** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以12小时秒级为基础进行倍数扩增,如12、24、36、48。 - - - **CreateUHostInstanceParamDisks** - - **BackupMode** (str) - 指定快照备份策略。当Disks.N.BackupType为"SNAPSHOT"时此参数生效。枚举值:"Base":标准版,"Ultimate":旗舰版,"Custom":自定义备份链;默认值:"Base"。 - - **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > SNAPSHOT,快照 \\当前磁盘支持的备份模式参考 `磁盘类型 `_ ,默认值:NONE - - **CouponId** (str) - 云盘代金券id。不适用于系统盘/本地盘。请通过DescribeCoupon接口查询,或登录用户中心查看 - - **CustomBackup** (dict) - 见 **CreateUHostInstanceParamDisksCustomBackup** 模型定义 - - **Encrypted** (bool) - 【功能仅部分可用区开放,详询技术支持】磁盘是否加密。加密:true, 不加密: false加密必须传入对应的的KmsKeyId,默认值false - - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 - - **KmsKeyId** (str) - 【功能仅部分可用区开放,详询技术支持】kms key id。选择加密盘时必填。 - - **Size** (int) - 磁盘大小,单位GB。请参考 `磁盘类型 `_ 。 - - **SnapshotId** (str) - 从快照创建盘时所用快照id,目前仅支持数据盘 - - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 - - - **CreateUHostInstanceParamNetworkInterfaceIPv6** - - **Address** (str) - 第N个网卡对应的IPv6地址,默认不分配IPv6,“Auto”自动分配,不为空的其他字符串为实际要分配的IPv6地址。当前仅支持分配一个IPv6地址 - - **CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH** - **Area** (str) - - **AreaCode** (str) - @@ -257,22 +298,50 @@ def create_uhost_instance( - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 + **CreateUHostInstanceParamNetworkInterfaceIPv6** + - **Address** (str) - 第N个网卡对应的IPv6地址,默认不分配IPv6,“Auto”自动分配,不为空的其他字符串为实际要分配的IPv6地址。当前仅支持分配一个IPv6地址 + + **CreateUHostInstanceParamNetworkInterface** - **CreateCernetIp** (bool) - 申请并绑定一个教育网EIP。True为申请并绑定,False为不会申请绑定,默认False。当前只支持具有HPC特性的机型。 - **EIP** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceEIP** 模型定义 - **IPv6** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceIPv6** 模型定义 + **CreateUHostInstanceParamFeatures** + - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启。 + + + **CreateUHostInstanceParamSecGroupId** + - **Id** (str) - 安全组 ID。至多可以同时绑定5个安全组。 + - **Priority** (int) - 安全组优先级。取值范围[1, 5] + + + **CreateUHostInstanceParamVolumes** + + **CreateUHostInstanceParamLabels** - **Key** (str) - 用户资源标签的键值 - **Value** (str) - 用户资源标签的值 - **CreateUHostInstanceParamVolumes** + **CreateUHostInstanceParamDisksCustomBackup** + - **Day** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以5天级为基础进行倍数扩增,如5、10、15、20、25、30。 + - **Hour** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以24小时级为基础进行倍数扩增,如24、48、72、96。 + - **Journal** (str) - Disks.N.BackupMode为"Custom"时,进行设置, 以12小时秒级为基础进行倍数扩增,如12、24、36、48。 - **CreateUHostInstanceParamFeatures** - - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启。 + **CreateUHostInstanceParamDisks** + - **BackupMode** (str) - 指定快照备份策略。当Disks.N.BackupType为"SNAPSHOT"时此参数生效。枚举值:"Base":标准版,"Ultimate":旗舰版,"Custom":自定义备份链;默认值:"Base"。 + - **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > SNAPSHOT,快照 \\当前磁盘支持的备份模式参考 `磁盘类型 `_ ,默认值:NONE + - **CouponId** (str) - 云盘代金券id。不适用于系统盘/本地盘。请通过DescribeCoupon接口查询,或登录用户中心查看 + - **CustomBackup** (dict) - 见 **CreateUHostInstanceParamDisksCustomBackup** 模型定义 + - **Encrypted** (bool) - 【功能仅部分可用区开放,详询技术支持】磁盘是否加密。加密:true, 不加密: false加密必须传入对应的的KmsKeyId,默认值false + - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 + - **KmsKeyId** (str) - 【功能仅部分可用区开放,详询技术支持】kms key id。选择加密盘时必填。 + - **Size** (int) - 磁盘大小,单位GB。请参考 `磁盘类型 `_ 。 + - **SnapshotId** (str) - 从快照创建盘时所用快照id,目前仅支持数据盘 + - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 """ @@ -411,11 +480,6 @@ def describe_available_instance_types( - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 - **MachineSizes** - - **Collection** (list) - 见 **Collection** 模型定义 - - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 - - **CpuPlatformWithModels** - **CpuFrequency** (str) - CPU频率 - **CpuModels** (list) - CPU Model列表 @@ -428,16 +492,14 @@ def describe_available_instance_types( - **Name** (str) - 规格族 - **CpuPlatforms** - - **Amd** (list) - 返回AMD的CPU平台信息,例如:AMD: ['Amd/Epyc2'] - - **Ampere** (list) - 返回Arm的CPU平台信息,例如:Ampere: ['Ampere/Altra'] - - **Intel** (list) - 返回Intel的CPU平台信息,例如:Intel: ['Intel/CascadeLake','Intel/CascadelakeR','Intel/IceLake'] + **Performance** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (float) - 值,单位是TFlops - **FeatureModes** - - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 - - **Name** (str) - 模式|特性名称 - - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB **BootDiskInfo** @@ -454,9 +516,16 @@ def describe_available_instance_types( - **Name** (str) - 数据盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 - **Performance** - - **Rate** (int) - 交互展示参数,可忽略 - - **Value** (float) - 值,单位是TFlops + **Disks** + - **BootDisk** (list) - 见 **BootDiskInfo** 模型定义 + - **DataDisk** (list) - 见 **DataDiskInfo** 模型定义 + - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + + + **FeatureModes** + - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 + - **Name** (str) - 模式|特性名称 + - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 **Features** @@ -464,15 +533,15 @@ def describe_available_instance_types( - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug - **GraphicsMemory** - - **Rate** (int) - 交互展示参数,可忽略 - - **Value** (int) - 值,单位是GB + **CpuPlatforms** + - **Amd** (list) - 返回AMD的CPU平台信息,例如:AMD: ['Amd/Epyc2'] + - **Ampere** (list) - 返回Arm的CPU平台信息,例如:Ampere: ['Ampere/Altra'] + - **Intel** (list) - 返回Intel的CPU平台信息,例如:Intel: ['Intel/CascadeLake','Intel/CascadelakeR','Intel/IceLake'] - **Disks** - - **BootDisk** (list) - 见 **BootDiskInfo** 模型定义 - - **DataDisk** (list) - 见 **DataDiskInfo** 模型定义 - - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + **MachineSizes** + - **Collection** (list) - 见 **Collection** 模型定义 + - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 **AvailableInstanceTypes** @@ -504,6 +573,144 @@ def describe_available_instance_types( resp = self.invoke("DescribeAvailableInstanceTypes", d, **kwargs) return apis.DescribeAvailableInstanceTypesResponseSchema().loads(resp) + def describe_host_machine_type_families( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeHostMachineTypeFamilies - 获取实例规格族列表(所有机型的信息) + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。如果不填写,则使用默认项目,子账户必须填写。请参阅 `GetProjectList界面 `_ . + + **Response** + + - **MachineTypes** (list) - 见 **MachineTypes** 模型定义 + + **Response Model** + + **CpuPlatformWithModels** + - **CpuFrequency** (str) - CPU频率 + - **CpuModels** (list) - CPU Model列表 + - **Name** (str) - CPU平台 + + + **UHostFamily** + - **CpuFrequency** (str) - CPU频率信息 + - **CpuPlatforms** (list) - 见 **CpuPlatformWithModels** 模型定义 + - **Name** (str) - 规格族 + + + **NameOperationStatus** + - **Name** (str) - 名称 + - **OperationStatus** (str) - 标记 + + + **DiskFeature** + - **Modes** (list) - 见 **NameOperationStatus** 模型定义 + - **Name** (str) - 特性名称 + + + **FamiliesBootDiskInfo** + - **Features** (list) - 见 **DiskFeature** 模型定义 + - **InstantResize** (bool) - 系统盘是否允许扩容,如果是本地盘,则不允许扩容,InstantResize为false。 + - **MaximalSize** (int) - MaximalSize为磁盘最大值 + - **Name** (str) - 系统盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 + + + **Collection** + - **Cpu** (int) - CPU规格 + - **Memory** (list) - 内存规格 + - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 + + + **FamiliesDataDiskInfo** + - **Features** (list) - 见 **DiskFeature** 模型定义 + - **MaximalSize** (int) - MaximalSize为磁盘最大值 + - **MinimalSize** (int) - 磁盘最小值,如果没有该字段,最小值取基础镜像Size值即可(linux为20G,windows为40G)。 + - **Name** (str) - 数据盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 + + + **FamiliesDisks** + - **BootDisk** (list) - 见 **FamiliesBootDiskInfo** 模型定义 + - **DataDisk** (list) - 见 **FamiliesDataDiskInfo** 模型定义 + - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + - **OperationStatus** (str) - 权限位 + + + **MachineSizes** + - **Collection** (list) - 见 **Collection** 模型定义 + - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 + + + **Frequency** + - **Value** (float) - 值 + + + **FeatureModes** + - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 + - **Name** (str) - 模式|特性名称 + - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 + + + **Features** + - **Modes** (list) - 见 **FeatureModes** 模型定义 + - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug + + + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB + + + **Performance** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (float) - 值,单位是TFlops + + + **FamiliesGpuType** + - **GraphicsMemory** (dict) - 见 **GraphicsMemory** 模型定义 + - **Name** (str) - 机型名称 + - **Performance** (dict) - 见 **Performance** 模型定义 + + + **CpuPlatformStatus** + - **Name** (str) - CPU平台 + - **OperationStatus** (str) - 运营Commpont Code + + + **NameFrequency** + - **Frequency** (dict) - 见 **Frequency** 模型定义 + - **Name** (str) - 机型名称 + + + **MachineTypes** + - **CpuPlatforms** (list) - 见 **CpuPlatformStatus** 模型定义 + - **Description** (str) - 机型中文名称 + - **Disks** (list) - 见 **FamiliesDisks** 模型定义 + - **Features** (list) - 见 **Features** 模型定义 + - **GpuSeries** (str) - GPU系列 + - **GpuType** (dict) - 见 **FamiliesGpuType** 模型定义 + - **MachineSizes** (list) - 见 **MachineSizes** 模型定义 + - **Name** (str) - 机型名称 + - **OperationStatus** (str) - 机型ComponentCode + - **ParentType** (str) - 父类型。如GPU机型的父类型为"G" + - **ProType** (dict) - 见 **NameFrequency** 模型定义 + - **SceneCategories** (list) - 场景分类 + - **UHostFamilies** (list) - 见 **UHostFamily** 模型定义 + - **Virtual** (bool) - 是否为非真实机型 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.DescribeHostMachineTypeFamiliesRequestSchema().dumps(d) + + resp = self.invoke("DescribeHostMachineTypeFamilies", d, **kwargs) + return apis.DescribeHostMachineTypeFamiliesResponseSchema().loads(resp) + def describe_image( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -619,6 +826,63 @@ def describe_isolation_group( resp = self.invoke("DescribeIsolationGroup", d, **kwargs) return apis.DescribeIsolationGroupResponseSchema().loads(resp) + def describe_uhost_available_disk_types( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUHostAvailableDiskTypes - 获取主机可挂载的磁盘信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **UHostIds** (list) - (Required) 实例Id列表。最多100个 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **DiskTypeSet** (list) - 见 **AvailableDiskTypes** 模型定义 + + **Response Model** + + **BootDiskInfo** + - **Features** (list) - 磁盘可支持的服务 + - **InstantResize** (bool) - 系统盘是否允许扩容,如果是本地盘,则不允许扩容,InstantResize为false。 + - **MaximalSize** (int) - MaximalSize为磁盘最大值 + - **Name** (str) - 系统盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 + + + **DataDiskInfo** + - **BackupMode** (list) - 支持的快照备份策略 + - **Features** (list) - 数据盘可支持的服务 + - **MaximalSize** (int) - MaximalSize为磁盘最大值 + - **MinimalSize** (int) - 磁盘最小值,如果没有该字段,最小值取基础镜像Size值即可(linux为20G,windows为40G)。 + - **Name** (str) - 数据盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 + + + **Disks** + - **BootDisk** (list) - 见 **BootDiskInfo** 模型定义 + - **DataDisk** (list) - 见 **DataDiskInfo** 模型定义 + - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + + + **AvailableDiskTypes** + - **AvailableDisks** (list) - 见 **Disks** 模型定义 + - **UHostId** (str) - 实例Id + - **Zone** (str) - 可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUHostAvailableDiskTypesRequestSchema().dumps(d) + + resp = self.invoke("DescribeUHostAvailableDiskTypes", d, **kwargs) + return apis.DescribeUHostAvailableDiskTypesResponseSchema().loads(resp) + def describe_uhost_instance( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -645,11 +909,33 @@ def describe_uhost_instance( **Response Model** + **UHostDiskSet** + - **BackupType** (str) - 备份方案。若开通了数据方舟,则为DATAARK + - **DiskId** (str) - 磁盘ID + - **DiskType** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 + - **Drive** (str) - 磁盘盘符 + - **Encrypted** (str) - "true": 加密盘 "false":非加密盘 + - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 + - **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回) + - **Size** (int) - 磁盘大小,单位: GB + - **Type** (str) - 【建议不再使用】磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk + + **UHostKeyPair** - **KeyPairId** (str) - 密钥对ID - **KeyPairState** (str) - 主机密钥对状态,Normal 正常,Deleted 删除 + **UDSetUDHostAttribute** + - **HostBinding** (bool) - 是否绑定私有专区宿主机 + - **UDHostId** (str) - 私有专区宿主机 + - **UDSetId** (str) - 私有专区 + + + **SpotAttribute** + - **RecycleTime** (int) - 回收时间 + + **UHostIPSet** - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) - **Default** (str) - 内网 Private 类型下,表示是否为默认网卡。true: 是默认网卡;其他值:不是。 @@ -664,28 +950,6 @@ def describe_uhost_instance( - **Weight** (int) - 当前EIP的权重。权重最大的为当前的出口IP。 - **UDSetUDHostAttribute** - - **HostBinding** (bool) - 是否绑定私有专区宿主机 - - **UDHostId** (str) - 私有专区宿主机 - - **UDSetId** (str) - 私有专区 - - - **UHostDiskSet** - - **BackupType** (str) - 备份方案。若开通了数据方舟,则为DATAARK - - **DiskId** (str) - 磁盘ID - - **DiskType** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 - - **Drive** (str) - 磁盘盘符 - - **Encrypted** (str) - "true": 加密盘 "false":非加密盘 - - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 - - **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回) - - **Size** (int) - 磁盘大小,单位: GB - - **Type** (str) - 【建议不再使用】磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk - - - **SpotAttribute** - - **RecycleTime** (int) - 回收时间 - - **UHostInstanceSet** - **AutoRenew** (str) - 是否自动续费,自动续费:“Yes”,不自动续费:“No” - **BasicImageId** (str) - 基础镜像ID(指当前自定义镜像的来源镜像) @@ -934,7 +1198,7 @@ def get_uhost_instance_price( - **Quantity** (int) - 购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。 - **ShowPriceDetails** (bool) - 返回价格详细信息 - **UDSetUHostInstance** (bool) - 专区云主机。如果要在专区宿主机上创建云主机,该参数可以填写为true - - **UHostFamily** (str) - 规格族。 由机型代号和 CPU 平台组成,用于指定云主机的硬件类型与处理器平台。当 MachineType 为 "O"(快杰型)时,支持以下取值: - o1i:快杰型 O1 代,Intel 平台 - o1a:快杰型 O1 代,AMD 平台- o1r:快杰型 O1 代,ARM 平台 - o2i:快杰型 O2 代,Intel 平台 默认值:o1i 或 o1a或o1r(系统将根据资源情况自动选择) 当 MachineType 为 "OM"(快杰共享型)时,支持以下取值: - om1i:快杰内存增强型 OM1 代,Intel 平台 - om2i:快杰内存增强型 OM2 代,Intel 平台注意:规格族必须与 MachineType 匹配,否则请求将被拒绝。 + - **UHostFamily** (str) - 规格族。 由机型代号和 CPU 平台组成,用于指定云主机的硬件类型与处理器平台。当 MachineType 为 "O"(快杰型)时,支持以下取值: - o1i:快杰型 O1 代,Intel 平台 - o1a:快杰型 O1 代,AMD 平台- o1r:快杰型 O1 代,ARM 平台 - o2i:快杰型 O2 代,Intel 平台 默认值:o1i 或 o1a或o1r当 MachineType 为 "OM"(快杰共享型)时,支持以下取值: - om1i:快杰内存增强型 OM1 代,Intel 平台 - om2i:快杰内存增强型 OM2 代,Intel 平台注意:规格族必须与 MachineType 匹配,否则请求将被拒绝。 - **UHostType** (str) - 【待废弃】云主机机型(V1版本概念)。参考 `云主机机型说明 `_ 。 - **Zone** (str) - 可用区。参见 `可用区列表 `_ @@ -944,9 +1208,6 @@ def get_uhost_instance_price( **Request Model** - **GetUHostInstancePriceParamVolumes** - - **GetUHostInstancePriceParamDisks** - **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ > SNAPSHOT,快照\\ 当前磁盘支持的备份模式参考 `磁盘类型 `_ - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 @@ -954,6 +1215,9 @@ def get_uhost_instance_price( - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 + **GetUHostInstancePriceParamVolumes** + + **Response Model** **PriceDetail** diff --git a/ucloud/services/uhost/schemas/apis.py b/ucloud/services/uhost/schemas/apis.py index 3d996d8..6f6a5c8 100644 --- a/ucloud/services/uhost/schemas/apis.py +++ b/ucloud/services/uhost/schemas/apis.py @@ -34,6 +34,94 @@ class AddUHostToIsolationGroupResponseSchema(schema.ResponseSchema): } +""" +API: CheckUHostResourceCapacity + +主机创建资源余量检查 +""" + + +class CheckUHostResourceCapacityParamDisksCustomBackupSchema( + schema.RequestSchema +): + """CheckUHostResourceCapacityParamDisksCustomBackup -""" + + fields = { + "Day": fields.Str(required=False, dump_to="Day"), + "Hour": fields.Str(required=False, dump_to="Hour"), + "Journal": fields.Str(required=False, dump_to="Journal"), + } + + +class CheckUHostResourceCapacityParamDisksSchema(schema.RequestSchema): + """CheckUHostResourceCapacityParamDisks -""" + + fields = { + "BackupMode": fields.Str(required=False, dump_to="BackupMode"), + "BackupType": fields.Str(required=False, dump_to="BackupType"), + "CouponId": fields.Str(required=False, dump_to="CouponId"), + "CustomBackup": CheckUHostResourceCapacityParamDisksCustomBackupSchema( + required=False, dump_to="CustomBackup" + ), + "IsBoot": fields.Str(required=True, dump_to="IsBoot"), + "Size": fields.Int(required=True, dump_to="Size"), + "SnapshotId": fields.Str(required=False, dump_to="SnapshotId"), + "Type": fields.Str(required=True, dump_to="Type"), + } + + +class CheckUHostResourceCapacityParamFeaturesSchema(schema.RequestSchema): + """CheckUHostResourceCapacityParamFeatures -""" + + fields = { + "UNI": fields.Bool(required=False, dump_to="UNI"), + } + + +class CheckUHostResourceCapacityRequestSchema(schema.RequestSchema): + """CheckUHostResourceCapacity - 主机创建资源余量检查""" + + fields = { + "CPU": fields.Int(required=False, dump_to="CPU"), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "Disks": fields.List(CheckUHostResourceCapacityParamDisksSchema()), + "Features": CheckUHostResourceCapacityParamFeaturesSchema( + required=False, dump_to="Features" + ), + "GPU": fields.Int(required=False, dump_to="GPU"), + "GpuType": fields.Str(required=False, dump_to="GpuType"), + "HotplugFeature": fields.Bool(required=False, dump_to="HotplugFeature"), + "ImageId": fields.Str(required=True, dump_to="ImageId"), + "IsolationGroup": fields.Str(required=False, dump_to="IsolationGroup"), + "MachineType": fields.Str(required=False, dump_to="MachineType"), + "MaxCount": fields.Int(required=False, dump_to="MaxCount"), + "Memory": fields.Int(required=False, dump_to="Memory"), + "MinCount": fields.Int(required=False, dump_to="MinCount"), + "MinimalCpuPlatform": fields.Str( + required=False, dump_to="MinimalCpuPlatform" + ), + "NetCapability": fields.Str(required=False, dump_to="NetCapability"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "SecurityMode": fields.Str(required=False, dump_to="SecurityMode"), + "UHostFamily": fields.Str(required=False, dump_to="UHostFamily"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class CheckUHostResourceCapacityResponseSchema(schema.ResponseSchema): + """CheckUHostResourceCapacity - 主机创建资源余量检查""" + + fields = { + "RdmaClusterIds": fields.List( + fields.Str(), required=False, load_from="RdmaClusterIds" + ), + "ResourceEnough": fields.Bool( + required=False, load_from="ResourceEnough" + ), + } + + """ API: CopyCustomImage @@ -142,55 +230,6 @@ class CreateIsolationGroupResponseSchema(schema.ResponseSchema): """ -class CreateUHostInstanceParamSecGroupIdSchema(schema.RequestSchema): - """CreateUHostInstanceParamSecGroupId -""" - - fields = { - "Id": fields.Str(required=False, dump_to="Id"), - "Priority": fields.Int(required=False, dump_to="Priority"), - } - - -class CreateUHostInstanceParamDisksCustomBackupSchema(schema.RequestSchema): - """CreateUHostInstanceParamDisksCustomBackup -""" - - fields = { - "Day": fields.Str(required=False, dump_to="Day"), - "Hour": fields.Str(required=False, dump_to="Hour"), - "Journal": fields.Str(required=False, dump_to="Journal"), - } - - -class CreateUHostInstanceParamDisksSchema(schema.RequestSchema): - """CreateUHostInstanceParamDisks -""" - - fields = { - "BackupMode": fields.Str(required=False, dump_to="BackupMode"), - "BackupType": fields.Str(required=False, dump_to="BackupType"), - "CouponId": fields.Str(required=False, dump_to="CouponId"), - "CustomBackup": CreateUHostInstanceParamDisksCustomBackupSchema( - required=False, dump_to="CustomBackup" - ), - "Encrypted": fields.Bool(required=False, dump_to="Encrypted"), - "IsBoot": fields.Str(required=True, dump_to="IsBoot"), - "KmsKeyId": fields.Str(required=False, dump_to="KmsKeyId"), - "Size": fields.Int(required=True, dump_to="Size"), - "SnapshotId": fields.Str(required=False, dump_to="SnapshotId"), - "Type": fields.Str(required=True, dump_to="Type"), - } - - -class CreateUHostInstanceParamNetworkInterfaceIPv6Schema(schema.RequestSchema): - """CreateUHostInstanceParamNetworkInterfaceIPv6 -""" - - fields = { - "Address": fields.Str(required=False, dump_to="Address"), - "ShareBandwidthId": fields.Str( - required=False, dump_to="ShareBandwidthId" - ), # Deprecated, will be removed at 1.0 - } - - class CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSHSchema( schema.RequestSchema ): @@ -220,6 +259,17 @@ class CreateUHostInstanceParamNetworkInterfaceEIPSchema(schema.RequestSchema): } +class CreateUHostInstanceParamNetworkInterfaceIPv6Schema(schema.RequestSchema): + """CreateUHostInstanceParamNetworkInterfaceIPv6 -""" + + fields = { + "Address": fields.Str(required=False, dump_to="Address"), + "ShareBandwidthId": fields.Str( + required=False, dump_to="ShareBandwidthId" + ), # Deprecated, will be removed at 1.0 + } + + class CreateUHostInstanceParamNetworkInterfaceSchema(schema.RequestSchema): """CreateUHostInstanceParamNetworkInterface -""" @@ -234,6 +284,29 @@ class CreateUHostInstanceParamNetworkInterfaceSchema(schema.RequestSchema): } +class CreateUHostInstanceParamFeaturesSchema(schema.RequestSchema): + """CreateUHostInstanceParamFeatures -""" + + fields = { + "UNI": fields.Bool(required=False, dump_to="UNI"), + } + + +class CreateUHostInstanceParamSecGroupIdSchema(schema.RequestSchema): + """CreateUHostInstanceParamSecGroupId -""" + + fields = { + "Id": fields.Str(required=False, dump_to="Id"), + "Priority": fields.Int(required=False, dump_to="Priority"), + } + + +class CreateUHostInstanceParamVolumesSchema(schema.RequestSchema): + """CreateUHostInstanceParamVolumes -""" + + fields = {} + + class CreateUHostInstanceParamLabelsSchema(schema.RequestSchema): """CreateUHostInstanceParamLabels -""" @@ -243,17 +316,32 @@ class CreateUHostInstanceParamLabelsSchema(schema.RequestSchema): } -class CreateUHostInstanceParamVolumesSchema(schema.RequestSchema): - """CreateUHostInstanceParamVolumes -""" +class CreateUHostInstanceParamDisksCustomBackupSchema(schema.RequestSchema): + """CreateUHostInstanceParamDisksCustomBackup -""" - fields = {} + fields = { + "Day": fields.Str(required=False, dump_to="Day"), + "Hour": fields.Str(required=False, dump_to="Hour"), + "Journal": fields.Str(required=False, dump_to="Journal"), + } -class CreateUHostInstanceParamFeaturesSchema(schema.RequestSchema): - """CreateUHostInstanceParamFeatures -""" +class CreateUHostInstanceParamDisksSchema(schema.RequestSchema): + """CreateUHostInstanceParamDisks -""" fields = { - "UNI": fields.Bool(required=False, dump_to="UNI"), + "BackupMode": fields.Str(required=False, dump_to="BackupMode"), + "BackupType": fields.Str(required=False, dump_to="BackupType"), + "CouponId": fields.Str(required=False, dump_to="CouponId"), + "CustomBackup": CreateUHostInstanceParamDisksCustomBackupSchema( + required=False, dump_to="CustomBackup" + ), + "Encrypted": fields.Bool(required=False, dump_to="Encrypted"), + "IsBoot": fields.Str(required=True, dump_to="IsBoot"), + "KmsKeyId": fields.Str(required=False, dump_to="KmsKeyId"), + "Size": fields.Int(required=True, dump_to="Size"), + "SnapshotId": fields.Str(required=False, dump_to="SnapshotId"), + "Type": fields.Str(required=True, dump_to="Type"), } @@ -273,6 +361,9 @@ class CreateUHostInstanceRequestSchema(schema.RequestSchema): "CPU": fields.Int(required=False, dump_to="CPU"), "ChargeType": fields.Str(required=False, dump_to="ChargeType"), "CouponId": fields.Str(required=False, dump_to="CouponId"), + "DeletionProtection": fields.Bool( + required=False, dump_to="DeletionProtection" + ), "DiskPassword": fields.Str( required=False, dump_to="DiskPassword" ), # Deprecated, will be removed at 1.0 @@ -482,6 +573,33 @@ class DescribeAvailableInstanceTypesResponseSchema(schema.ResponseSchema): } +""" +API: DescribeHostMachineTypeFamilies + +获取实例规格族列表(所有机型的信息) +""" + + +class DescribeHostMachineTypeFamiliesRequestSchema(schema.RequestSchema): + """DescribeHostMachineTypeFamilies - 获取实例规格族列表(所有机型的信息)""" + + fields = { + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + } + + +class DescribeHostMachineTypeFamiliesResponseSchema(schema.ResponseSchema): + """DescribeHostMachineTypeFamilies - 获取实例规格族列表(所有机型的信息)""" + + fields = { + "MachineTypes": fields.List( + models.MachineTypesSchema(), + required=False, + load_from="MachineTypes", + ), + } + + """ API: DescribeImage @@ -551,6 +669,36 @@ class DescribeIsolationGroupResponseSchema(schema.ResponseSchema): } +""" +API: DescribeUHostAvailableDiskTypes + +获取主机可挂载的磁盘信息 +""" + + +class DescribeUHostAvailableDiskTypesRequestSchema(schema.RequestSchema): + """DescribeUHostAvailableDiskTypes - 获取主机可挂载的磁盘信息""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "UHostIds": fields.List(fields.Str()), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribeUHostAvailableDiskTypesResponseSchema(schema.ResponseSchema): + """DescribeUHostAvailableDiskTypes - 获取主机可挂载的磁盘信息""" + + fields = { + "DiskTypeSet": fields.List( + models.AvailableDiskTypesSchema(), + required=True, + load_from="DiskTypeSet", + ), + } + + """ API: DescribeUHostInstance @@ -728,12 +876,6 @@ class GetAttachedDiskUpgradePriceResponseSchema(schema.ResponseSchema): """ -class GetUHostInstancePriceParamVolumesSchema(schema.RequestSchema): - """GetUHostInstancePriceParamVolumes -""" - - fields = {} - - class GetUHostInstancePriceParamDisksSchema(schema.RequestSchema): """GetUHostInstancePriceParamDisks -""" @@ -745,6 +887,12 @@ class GetUHostInstancePriceParamDisksSchema(schema.RequestSchema): } +class GetUHostInstancePriceParamVolumesSchema(schema.RequestSchema): + """GetUHostInstancePriceParamVolumes -""" + + fields = {} + + class GetUHostInstancePriceRequestSchema(schema.RequestSchema): """GetUHostInstancePrice - 根据UHost实例配置,获取UHost实例的价格。""" diff --git a/ucloud/services/uhost/schemas/models.py b/ucloud/services/uhost/schemas/models.py index e2f6ee9..20065b5 100644 --- a/ucloud/services/uhost/schemas/models.py +++ b/ucloud/services/uhost/schemas/models.py @@ -30,43 +30,41 @@ class KeyPairSchema(schema.ResponseSchema): } -class PerformanceSchema(schema.ResponseSchema): - """Performance - GPU的性能指标""" +class FeatureModesSchema(schema.ResponseSchema): + """FeatureModes - 可以支持的模式类别""" fields = { - "Rate": fields.Int(required=False, load_from="Rate"), - "Value": fields.Float(required=False, load_from="Value"), + "MinimalCpuPlatform": fields.List(fields.Str()), + "Name": fields.Str(required=False, load_from="Name"), + "RelatedToImageFeature": fields.List(fields.Str()), } -class BootDiskInfoSchema(schema.ResponseSchema): - """BootDiskInfo - 系统盘信息""" +class FeaturesSchema(schema.ResponseSchema): + """Features - 虚机可支持的特性""" fields = { - "Features": fields.List(fields.Str()), - "InstantResize": fields.Bool(required=False, load_from="InstantResize"), - "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "Modes": fields.List(FeatureModesSchema()), "Name": fields.Str(required=False, load_from="Name"), } -class DataDiskInfoSchema(schema.ResponseSchema): - """DataDiskInfo - 数据盘信息""" +class CpuPlatformWithModelsSchema(schema.ResponseSchema): + """CpuPlatformWithModels -""" fields = { - "Features": fields.List(fields.Str()), - "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), - "MinimalSize": fields.Int(required=False, load_from="MinimalSize"), + "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), + "CpuModels": fields.List(fields.Str()), "Name": fields.Str(required=False, load_from="Name"), } -class DisksSchema(schema.ResponseSchema): - """Disks - 磁盘信息""" +class UHostFamilySchema(schema.ResponseSchema): + """UHostFamily -""" fields = { - "BootDisk": fields.List(BootDiskInfoSchema()), - "DataDisk": fields.List(DataDiskInfoSchema()), + "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), + "CpuPlatforms": fields.List(CpuPlatformWithModelsSchema()), "Name": fields.Str(required=False, load_from="Name"), } @@ -80,33 +78,36 @@ class GraphicsMemorySchema(schema.ResponseSchema): } -class CpuPlatformWithModelsSchema(schema.ResponseSchema): - """CpuPlatformWithModels -""" +class BootDiskInfoSchema(schema.ResponseSchema): + """BootDiskInfo - 系统盘信息""" fields = { - "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), - "CpuModels": fields.List(fields.Str()), + "Features": fields.List(fields.Str()), + "InstantResize": fields.Bool(required=False, load_from="InstantResize"), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), "Name": fields.Str(required=False, load_from="Name"), } -class UHostFamilySchema(schema.ResponseSchema): - """UHostFamily -""" +class DataDiskInfoSchema(schema.ResponseSchema): + """DataDiskInfo - 数据盘信息""" fields = { - "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), - "CpuPlatforms": fields.List(CpuPlatformWithModelsSchema()), + "BackupMode": fields.List(fields.Str()), + "Features": fields.List(fields.Str()), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "MinimalSize": fields.Int(required=False, load_from="MinimalSize"), "Name": fields.Str(required=False, load_from="Name"), } -class CpuPlatformsSchema(schema.ResponseSchema): - """CpuPlatforms - CPU平台信息""" +class DisksSchema(schema.ResponseSchema): + """Disks - 磁盘信息""" fields = { - "Amd": fields.List(fields.Str()), - "Ampere": fields.List(fields.Str()), - "Intel": fields.List(fields.Str()), + "BootDisk": fields.List(BootDiskInfoSchema()), + "DataDisk": fields.List(DataDiskInfoSchema()), + "Name": fields.Str(required=False, load_from="Name"), } @@ -129,22 +130,22 @@ class MachineSizesSchema(schema.ResponseSchema): } -class FeatureModesSchema(schema.ResponseSchema): - """FeatureModes - 可以支持的模式类别""" +class CpuPlatformsSchema(schema.ResponseSchema): + """CpuPlatforms - CPU平台信息""" fields = { - "MinimalCpuPlatform": fields.List(fields.Str()), - "Name": fields.Str(required=False, load_from="Name"), - "RelatedToImageFeature": fields.List(fields.Str()), + "Amd": fields.List(fields.Str()), + "Ampere": fields.List(fields.Str()), + "Intel": fields.List(fields.Str()), } -class FeaturesSchema(schema.ResponseSchema): - """Features - 虚机可支持的特性""" +class PerformanceSchema(schema.ResponseSchema): + """Performance - GPU的性能指标""" fields = { - "Modes": fields.List(FeatureModesSchema()), - "Name": fields.Str(required=False, load_from="Name"), + "Rate": fields.Int(required=False, load_from="Rate"), + "Value": fields.Float(required=False, load_from="Value"), } @@ -169,6 +170,122 @@ class AvailableInstanceTypesSchema(schema.ResponseSchema): } +class NameOperationStatusSchema(schema.ResponseSchema): + """NameOperationStatus - 名称及标记""" + + fields = { + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), + } + + +class DiskFeatureSchema(schema.ResponseSchema): + """DiskFeature - 磁盘特性""" + + fields = { + "Modes": fields.List(NameOperationStatusSchema()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class FamiliesBootDiskInfoSchema(schema.ResponseSchema): + """FamiliesBootDiskInfo - 系统盘信息""" + + fields = { + "Features": fields.List(DiskFeatureSchema()), + "InstantResize": fields.Bool(required=False, load_from="InstantResize"), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class FamiliesDataDiskInfoSchema(schema.ResponseSchema): + """FamiliesDataDiskInfo - 数据盘信息""" + + fields = { + "Features": fields.List(DiskFeatureSchema()), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "MinimalSize": fields.Int(required=False, load_from="MinimalSize"), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class FamiliesDisksSchema(schema.ResponseSchema): + """FamiliesDisks - 磁盘信息""" + + fields = { + "BootDisk": fields.List(FamiliesBootDiskInfoSchema()), + "DataDisk": fields.List(FamiliesDataDiskInfoSchema()), + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), + } + + +class CpuPlatformStatusSchema(schema.ResponseSchema): + """CpuPlatformStatus -""" + + fields = { + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), + } + + +class FamiliesGpuTypeSchema(schema.ResponseSchema): + """FamiliesGpuType -""" + + fields = { + "GraphicsMemory": GraphicsMemorySchema(), + "Name": fields.Str(required=False, load_from="Name"), + "Performance": PerformanceSchema(), + } + + +class FrequencySchema(schema.ResponseSchema): + """Frequency - 频率""" + + fields = { + "Value": fields.Float(required=False, load_from="Value"), + } + + +class NameFrequencySchema(schema.ResponseSchema): + """NameFrequency - 名称及频率""" + + fields = { + "Frequency": FrequencySchema(), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class MachineTypesSchema(schema.ResponseSchema): + """MachineTypes - 机型配置详情""" + + fields = { + "CpuPlatforms": fields.List(CpuPlatformStatusSchema()), + "Description": fields.Str(required=False, load_from="Description"), + "Disks": fields.List(FamiliesDisksSchema()), + "Features": fields.List(FeaturesSchema()), + "GpuSeries": fields.Str(required=False, load_from="GpuSeries"), + "GpuType": FamiliesGpuTypeSchema(), + "MachineSizes": fields.List(MachineSizesSchema()), + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), + "ParentType": fields.Str(required=False, load_from="ParentType"), + "ProType": NameFrequencySchema(), + "SceneCategories": fields.List(fields.Str()), + "UHostFamilies": fields.List(UHostFamilySchema()), + "Virtual": fields.Bool(required=False, load_from="Virtual"), + } + + class BasePriceSetSchema(schema.ResponseSchema): """BasePriceSet - 价格信息""" @@ -237,6 +354,35 @@ class IsolationGroupSchema(schema.ResponseSchema): } +class AvailableDiskTypesSchema(schema.ResponseSchema): + """AvailableDiskTypes - 可用的磁盘信息""" + + fields = { + "AvailableDisks": fields.List(DisksSchema()), + "UHostId": fields.Str(required=False, load_from="UHostId"), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class UHostKeyPairSchema(schema.ResponseSchema): + """UHostKeyPair - 主机密钥信息""" + + fields = { + "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), + "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), + } + + +class UDSetUDHostAttributeSchema(schema.ResponseSchema): + """UDSetUDHostAttribute - 私有专区对应的宿主机属性""" + + fields = { + "HostBinding": fields.Bool(required=False, load_from="HostBinding"), + "UDHostId": fields.Str(required=False, load_from="UDHostId"), + "UDSetId": fields.Str(required=False, load_from="UDSetId"), + } + + class UHostDiskSetSchema(schema.ResponseSchema): """UHostDiskSet - DescribeUHostInstance""" @@ -253,15 +399,6 @@ class UHostDiskSetSchema(schema.ResponseSchema): } -class UHostKeyPairSchema(schema.ResponseSchema): - """UHostKeyPair - 主机密钥信息""" - - fields = { - "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), - "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), - } - - class UHostIPSetSchema(schema.ResponseSchema): """UHostIPSet - DescribeUHostInstance""" @@ -282,16 +419,6 @@ class UHostIPSetSchema(schema.ResponseSchema): } -class UDSetUDHostAttributeSchema(schema.ResponseSchema): - """UDSetUDHostAttribute - 私有专区对应的宿主机属性""" - - fields = { - "HostBinding": fields.Bool(required=False, load_from="HostBinding"), - "UDHostId": fields.Str(required=False, load_from="UDHostId"), - "UDSetId": fields.Str(required=False, load_from="UDSetId"), - } - - class SpotAttributeSchema(schema.ResponseSchema): """SpotAttribute - 竞价实例属性""" diff --git a/ucloud/version.py b/ucloud/version.py index b802529..78c67be 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.108" +version = "0.11.109"