diff --git a/ucloud/services/uhost/client.py b/ucloud/services/uhost/client.py index 096f0da..5050296 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,11 +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。 @@ -239,10 +303,27 @@ def create_uhost_instance( - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 + **CreateUHostInstanceParamVolumes** + + + **CreateUHostInstanceParamLabels** + - **Key** (str) - 用户资源标签的键值 + - **Value** (str) - 用户资源标签的值 + + **CreateUHostInstanceParamNetworkInterfaceIPv6** - **Address** (str) - 第N个网卡对应的IPv6地址,默认不分配IPv6,“Auto”自动分配,不为空的其他字符串为实际要分配的IPv6地址。当前仅支持分配一个IPv6地址 + **CreateUHostInstanceParamSecGroupId** + - **Id** (str) - 安全组 ID。至多可以同时绑定5个安全组。 + - **Priority** (int) - 安全组优先级。取值范围[1, 5] + + + **CreateUHostInstanceParamFeatures** + - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启。 + + **CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH** - **Area** (str) - - **AreaCode** (str) - @@ -263,18 +344,6 @@ def create_uhost_instance( - **IPv6** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceIPv6** 模型定义 - **CreateUHostInstanceParamLabels** - - **Key** (str) - 用户资源标签的键值 - - **Value** (str) - 用户资源标签的值 - - - **CreateUHostInstanceParamVolumes** - - - **CreateUHostInstanceParamFeatures** - - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启。 - - """ # build request d = { @@ -405,17 +474,6 @@ def describe_available_instance_types( **Response Model** - **Collection** - - **Cpu** (int) - CPU规格 - - **Memory** (list) - 内存规格 - - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 - - - **MachineSizes** - - **Collection** (list) - 见 **Collection** 模型定义 - - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 - - **CpuPlatformWithModels** - **CpuFrequency** (str) - CPU频率 - **CpuModels** (list) - CPU Model列表 @@ -434,12 +492,29 @@ def describe_available_instance_types( - **Intel** (list) - 返回Intel的CPU平台信息,例如:Intel: ['Intel/CascadeLake','Intel/CascadelakeR','Intel/IceLake'] + **DataDiskInfo** + - **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一种。 + + **FeatureModes** - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 - **Name** (str) - 模式|特性名称 - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB + + + **Performance** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (float) - 值,单位是TFlops + + **BootDiskInfo** - **Features** (list) - 磁盘可支持的服务 - **InstantResize** (bool) - 系统盘是否允许扩容,如果是本地盘,则不允许扩容,InstantResize为false。 @@ -447,16 +522,10 @@ def describe_available_instance_types( - **Name** (str) - 系统盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 - **DataDiskInfo** - - **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一种。 - - - **Performance** - - **Rate** (int) - 交互展示参数,可忽略 - - **Value** (float) - 值,单位是TFlops + **Disks** + - **BootDisk** (list) - 见 **BootDiskInfo** 模型定义 + - **DataDisk** (list) - 见 **DataDiskInfo** 模型定义 + - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 **Features** @@ -464,15 +533,15 @@ def describe_available_instance_types( - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug - **GraphicsMemory** - - **Rate** (int) - 交互展示参数,可忽略 - - **Value** (int) - 值,单位是GB + **Collection** + - **Cpu** (int) - CPU规格 + - **Memory** (list) - 内存规格 + - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 - **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** + + **NameOperationStatus** + - **Name** (str) - 名称 + - **OperationStatus** (str) - 标记 + + + **DiskFeature** + - **Modes** (list) - 见 **NameOperationStatus** 模型定义 + - **Name** (str) - 特性名称 + + + **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一种。 + + + **Frequency** + - **Value** (float) - 值 + + + **FeatureModes** + - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 + - **Name** (str) - 模式|特性名称 + - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 + + + **Collection** + - **Cpu** (int) - CPU规格 + - **Memory** (list) - 内存规格 + - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 + + + **CpuPlatformStatus** + - **Name** (str) - CPU平台 + - **OperationStatus** (str) - 运营Commpont Code + + + **NameFrequency** + - **Frequency** (dict) - 见 **Frequency** 模型定义 + - **Name** (str) - 机型名称 + + + **Features** + - **Modes** (list) - 见 **FeatureModes** 模型定义 + - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug + + + **CpuPlatformWithModels** + - **CpuFrequency** (str) - CPU频率 + - **CpuModels** (list) - CPU Model列表 + - **Name** (str) - CPU平台 + + + **Performance** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (float) - 值,单位是TFlops + + + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB + + + **FamiliesGpuType** + - **GraphicsMemory** (dict) - 见 **GraphicsMemory** 模型定义 + - **Name** (str) - 机型名称 + - **Performance** (dict) - 见 **Performance** 模型定义 + + + **UHostFamily** + - **CpuFrequency** (str) - CPU频率信息 + - **CpuPlatforms** (list) - 见 **CpuPlatformWithModels** 模型定义 + - **Name** (str) - 规格族 + + + **MachineSizes** + - **Collection** (list) - 见 **Collection** 模型定义 + - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 + + + **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一种。 + + + **FamiliesDisks** + - **BootDisk** (list) - 见 **FamiliesBootDiskInfo** 模型定义 + - **DataDisk** (list) - 见 **FamiliesDataDiskInfo** 模型定义 + - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + - **OperationStatus** (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,6 @@ def describe_uhost_instance( **Response Model** - **UHostKeyPair** - - **KeyPairId** (str) - 密钥对ID - - **KeyPairState** (str) - 主机密钥对状态,Normal 正常,Deleted 删除 - - **UHostIPSet** - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) - **Default** (str) - 内网 Private 类型下,表示是否为默认网卡。true: 是默认网卡;其他值:不是。 @@ -664,12 +923,21 @@ def describe_uhost_instance( - **Weight** (int) - 当前EIP的权重。权重最大的为当前的出口IP。 + **UHostKeyPair** + - **KeyPairId** (str) - 密钥对ID + - **KeyPairState** (str) - 主机密钥对状态,Normal 正常,Deleted 删除 + + **UDSetUDHostAttribute** - **HostBinding** (bool) - 是否绑定私有专区宿主机 - **UDHostId** (str) - 私有专区宿主机 - **UDSetId** (str) - 私有专区 + **SpotAttribute** + - **RecycleTime** (int) - 回收时间 + + **UHostDiskSet** - **BackupType** (str) - 备份方案。若开通了数据方舟,则为DATAARK - **DiskId** (str) - 磁盘ID @@ -682,10 +950,6 @@ def describe_uhost_instance( - **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..6fbaa4b 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,15 +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 -""" @@ -180,6 +259,21 @@ class CreateUHostInstanceParamDisksSchema(schema.RequestSchema): } +class CreateUHostInstanceParamVolumesSchema(schema.RequestSchema): + """CreateUHostInstanceParamVolumes -""" + + fields = {} + + +class CreateUHostInstanceParamLabelsSchema(schema.RequestSchema): + """CreateUHostInstanceParamLabels -""" + + fields = { + "Key": fields.Str(required=False, dump_to="Key"), + "Value": fields.Str(required=False, dump_to="Value"), + } + + class CreateUHostInstanceParamNetworkInterfaceIPv6Schema(schema.RequestSchema): """CreateUHostInstanceParamNetworkInterfaceIPv6 -""" @@ -191,6 +285,23 @@ class CreateUHostInstanceParamNetworkInterfaceIPv6Schema(schema.RequestSchema): } +class CreateUHostInstanceParamSecGroupIdSchema(schema.RequestSchema): + """CreateUHostInstanceParamSecGroupId -""" + + fields = { + "Id": fields.Str(required=False, dump_to="Id"), + "Priority": fields.Int(required=False, dump_to="Priority"), + } + + +class CreateUHostInstanceParamFeaturesSchema(schema.RequestSchema): + """CreateUHostInstanceParamFeatures -""" + + fields = { + "UNI": fields.Bool(required=False, dump_to="UNI"), + } + + class CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSHSchema( schema.RequestSchema ): @@ -234,29 +345,6 @@ class CreateUHostInstanceParamNetworkInterfaceSchema(schema.RequestSchema): } -class CreateUHostInstanceParamLabelsSchema(schema.RequestSchema): - """CreateUHostInstanceParamLabels -""" - - fields = { - "Key": fields.Str(required=False, dump_to="Key"), - "Value": fields.Str(required=False, dump_to="Value"), - } - - -class CreateUHostInstanceParamVolumesSchema(schema.RequestSchema): - """CreateUHostInstanceParamVolumes -""" - - fields = {} - - -class CreateUHostInstanceParamFeaturesSchema(schema.RequestSchema): - """CreateUHostInstanceParamFeatures -""" - - fields = { - "UNI": fields.Bool(required=False, dump_to="UNI"), - } - - class CreateUHostInstanceRequestSchema(schema.RequestSchema): """CreateUHostInstance - 创建UHost实例。""" @@ -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..1b81583 100644 --- a/ucloud/services/uhost/schemas/models.py +++ b/ucloud/services/uhost/schemas/models.py @@ -30,6 +30,15 @@ class KeyPairSchema(schema.ResponseSchema): } +class GraphicsMemorySchema(schema.ResponseSchema): + """GraphicsMemory - GPU的显存指标""" + + fields = { + "Rate": fields.Int(required=False, load_from="Rate"), + "Value": fields.Int(required=False, load_from="Value"), + } + + class PerformanceSchema(schema.ResponseSchema): """Performance - GPU的性能指标""" @@ -54,6 +63,7 @@ class DataDiskInfoSchema(schema.ResponseSchema): """DataDiskInfo - 数据盘信息""" fields = { + "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"), @@ -71,12 +81,41 @@ class DisksSchema(schema.ResponseSchema): } -class GraphicsMemorySchema(schema.ResponseSchema): - """GraphicsMemory - GPU的显存指标""" +class FeatureModesSchema(schema.ResponseSchema): + """FeatureModes - 可以支持的模式类别""" fields = { - "Rate": fields.Int(required=False, load_from="Rate"), - "Value": fields.Int(required=False, load_from="Value"), + "MinimalCpuPlatform": fields.List(fields.Str()), + "Name": fields.Str(required=False, load_from="Name"), + "RelatedToImageFeature": fields.List(fields.Str()), + } + + +class FeaturesSchema(schema.ResponseSchema): + """Features - 虚机可支持的特性""" + + fields = { + "Modes": fields.List(FeatureModesSchema()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class CollectionSchema(schema.ResponseSchema): + """Collection - CPU和内存可支持的规格""" + + fields = { + "Cpu": fields.Int(required=False, load_from="Cpu"), + "Memory": fields.List(fields.Int()), + "MinimalCpuPlatform": fields.List(fields.Str()), + } + + +class MachineSizesSchema(schema.ResponseSchema): + """MachineSizes - GPU、CPU和内存信息""" + + fields = { + "Collection": fields.List(CollectionSchema()), + "Gpu": fields.Int(required=False, load_from="Gpu"), } @@ -110,62 +149,140 @@ class CpuPlatformsSchema(schema.ResponseSchema): } -class CollectionSchema(schema.ResponseSchema): - """Collection - CPU和内存可支持的规格""" +class AvailableInstanceTypesSchema(schema.ResponseSchema): + """AvailableInstanceTypes - https://ushare.ucloudadmin.com/pages/viewpage.action?pageId=104662646""" fields = { - "Cpu": fields.Int(required=False, load_from="Cpu"), - "Memory": fields.List(fields.Int()), - "MinimalCpuPlatform": fields.List(fields.Str()), + "CpuPlatforms": CpuPlatformsSchema(), + "Description": fields.Str(required=False, load_from="Description"), + "Disks": fields.List(DisksSchema()), + "Features": fields.List(FeaturesSchema()), + "GraphicsMemory": GraphicsMemorySchema(), + "InstanceType": fields.Str(required=False, load_from="InstanceType"), + "MachineClass": fields.Str(required=False, load_from="MachineClass"), + "MachineSizes": fields.List(MachineSizesSchema()), + "Name": fields.Str(required=False, load_from="Name"), + "ParentType": fields.Str(required=False, load_from="ParentType"), + "Performance": PerformanceSchema(), + "Status": fields.Str(required=False, load_from="Status"), + "UHostFamilies": fields.List(UHostFamilySchema()), + "Zone": fields.Str(required=False, load_from="Zone"), } -class MachineSizesSchema(schema.ResponseSchema): - """MachineSizes - GPU、CPU和内存信息""" +class NameOperationStatusSchema(schema.ResponseSchema): + """NameOperationStatus - 名称及标记""" fields = { - "Collection": fields.List(CollectionSchema()), - "Gpu": fields.Int(required=False, load_from="Gpu"), + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), } -class FeatureModesSchema(schema.ResponseSchema): - """FeatureModes - 可以支持的模式类别""" +class DiskFeatureSchema(schema.ResponseSchema): + """DiskFeature - 磁盘特性""" fields = { - "MinimalCpuPlatform": fields.List(fields.Str()), + "Modes": fields.List(NameOperationStatusSchema()), "Name": fields.Str(required=False, load_from="Name"), - "RelatedToImageFeature": fields.List(fields.Str()), } -class FeaturesSchema(schema.ResponseSchema): - """Features - 虚机可支持的特性""" +class FamiliesDataDiskInfoSchema(schema.ResponseSchema): + """FamiliesDataDiskInfo - 数据盘信息""" fields = { - "Modes": fields.List(FeatureModesSchema()), + "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 AvailableInstanceTypesSchema(schema.ResponseSchema): - """AvailableInstanceTypes - https://ushare.ucloudadmin.com/pages/viewpage.action?pageId=104662646""" +class CpuPlatformStatusSchema(schema.ResponseSchema): + """CpuPlatformStatus -""" fields = { - "CpuPlatforms": CpuPlatformsSchema(), + "Name": fields.Str(required=False, load_from="Name"), + "OperationStatus": fields.Str( + required=False, load_from="OperationStatus" + ), + } + + +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 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 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 FamiliesGpuTypeSchema(schema.ResponseSchema): + """FamiliesGpuType -""" + + fields = { + "GraphicsMemory": GraphicsMemorySchema(), + "Name": fields.Str(required=False, load_from="Name"), + "Performance": PerformanceSchema(), + } + + +class MachineTypesSchema(schema.ResponseSchema): + """MachineTypes - 机型配置详情""" + + fields = { + "CpuPlatforms": fields.List(CpuPlatformStatusSchema()), "Description": fields.Str(required=False, load_from="Description"), - "Disks": fields.List(DisksSchema()), + "Disks": fields.List(FamiliesDisksSchema()), "Features": fields.List(FeaturesSchema()), - "GraphicsMemory": GraphicsMemorySchema(), - "InstanceType": fields.Str(required=False, load_from="InstanceType"), - "MachineClass": fields.Str(required=False, load_from="MachineClass"), + "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"), - "Performance": PerformanceSchema(), - "Status": fields.Str(required=False, load_from="Status"), + "ProType": NameFrequencySchema(), + "SceneCategories": fields.List(fields.Str()), "UHostFamilies": fields.List(UHostFamilySchema()), - "Zone": fields.Str(required=False, load_from="Zone"), + "Virtual": fields.Bool(required=False, load_from="Virtual"), } @@ -237,6 +354,43 @@ 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 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 UHostKeyPairSchema(schema.ResponseSchema): + """UHostKeyPair - 主机密钥信息""" + + fields = { + "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), + "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), + } + + +class SpotAttributeSchema(schema.ResponseSchema): + """SpotAttribute - 竞价实例属性""" + + fields = { + "RecycleTime": fields.Int(required=False, load_from="RecycleTime"), + } + + class UHostDiskSetSchema(schema.ResponseSchema): """UHostDiskSet - DescribeUHostInstance""" @@ -253,15 +407,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,24 +427,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 - 竞价实例属性""" - - fields = { - "RecycleTime": fields.Int(required=False, load_from="RecycleTime"), - } - - class UHostInstanceSetSchema(schema.ResponseSchema): """UHostInstanceSet - DescribeUHostInstance""" 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"