diff --git a/ucloud/services/uai_modelverse/client.py b/ucloud/services/uai_modelverse/client.py index 20c9532..6debe4d 100644 --- a/ucloud/services/uai_modelverse/client.py +++ b/ucloud/services/uai_modelverse/client.py @@ -349,16 +349,6 @@ def get_uf_square_model_detail( **Response Model** - **Pricing** - - **Completion** (float) - 输出定价 - - **Currency** (str) - 币种 - - **Image** (float) - 生图定价 - - **Prompt** (float) - 提示词定价 - - **Unit** (str) - 单位(中文),如“次” “百万” - - **UnitEn** (str) - 单位(English),如“Time” “Million” - - **Video** (str) - 生视频定价 - - **PriceRate** - **ChargeItem** (str) - 收费项:input/output/thinking/tool... - **ChargeItemDescription** (str) - 收费项描述 @@ -369,6 +359,16 @@ def get_uf_square_model_detail( - **UnitEn** (str) - 计价单位英文 + **Pricing** + - **Completion** (float) - 输出定价 + - **Currency** (str) - 币种 + - **Image** (float) - 生图定价 + - **Prompt** (float) - 提示词定价 + - **Unit** (str) - 单位(中文),如“次” “百万” + - **UnitEn** (str) - 单位(English),如“Time” “Million” + - **Video** (str) - 生视频定价 + + **PriceTier** - **Condition** (str) - 档位/条件(例如 "32k"、"128k") - **Description** (str) - 档位描述(例如 "标准上下文 32k") @@ -910,11 +910,6 @@ def list_um_infer_request_logs( **Response Model** - **RequestLogSummary** - - **FailedRequests** (int) - 查询条件命中的失败请求数 - - **TotalRequests** (int) - 查询条件命中的总请求数 - - **RequestLogItem** - **ApiKeyId** (str) - API Key ID - **ApiKeyName** (str) - API Key 名称 @@ -939,6 +934,11 @@ def list_um_infer_request_logs( - **TotalTokens** (int) - 总 Token 数 + **RequestLogSummary** + - **FailedRequests** (int) - 查询条件命中的失败请求数 + - **TotalRequests** (int) - 查询条件命中的总请求数 + + **ListUMInferRequestLogsData** - **Items** (list) - 见 **RequestLogItem** 模型定义 - **Summary** (dict) - 见 **RequestLogSummary** 模型定义 diff --git a/ucloud/services/uai_modelverse/schemas/models.py b/ucloud/services/uai_modelverse/schemas/models.py index 184baa2..c9fe849 100644 --- a/ucloud/services/uai_modelverse/schemas/models.py +++ b/ucloud/services/uai_modelverse/schemas/models.py @@ -74,6 +74,17 @@ class FilterOptionIntegerSchema(schema.ResponseSchema): } +class PricingSchema(schema.ResponseSchema): + """Pricing - 定价策略""" + + fields = { + "Completion": fields.Float(required=False, load_from="Completion"), + "Currency": fields.Str(required=False, load_from="Currency"), + "Image": fields.Float(required=False, load_from="Image"), + "Prompt": fields.Float(required=False, load_from="Prompt"), + } + + class PriceRateSchema(schema.ResponseSchema): """PriceRate - 该档位下的收费列表(有序数组)""" @@ -103,17 +114,6 @@ class PriceTierSchema(schema.ResponseSchema): } -class PricingSchema(schema.ResponseSchema): - """Pricing - 定价策略""" - - fields = { - "Completion": fields.Float(required=False, load_from="Completion"), - "Currency": fields.Str(required=False, load_from="Currency"), - "Image": fields.Float(required=False, load_from="Image"), - "Prompt": fields.Float(required=False, load_from="Prompt"), - } - - class SquareModelSchema(schema.ResponseSchema): """SquareModel - 广场模型""" diff --git a/ucloud/services/uhost/client.py b/ucloud/services/uhost/client.py index 096f0da..9d27ec5 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** + + **CheckUHostResourceCapacityParamFeatures** + - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启,仅与 NetCapability Normal 兼容。 + + + **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) - 磁盘类型。请参考 `磁盘类型 `_ 。 + + + """ + # 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,32 +284,7 @@ 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地址 + **CreateUHostInstanceParamVolumes** **CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH** @@ -257,6 +301,19 @@ def create_uhost_instance( - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 + **CreateUHostInstanceParamSecGroupId** + - **Id** (str) - 安全组 ID。至多可以同时绑定5个安全组。 + - **Priority** (int) - 安全组优先级。取值范围[1, 5] + + + **CreateUHostInstanceParamFeatures** + - **UNI** (bool) - 弹性网卡特性。开启了弹性网卡权限位,此特性才生效,默认 false 未开启,true 开启。 + + + **CreateUHostInstanceParamNetworkInterfaceIPv6** + - **Address** (str) - 第N个网卡对应的IPv6地址,默认不分配IPv6,“Auto”自动分配,不为空的其他字符串为实际要分配的IPv6地址。当前仅支持分配一个IPv6地址 + + **CreateUHostInstanceParamNetworkInterface** - **CreateCernetIp** (bool) - 申请并绑定一个教育网EIP。True为申请并绑定,False为不会申请绑定,默认False。当前只支持具有HPC特性的机型。 - **EIP** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceEIP** 模型定义 @@ -268,11 +325,23 @@ def create_uhost_instance( - **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) - 磁盘类型。请参考 `磁盘类型 `_ 。 """ @@ -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列表 @@ -428,18 +486,6 @@ 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'] - - - **FeatureModes** - - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 - - **Name** (str) - 模式|特性名称 - - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 - - **BootDiskInfo** - **Features** (list) - 磁盘可支持的服务 - **InstantResize** (bool) - 系统盘是否允许扩容,如果是本地盘,则不允许扩容,InstantResize为false。 @@ -454,25 +500,48 @@ def describe_available_instance_types( - **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。 + + + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB + + + **Collection** + - **Cpu** (int) - CPU规格 + - **Memory** (list) - 内存规格 + - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 + + + **MachineSizes** + - **Collection** (list) - 见 **Collection** 模型定义 + - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 + + **Performance** - **Rate** (int) - 交互展示参数,可忽略 - **Value** (float) - 值,单位是TFlops - **Features** - - **Modes** (list) - 见 **FeatureModes** 模型定义 - - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug + **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'] - **GraphicsMemory** - - **Rate** (int) - 交互展示参数,可忽略 - - **Value** (int) - 值,单位是GB + **FeatureModes** + - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 + - **Name** (str) - 模式|特性名称 + - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 - **Disks** - - **BootDisk** (list) - 见 **BootDiskInfo** 模型定义 - - **DataDisk** (list) - 见 **DataDiskInfo** 模型定义 - - **Name** (str) - 磁盘介质类别信息,磁盘主要分类如下:云盘|cloudDisk、普通本地盘|normalLocalDisk和SSD本地盘|ssdLocalDisk。 + **Features** + - **Modes** (list) - 见 **FeatureModes** 模型定义 + - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug **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** + + **Frequency** + - **Value** (float) - 值 + + + **NameFrequency** + - **Frequency** (dict) - 见 **Frequency** 模型定义 + - **Name** (str) - 机型名称 + + + **Collection** + - **Cpu** (int) - CPU规格 + - **Memory** (list) - 内存规格 + - **MinimalCpuPlatform** (list) - CPU和内存规格只能在列出来的CPU平台支持 + + + **MachineSizes** + - **Collection** (list) - 见 **Collection** 模型定义 + - **Gpu** (int) - Gpu为GPU可支持的规格即GPU颗数,非GPU机型,Gpu为0 + + + **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一种。 + + + **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) - 权限位 + + + **FeatureModes** + - **MinimalCpuPlatform** (list) - 这个特性必须是列出来的CPU平台及以上的CPU才支持 + - **Name** (str) - 模式|特性名称 + - **RelatedToImageFeature** (list) - 为镜像上支持这个特性的标签。例如DescribeImage返回的字段Features包含HotPlug,说明该镜像支持热升级。 + + + **Features** + - **Modes** (list) - 见 **FeatureModes** 模型定义 + - **Name** (str) - 可支持的特性名称。目前支持的特性网络增强|NetCapability、热升级|Hotplug + + + **CpuPlatformStatus** + - **Name** (str) - CPU平台 + - **OperationStatus** (str) - 运营Commpont Code + + + **CpuPlatformWithModels** + - **CpuFrequency** (str) - CPU频率 + - **CpuModels** (list) - CPU Model列表 + - **Name** (str) - CPU平台 + + + **UHostFamily** + - **CpuFrequency** (str) - CPU频率信息 + - **CpuPlatforms** (list) - 见 **CpuPlatformWithModels** 模型定义 + - **Name** (str) - 规格族 + + + **GraphicsMemory** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (int) - 值,单位是GB + + + **Performance** + - **Rate** (int) - 交互展示参数,可忽略 + - **Value** (float) - 值,单位是TFlops + + + **FamiliesGpuType** + - **GraphicsMemory** (dict) - 见 **GraphicsMemory** 模型定义 + - **Name** (str) - 机型名称 + - **Performance** (dict) - 见 **Performance** 模型定义 + + + **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,25 +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: 是默认网卡;其他值:不是。 - - **IP** (str) - IP地址 - - **IPId** (str) - 外网IP资源ID 。(内网IP无对应的资源ID) - - **IPMode** (str) - IPv4/IPv6; - - **Mac** (str) - 内网 Private 类型下,当前网卡的Mac。 - - **NetworkInterfaceId** (str) - 弹性网卡为默认网卡时,返回对应的 ID 值 - - **SubnetId** (str) - IP地址对应的子网 ID。(北京一不支持,字段返回为空) - - **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private - - **VPCId** (str) - IP地址对应的VPC ID。(北京一不支持,字段返回为空) - - **Weight** (int) - 当前EIP的权重。权重最大的为当前的出口IP。 - - **UDSetUDHostAttribute** - **HostBinding** (bool) - 是否绑定私有专区宿主机 - **UDHostId** (str) - 私有专区宿主机 @@ -682,6 +927,25 @@ def describe_uhost_instance( - **Type** (str) - 【建议不再使用】磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk + **UHostIPSet** + - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) + - **Default** (str) - 内网 Private 类型下,表示是否为默认网卡。true: 是默认网卡;其他值:不是。 + - **IP** (str) - IP地址 + - **IPId** (str) - 外网IP资源ID 。(内网IP无对应的资源ID) + - **IPMode** (str) - IPv4/IPv6; + - **Mac** (str) - 内网 Private 类型下,当前网卡的Mac。 + - **NetworkInterfaceId** (str) - 弹性网卡为默认网卡时,返回对应的 ID 值 + - **SubnetId** (str) - IP地址对应的子网 ID。(北京一不支持,字段返回为空) + - **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private + - **VPCId** (str) - IP地址对应的VPC ID。(北京一不支持,字段返回为空) + - **Weight** (int) - 当前EIP的权重。权重最大的为当前的出口IP。 + + + **UHostKeyPair** + - **KeyPairId** (str) - 密钥对ID + - **KeyPairState** (str) - 主机密钥对状态,Normal 正常,Deleted 删除 + + **SpotAttribute** - **RecycleTime** (int) - 回收时间 @@ -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..e2d49d2 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 CheckUHostResourceCapacityParamFeaturesSchema(schema.RequestSchema): + """CheckUHostResourceCapacityParamFeatures -""" + + fields = { + "UNI": fields.Bool(required=False, dump_to="UNI"), + } + + +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 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,53 +230,10 @@ 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 -""" +class CreateUHostInstanceParamVolumesSchema(schema.RequestSchema): + """CreateUHostInstanceParamVolumes -""" - fields = { - "Address": fields.Str(required=False, dump_to="Address"), - "ShareBandwidthId": fields.Str( - required=False, dump_to="ShareBandwidthId" - ), # Deprecated, will be removed at 1.0 - } + fields = {} class CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSHSchema( @@ -220,6 +265,34 @@ class CreateUHostInstanceParamNetworkInterfaceEIPSchema(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 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 -""" @@ -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..d6f1ff2 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的性能指标""" @@ -39,6 +48,26 @@ class PerformanceSchema(schema.ResponseSchema): } +class CpuPlatformsSchema(schema.ResponseSchema): + """CpuPlatforms - CPU平台信息""" + + fields = { + "Amd": fields.List(fields.Str()), + "Ampere": fields.List(fields.Str()), + "Intel": fields.List(fields.Str()), + } + + +class FeatureModesSchema(schema.ResponseSchema): + """FeatureModes - 可以支持的模式类别""" + + fields = { + "MinimalCpuPlatform": fields.List(fields.Str()), + "Name": fields.Str(required=False, load_from="Name"), + "RelatedToImageFeature": fields.List(fields.Str()), + } + + class BootDiskInfoSchema(schema.ResponseSchema): """BootDiskInfo - 系统盘信息""" @@ -54,6 +83,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"), @@ -61,25 +91,15 @@ class DataDiskInfoSchema(schema.ResponseSchema): } -class DisksSchema(schema.ResponseSchema): - """Disks - 磁盘信息""" +class FeaturesSchema(schema.ResponseSchema): + """Features - 虚机可支持的特性""" fields = { - "BootDisk": fields.List(BootDiskInfoSchema()), - "DataDisk": fields.List(DataDiskInfoSchema()), + "Modes": fields.List(FeatureModesSchema()), "Name": fields.Str(required=False, load_from="Name"), } -class GraphicsMemorySchema(schema.ResponseSchema): - """GraphicsMemory - GPU的显存指标""" - - fields = { - "Rate": fields.Int(required=False, load_from="Rate"), - "Value": fields.Int(required=False, load_from="Value"), - } - - class CpuPlatformWithModelsSchema(schema.ResponseSchema): """CpuPlatformWithModels -""" @@ -100,16 +120,6 @@ class UHostFamilySchema(schema.ResponseSchema): } -class CpuPlatformsSchema(schema.ResponseSchema): - """CpuPlatforms - CPU平台信息""" - - fields = { - "Amd": fields.List(fields.Str()), - "Ampere": fields.List(fields.Str()), - "Intel": fields.List(fields.Str()), - } - - class CollectionSchema(schema.ResponseSchema): """Collection - CPU和内存可支持的规格""" @@ -129,21 +139,12 @@ class MachineSizesSchema(schema.ResponseSchema): } -class FeatureModesSchema(schema.ResponseSchema): - """FeatureModes - 可以支持的模式类别""" - - fields = { - "MinimalCpuPlatform": fields.List(fields.Str()), - "Name": fields.Str(required=False, load_from="Name"), - "RelatedToImageFeature": fields.List(fields.Str()), - } - - -class FeaturesSchema(schema.ResponseSchema): - """Features - 虚机可支持的特性""" +class DisksSchema(schema.ResponseSchema): + """Disks - 磁盘信息""" fields = { - "Modes": fields.List(FeatureModesSchema()), + "BootDisk": fields.List(BootDiskInfoSchema()), + "DataDisk": fields.List(DataDiskInfoSchema()), "Name": fields.Str(required=False, load_from="Name"), } @@ -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 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 CpuPlatformStatusSchema(schema.ResponseSchema): + """CpuPlatformStatus -""" + + fields = { + "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 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 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,28 +354,23 @@ class IsolationGroupSchema(schema.ResponseSchema): } -class UHostDiskSetSchema(schema.ResponseSchema): - """UHostDiskSet - DescribeUHostInstance""" +class AvailableDiskTypesSchema(schema.ResponseSchema): + """AvailableDiskTypes - 可用的磁盘信息""" fields = { - "BackupType": fields.Str(required=False, load_from="BackupType"), - "DiskId": fields.Str(required=False, load_from="DiskId"), - "DiskType": fields.Str(required=True, load_from="DiskType"), - "Drive": fields.Str(required=False, load_from="Drive"), - "Encrypted": fields.Str(required=False, load_from="Encrypted"), - "IsBoot": fields.Str(required=True, load_from="IsBoot"), - "Name": fields.Str(required=False, load_from="Name"), - "Size": fields.Int(required=False, load_from="Size"), - "Type": fields.Str(required=False, load_from="Type"), + "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 - 主机密钥信息""" +class UDSetUDHostAttributeSchema(schema.ResponseSchema): + """UDSetUDHostAttribute - 私有专区对应的宿主机属性""" fields = { - "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), - "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), + "HostBinding": fields.Bool(required=False, load_from="HostBinding"), + "UDHostId": fields.Str(required=False, load_from="UDHostId"), + "UDSetId": fields.Str(required=False, load_from="UDSetId"), } @@ -282,21 +394,36 @@ class UHostIPSetSchema(schema.ResponseSchema): } -class UDSetUDHostAttributeSchema(schema.ResponseSchema): - """UDSetUDHostAttribute - 私有专区对应的宿主机属性""" +class SpotAttributeSchema(schema.ResponseSchema): + """SpotAttribute - 竞价实例属性""" 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"), + "RecycleTime": fields.Int(required=False, load_from="RecycleTime"), } -class SpotAttributeSchema(schema.ResponseSchema): - """SpotAttribute - 竞价实例属性""" +class UHostDiskSetSchema(schema.ResponseSchema): + """UHostDiskSet - DescribeUHostInstance""" fields = { - "RecycleTime": fields.Int(required=False, load_from="RecycleTime"), + "BackupType": fields.Str(required=False, load_from="BackupType"), + "DiskId": fields.Str(required=False, load_from="DiskId"), + "DiskType": fields.Str(required=True, load_from="DiskType"), + "Drive": fields.Str(required=False, load_from="Drive"), + "Encrypted": fields.Str(required=False, load_from="Encrypted"), + "IsBoot": fields.Str(required=True, load_from="IsBoot"), + "Name": fields.Str(required=False, load_from="Name"), + "Size": fields.Int(required=False, load_from="Size"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class UHostKeyPairSchema(schema.ResponseSchema): + """UHostKeyPair - 主机密钥信息""" + + fields = { + "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), + "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), } 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"