""" Code is generated by ucloud-model, DO NOT EDIT IT. """
import typing
from ucloud.core.client import Client
from ucloud.services.uhost.schemas import apis
[docs]class UHostClient(Client):
def __init__(
self, config: dict, transport=None, middleware=None, logger=None
):
super(UHostClient, self).__init__(config, transport, middleware, logger)
[docs] def copy_custom_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CopyCustomImage - 复制自制镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **SourceImageId** (str) - (Required) 源镜像Id, 参见 DescribeImage
- **TargetProjectId** (str) - (Required) 目标项目Id, 参见 GetProjectList
- **TargetImageDescription** (str) - 目标镜像描述
- **TargetImageName** (str) - 目标镜像名称
- **TargetRegion** (str) - 目标地域,不跨地域不用填
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **TargetImageId** (str) - 目标镜像Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CopyCustomImageRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CopyCustomImage", d, **kwargs)
return apis.CopyCustomImageResponseSchema().loads(resp)
[docs] def create_custom_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CreateCustomImage - 从指定UHost实例,生成自定义镜像。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ImageName** (str) - (Required) 镜像名称
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **ImageDescription** (str) - 镜像描述
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **ImageId** (str) - 镜像Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CreateCustomImageRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateCustomImage", d, **kwargs)
return apis.CreateCustomImageResponseSchema().loads(resp)
[docs] def create_isolation_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CreateIsolationGroup - 创建硬件隔离组,组内机器严格隔离在不同宿主机上。
**Request**
- **ProjectId** (str) - (Config) 项目id
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **GroupName** (str) - (Required) 硬件隔离组名称。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定隔离组名称。
- **Remark** (str) - 备注。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定隔离组备注。
**Response**
- **GroupId** (str) - 硬件隔离组id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CreateIsolationGroupRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateIsolationGroup", d, **kwargs)
return apis.CreateIsolationGroupResponseSchema().loads(resp)
[docs] def create_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CreateUHostInstance - 创建UHost实例。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ImageId** (str) - (Required) 镜像ID。 请通过 `DescribeImage <https://docs.ucloud.cn/api/uhost-api/describe_image.html>`_ 获取
- **LoginMode** (str) - (Required) 主机登陆模式。密码(默认选项): Password,密钥:KeyPair。
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **AlarmTemplateId** (int) - 告警模板id,如果传了告警模板id,且告警模板id正确,则绑定告警模板。绑定告警模板失败只会在后台有日志,不会影响创建主机流程,也不会在前端报错。
- **AutoDataDiskInit** (str) - 数据盘是否需要自动分区挂载。当镜像支持“Cloud-init”Feature时可填写此字段。取值 >“On” 自动挂载(默认值)> “Off” 不自动挂载。
- **CPU** (int) - 虚拟CPU核数。可选参数:1-64(具体机型与CPU的对应关系参照控制台)。默认值: 4。
- **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时预付费 \\ > Postpay,按小时后付费(支持关机不收费,目前仅部分可用区支持,请联系您的客户经理) \\Preemptive计费为抢占式实例 \\ 默认为月付
- **CouponId** (str) - 主机代金券ID。请通过DescribeCoupon接口查询,或登录用户中心查看
- **Disks** (list) - 见 **CreateUHostInstanceParamDisks** 模型定义
- **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关)
- **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100", "T4", "T4S","2080Ti","2080Ti-4C","1080Ti"],MachineType为G时必填
- **HotplugFeature** (bool) - 热升级特性。True为开启,False为未开启,默认False。
- **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。
- **KeyPairId** (str) - KeypairId 密钥对ID,LoginMode为KeyPair时此项必须
- **MachineType** (str) - 云主机机型(V2.0),在本字段和字段UHostType中,仅需要其中1个字段即可。枚举值["N", "C", "G", "O", "OS", "OPRO", "OMAX", "O.BM"]。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **MaxCount** (int) - 本次最大创建主机数量,取值范围是[1,100],默认值为1。
- **Memory** (int) - 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围参考控制台)。默认值:8192
- **MinimalCpuPlatform** (str) - 最低cpu平台,枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake";"Intel/CascadelakeR"; “Amd/Epyc2”,"Amd/Auto"],默认值是"Intel/Auto"。
- **Name** (str) - UHost实例名称。默认:UHost。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定实例名称。
- **NetCapability** (str) - 网络增强特性。枚举值:Normal(默认),不开启; Super,开启网络增强1.0; Ultra,开启网络增强2.0(仅支持部分可用区,请参考控制台)
- **NetworkInterface** (list) - 见 **CreateUHostInstanceParamNetworkInterface** 模型定义
- **Password** (str) - UHost密码。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定密码。密码需使用base64进行编码,举例如下:# echo -n Password1 | base64UGFzc3dvcmQx。
- **PrivateIp** (list) - 【数组】创建云主机时指定内网IP。若不传值,则随机分配当前子网下的IP。调用方式举例:PrivateIp.0=x.x.x.x。当前只支持一个内网IP。
- **Quantity** (int) - 购买时长。默认:值 1。按小时购买(Dynamic/Postpay)时无需此参数。 月付时,此参数传0,代表购买至月末。
- **SecurityGroupId** (str) - 防火墙ID,默认:Web推荐防火墙。如何查询SecurityGroupId请参见 `DescribeFirewall <https://docs.ucloud.cn/api/uhost-api/api/unet-api/describe_firewall.html>`_ 。
- **SubnetId** (str) - 子网 ID。默认为当前地域的默认子网。
- **Tag** (str) - 业务组。默认:Default(Default即为未分组)。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定业务组。
- **UHostType** (str) - 【建议后续不再使用】云主机机型(V1.0),在本字段和字段MachineType中,仅需要其中1个字段即可。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **UserData** (str) - 用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超过 16K;2、使用base64编码
- **VPCId** (str) - VPC ID。默认为当前地域的默认VPC。
**Response**
- **IPs** (list) - 【批量创建不会返回】IP信息
- **UHostIds** (list) - UHost实例Id集合
**Request Model**
**CreateUHostInstanceParamDisks**
- **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ > SNAPSHOT(SNAPSHOT模式目前仅在上海C支持),快照 \\当前磁盘支持的备份模式参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ ,默认值:NONE
- **CouponId** (str) - 云盘代金券id。不适用于系统盘/本地盘。请通过DescribeCoupon接口查询,或登录用户中心查看
- **Encrypted** (bool) - 【功能仅部分可用区开放,详询技术支持】磁盘是否加密。加密:true, 不加密: false加密必须传入对应的的KmsKeyId,默认值false
- **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
- **KmsKeyId** (str) - 【功能仅部分可用区开放,详询技术支持】kms key id。选择加密盘时必填。
- **Size** (int) - 磁盘大小,单位GB,必须是10GB的整数倍。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
- **Type** (str) - 磁盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
**CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH**
- **Area** (str) - 填写支持SSH访问IP的地区名称,如“洛杉矶”,“新加坡”,“香港”,“东京”,“华盛顿”,“法兰克福”。Area和AreaCode两者必填其中之一。
- **AreaCode** (str) - GlobalSSH的地区编码,格式为区域航空港国际通用代码。Area和AreaCode两者必填其中之一。
- **Port** (int) - SSH端口,1-65535且不能使用80,443端口
**CreateUHostInstanceParamNetworkInterfaceEIP**
- **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式必须指定0M带宽, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800]
- **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。
- **GlobalSSH** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH** 模型定义
- **OperatorName** (str) - 【若绑定EIP,此参数必填】弹性IP的线路。枚举值: 国际: International BGP: Bgp 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International
- **PayMode** (str) - 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式,默认为 "Bandwidth"
- **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效
**CreateUHostInstanceParamNetworkInterfaceIPv6**
**CreateUHostInstanceParamNetworkInterface**
- **CreateCernetIp** (bool) - 申请并绑定一个教育网EIP。True为申请并绑定,False为不会申请绑定,默认False。当前只支持具有HPC特性的机型。
- **EIP** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceEIP** 模型定义
**CreateUHostInstanceParamVirtualGpuGPUVirtualGpu**
**CreateUHostInstanceParamVirtualGpu**
**CreateUHostInstanceParamVolumes**
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CreateUHostInstanceRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateUHostInstance", d, **kwargs)
return apis.CreateUHostInstanceResponseSchema().loads(resp)
[docs] def create_uhost_key_pair(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CreateUHostKeyPair - 创建主机密钥对信息
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **KeyPairName** (str) - (Required) 密钥对名称。 由字母,数字,符号组成,长度为1-63位。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **KeyPair** (dict) - 见 **KeyPair** 模型定义
**Response Model**
**KeyPair**
- **CreateTime** (int) - 密钥对的创建时间,格式为Unix Timestamp。
- **KeyPairFingerPrint** (str) - 密钥对指纹。md5(ProjectId|KeyPairId|PublicKey)
- **KeyPairId** (str) - 密钥对ID。
- **KeyPairName** (str) - 密钥对名称。 长度为1~63个英文或中文字符。
- **PrivateKeyBody** (str) - 密钥对的私钥内容。只有创建接口才会返回。
- **ProjectId** (str) - 项目ID。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CreateUHostKeyPairRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateUHostKeyPair", d, **kwargs)
return apis.CreateUHostKeyPairResponseSchema().loads(resp)
[docs] def delete_isolation_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DeleteIsolationGroup - 删除硬件隔离组。
**Request**
- **ProjectId** (str) - (Config) 项目id
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **GroupId** (str) - (Required) 硬件隔离组id
**Response**
- **GroupId** (str) - 硬件隔离组id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DeleteIsolationGroupRequestSchema().dumps(d)
resp = self.invoke("DeleteIsolationGroup", d, **kwargs)
return apis.DeleteIsolationGroupResponseSchema().loads(resp)
[docs] def delete_uhost_key_pairs(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DeleteUHostKeyPairs - 删除一对或者多对密钥对。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **KeyPairIds** (list) - (Required) 密钥对ID,最多支持 100 对。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DeleteUHostKeyPairsRequestSchema().dumps(d)
resp = self.invoke("DeleteUHostKeyPairs", d, **kwargs)
return apis.DeleteUHostKeyPairsResponseSchema().loads(resp)
[docs] def describe_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeImage - 获取指定数据中心镜像列表,用户可通过指定操作系统类型,镜像Id进行过滤。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ImageId** (str) - 镜像Id
- **ImageType** (str) - 镜像类型。标准镜像:Base,镜像市场:Business, 自定义镜像:Custom,默认返回所有类型
- **Limit** (int) - 返回数据长度,默认为20
- **Offset** (int) - 列表起始位置偏移量,默认为0
- **OsType** (str) - 操作系统类型:Linux, Windows 默认返回所有类型
- **PriceSet** (int) - 是否返回价格:1返回,0不返回;默认不返回
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **Action** (str) - 操作名称
- **ImageSet** (list) - 见 **UHostImageSet** 模型定义
- **RetCode** (int) - 返回码
- **TotalCount** (int) - 满足条件的镜像总数
**Response Model**
**UHostImageSet**
- **CreateTime** (int) - 创建时间,格式为Unix时间戳
- **Features** (list) - 特殊状态标识, 目前包含NetEnhnced(网络增强1.0), NetEnhanced_Ultra](网络增强2.0), HotPlug(热升级), CloudInit, IPv6
- **FuncType** (str) - 行业镜像类型(仅行业镜像将返回这个值)
- **ImageDescription** (str) - 镜像描述
- **ImageId** (str) - 镜像ID
- **ImageName** (str) - 镜像名称
- **ImageSize** (int) - 镜像大小
- **ImageType** (str) - 镜像类型 标准镜像:Base, 行业镜像:Business,自定义镜像:Custom
- **IntegratedSoftware** (str) - 集成软件名称(仅行业镜像将返回这个值)
- **Links** (str) - 介绍链接(仅行业镜像将返回这个值)
- **MinimalCPU** (str) - 默认值为空'''。当CentOS 7.3/7.4/7.5等镜像会标记为“Broadwell”
- **OsName** (str) - 操作系统名称
- **OsType** (str) - 操作系统类型:Linux,Windows
- **State** (str) - 镜像状态, 可用:Available,制作中:Making, 不可用:Unavailable
- **Vendor** (str) - 供应商(仅行业镜像将返回这个值)
- **Zone** (str) - 可用区,参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeImageRequestSchema().dumps(d)
resp = self.invoke("DescribeImage", d, **kwargs)
return apis.DescribeImageResponseSchema().loads(resp)
[docs] def describe_isolation_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeIsolationGroup - 查询硬件隔离组列表。
**Request**
- **ProjectId** (str) - (Config) 项目id
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **GroupId** (str) - 待查的硬件隔离组id
- **Limit** (int) - 返回数据长度,默认为20,最大100
- **Offset** (int) - 列表起始位置偏移量,默认为0
**Response**
- **IsolationGroupSet** (list) - 见 **IsolationGroup** 模型定义
- **TotalCount** (int) - 硬件隔离组总数
**Response Model**
**IsolationGroup**
- **GroupId** (str) - 硬件隔离组id
- **GroupName** (str) - 硬件隔离组名称
- **Remark** (str) - 备注
- **SpreadInfoSet** (list) - 见 **SpreadInfo** 模型定义
**SpreadInfo**
- **UHostCount** (int) - 当前地域所有可用区中硬件隔离组中云主机的数量,不超过7。
- **Zone** (str) - 可用区信息
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeIsolationGroupRequestSchema().dumps(d)
resp = self.invoke("DescribeIsolationGroup", d, **kwargs)
return apis.DescribeIsolationGroupResponseSchema().loads(resp)
[docs] def describe_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUHostInstance - 获取主机或主机列表信息,并可根据数据中心,主机ID等参数进行过滤。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **IsolationGroup** (str) - 硬件隔离组id。通过硬件隔离组筛选主机。
- **Limit** (int) - 返回数据长度,默认为20,最大100
- **Offset** (int) - 列表起始位置偏移量,默认为0
- **SubnetId** (str) - 子网id。通过子网筛选主机。北京一地域无效。
- **Tag** (str) - 要查询的业务组名称
- **UDiskIdForAttachment** (str) - 要挂载的云盘id,过滤返回能被UDiskId挂载的云主机。目前主要针对rssd云盘使用
- **UHostIds** (list) - 【数组】UHost主机的资源ID,例如UHostIds.0代表希望获取信息 的主机1,UHostIds.1代表主机2。 如果不传入,则返回当前Region 所有符合条件的UHost实例。
- **VPCId** (str) - vpc id。通过VPC筛选主机。北京一地域无效。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **TotalCount** (int) - UHostInstance总数
- **UHostSet** (list) - 见 **UHostInstanceSet** 模型定义
**Response Model**
**UHostInstanceSet**
- **AutoRenew** (str) - 是否自动续费,自动续费:“Yes”,不自动续费:“No”
- **BasicImageId** (str) - 基础镜像ID(指当前自定义镜像的来源镜像)
- **BasicImageName** (str) - 基础镜像名称(指当前自定义镜像的来源镜像)
- **BootDiskState** (str) - 系统盘状态 Normal表示初始化完成;Initializing表示在初始化。仍在初始化的系统盘无法制作镜像。
- **CPU** (int) - 虚拟CPU核数,单位: 个
- **ChargeType** (str) - 计费模式,枚举值为: Year,按年付费; Month,按月付费; Dynamic,按需付费(需开启权限);Preemptive 为抢占式实例;
- **CloudInitFeature** (bool) - true,支持cloutinit方式初始化;false,不支持
- **CpuPlatform** (str) - 云主机CPU平台。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type#主机概念20版本>`_ 。
- **CreateTime** (int) - 创建时间,格式为Unix时间戳
- **DiskSet** (list) - 见 **UHostDiskSet** 模型定义
- **ExpireTime** (int) - 到期时间,格式为Unix时间戳
- **GPU** (int) - GPU个数
- **HostType** (str) - 【建议不再使用】主机系列:N2,表示系列2;N1,表示系列1
- **HotplugFeature** (bool) - true: 开启热升级; false,未开启热升级
- **HpcFeature** (bool) - true: 开启 hpc 系列功能;false: 未开启
- **IPSet** (list) - 见 **UHostIPSet** 模型定义
- **IPv6Feature** (bool) - true:有ipv6特性;false,没有ipv6特性
- **ImageId** (str) - 【建议不再使用】主机的系统盘ID。
- **IsolationGroup** (str) - 隔离组id,不在隔离组则返回""
- **KeyPair** (dict) - 见 **UHostKeyPair** 模型定义
- **LifeCycle** (str) - 主机的生命周期类型。目前仅支持Normal:普通;
- **MachineType** (str) - 云主机机型(新)。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type#主机概念20版本>`_ 。
- **Memory** (int) - 内存大小,单位: MB
- **Name** (str) - UHost实例名称
- **NetCapability** (str) - 网络增强。Normal: 无;Super: 网络增强1.0; Ultra: 网络增强2.0
- **NetworkState** (str) - 【建议不再使用】网络状态。 连接:Connected, 断开:NotConnected
- **OsName** (str) - 创建主机的最初来源镜像的操作系统名称(若直接通过基础镜像创建,此处返回和BasicImageName一致)
- **OsType** (str) - 操作系统类别。返回"Linux"或者"Windows"
- **RdmaClusterId** (str) - RDMA集群id,仅快杰云主机返回该值;其他类型云主机返回""。当云主机的此值与RSSD云盘的RdmaClusterId相同时,RSSD可以挂载到这台云主机。
- **Remark** (str) - 备注
- **RestrictMode** (str) - 仅抢占式实例返回,LowSpeed为低速模式,PowerOff为关机模式
- **State** (str) - 实例状态,枚举值:\\ >初始化: Initializing; \\ >启动中: Starting; \\> 运行中: Running; \\> 关机中: Stopping; \\ >关机: Stopped \\ >安装失败: Install Fail; \\ >重启中: Rebooting; \\ > 未知(空字符串,获取状态超时或出错):""
- **StorageType** (str) - 【建议不再使用】主机磁盘类型。 枚举值为:\\ > LocalDisk,本地磁盘; \\ > UDisk 云盘。\\只要有一块磁盘为本地盘,即返回LocalDisk。
- **SubnetType** (str) - 【建议不再使用】仅北京A的云主机会返回此字段。基础网络模式:Default;子网模式:Private
- **Tag** (str) - 业务组名称
- **TimemachineFeature** (str) - 【建议不再使用】数据方舟模式。枚举值:\\ > Yes: 开启方舟; \\ > no,未开启方舟
- **TotalDiskSpace** (int) - 总的数据盘存储空间。
- **UHostId** (str) - UHost实例ID
- **UHostType** (str) - 【建议不再使用】云主机机型(旧)。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
**UHostDiskSet**
- **BackupType** (str) - 备份方案。若开通了数据方舟,则为DATAARK
- **DiskId** (str) - 磁盘ID
- **DiskType** (str) - 磁盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
- **Drive** (str) - 磁盘盘符
- **Encrypted** (str) - "true": 加密盘 "false":非加密盘
- **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
- **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回)
- **Size** (int) - 磁盘大小,单位: GB
- **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 删除
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("DescribeUHostInstance", d, **kwargs)
return apis.DescribeUHostInstanceResponseSchema().loads(resp)
[docs] def describe_uhost_instance_snapshot(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUHostInstanceSnapshot -
**Request**
- **ProjectId** (str) - (Config)
- **Region** (str) - (Config)
- **UHostId** (str) - (Required)
- **Zone** (str) -
**Response**
- **SnapshotSet** (list) - 见 **UHostSnapshotSet** 模型定义
- **UhostId** (str) -
**Response Model**
**UHostSnapshotSet**
- **SnapshotName** (str) -
- **SnapshotState** (str) -
- **SnapshotTime** (str) -
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUHostInstanceSnapshotRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("DescribeUHostInstanceSnapshot", d, **kwargs)
return apis.DescribeUHostInstanceSnapshotResponseSchema().loads(resp)
[docs] def describe_uhost_key_pairs(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUHostKeyPairs - 查询一个或多个密钥对。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **KeyPairFingerPrint** (str) - 密钥对的指纹。
- **KeyPairName** (str) - 密钥对名称。
- **Limit** (int) - 返回数据长度,默认为20,最大100
- **Offset** (int) - 列表起始位置偏移量,默认为0
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **KeyPairs** (list) - 见 **KeyPairDesc** 模型定义
- **TotalCount** (int) - 密钥对总数
**Response Model**
**KeyPairDesc**
- **CreateTime** (int) - 密钥对的创建时间,格式为Unix Timestamp。
- **KeyPairFingerPrint** (str) - 密钥对指纹。md5(ProjectId|KeyPairId|PublicKey)
- **KeyPairId** (str) - 密钥对ID。
- **KeyPairName** (str) - 密钥对名称。 长度为1~63个英文或中文字符。
- **ProjectId** (str) - 项目ID。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUHostKeyPairsRequestSchema().dumps(d)
resp = self.invoke("DescribeUHostKeyPairs", d, **kwargs)
return apis.DescribeUHostKeyPairsResponseSchema().loads(resp)
[docs] def get_attached_disk_upgrade_price(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetAttachedDiskUpgradePrice - 获取挂载磁盘的升级价格
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **DiskId** (str) - (Required) 磁盘ID。参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_ 返回值中的DiskSet。
- **DiskSpace** (int) - (Required) 磁盘大小,单位GB,步长为10。取值范围需大于当前磁盘大小,最大值请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
- **UHostId** (str) - (Required) UHost实例ID。 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_ 。
- **BackupMode** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\> SNAPSHOT(SNAPSHOT模式目前仅在上海C支持),快照 \\ 当前磁盘支持的备份模式参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认值为当前的备份模式。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **Price** (float) - 升级差价。精度为小数点后2位。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.GetAttachedDiskUpgradePriceRequestSchema().dumps(d)
resp = self.invoke("GetAttachedDiskUpgradePrice", d, **kwargs)
return apis.GetAttachedDiskUpgradePriceResponseSchema().loads(resp)
[docs] def get_uhost_instance_price(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetUHostInstancePrice - 根据UHost实例配置,获取UHost实例的价格。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **CPU** (int) - (Required) CPU核数。可选参数:1-64。可选范围参照控制台。默认值: 4
- **Count** (int) - (Required) 购买台数,范围[1,5]
- **Memory** (int) - (Required) 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围参照好控制台)。默认值:8192
- **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时付费 // >Preemptive 抢占式实例 \\ 如果不传某个枚举值,默认返回年付、月付、时付的价格组合集。
- **CpuPlatform** (str) - 取值"Intel" "Amd",默认值“Intel”
- **Disks** (list) - 见 **GetUHostInstancePriceParamDisks** 模型定义
- **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段。
- **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100", "T4","T4S","2080Ti","2080Ti-4C","1080Ti"]
- **ImageId** (str) - 镜像Id,可通过 `DescribeImage <https://docs.ucloud.cn/api/uhost-api/describe_image.html>`_ 获取镜像ID, 如果镜像ID不传,系统盘大小必传
- **MachineType** (str) - 云主机机型(V2版本概念)。枚举值["N", "C", "G", "O", "OS", "OPRO", "OMAX", "O.BM"]。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **NetCapability** (str) - 网络增强。枚举值:Normal,不开启; Super,开启网络增强1.0。 默认值为Normal。
- **Quantity** (int) - 购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。
- **UHostType** (str) - 【待废弃】云主机机型(V1版本概念)。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **PriceSet** (list) - 见 **UHostPriceSet** 模型定义
**Request Model**
**GetUHostInstancePriceParamDisks**
- **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ > SNAPSHOT,快照\\ 当前磁盘支持的备份模式参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_
- **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。
- **Size** (int) - 磁盘大小,单位GB。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
- **Type** (str) - 磁盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
**GetUHostInstancePriceParamVolumes**
**GetUHostInstancePriceParamVirtualGpu**
**Response Model**
**UHostPriceSet**
- **ChargeType** (str) - 计费类型。Year,Month,Dynamic
- **ListPrice** (float) - 产品列表价。
- **OriginalPrice** (float) - 限时优惠的折前原价(即列表价乘以商务折扣后的单价)。
- **Price** (float) - 价格,单位: 元,保留小数点后两位有效数字
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.GetUHostInstancePriceRequestSchema().dumps(d)
resp = self.invoke("GetUHostInstancePrice", d, **kwargs)
return apis.GetUHostInstancePriceResponseSchema().loads(resp)
[docs] def get_uhost_instance_vnc_info(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetUHostInstanceVncInfo - 获取指定UHost实例的管理VNC配置详细信息。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
- **VncIP** (str) - Vnc登录IP
- **VncPassword** (str) - Vnc 登录密码
- **VncPort** (int) - Vnc登录端口
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.GetUHostInstanceVncInfoRequestSchema().dumps(d)
resp = self.invoke("GetUHostInstanceVncInfo", d, **kwargs)
return apis.GetUHostInstanceVncInfoResponseSchema().loads(resp)
[docs] def get_uhost_upgrade_price(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetUHostUpgradePrice - 获取UHost实例升级配置的价格。可选配置范围请参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID。 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_ 。
- **CPU** (int) - 虚拟CPU核数。可选参数:1-64(可选范围参考控制台)。默认值为当前实例的CPU核数。
- **Memory** (int) - 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围参考控制台)。默认值为当前实例的内存大小。
- **NetCapValue** (int) - 网卡升降级(1,表示升级,2表示降级,0表示不变)
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **OriginalPrice** (float) - 限时优惠的折前原价
- **Price** (float) - 规格调整差价。精确到小数点后2位。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.GetUHostUpgradePriceRequestSchema().dumps(d)
resp = self.invoke("GetUHostUpgradePrice", d, **kwargs)
return apis.GetUHostUpgradePriceResponseSchema().loads(resp)
[docs] def import_custom_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ImportCustomImage - 把UFile的镜像文件导入到UHost,生成自定义镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **Auth** (bool) - (Required) 是否授权。必须填true
- **Format** (str) - (Required) 镜像格式,可选RAW、VHD、VMDK、qcow2
- **ImageName** (str) - (Required) 镜像名称
- **OsName** (str) - (Required) 操作系统详细版本,请参考控制台的镜像版本;OsType为Other时,输入参数为Other
- **OsType** (str) - (Required) 操作系统平台,比如CentOS、Ubuntu、Windows、RedHat等,请参考控制台的镜像版本;若导入控制台上没有的操作系统,参数为Other
- **UFileUrl** (str) - (Required) UFile私有空间地址
- **ImageDescription** (str) - 镜像描述
**Response**
- **ImageId** (str) - 镜像Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ImportCustomImageRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("ImportCustomImage", d, **kwargs)
return apis.ImportCustomImageResponseSchema().loads(resp)
[docs] def import_uhost_key_pairs(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ImportUHostKeyPairs - 导入密钥对后,仅保管公钥部分,需自行妥善保存密钥对的私钥部分。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **KeyPairName** (str) - (Required) 密钥对名称。由字母,数字,符号组成,长度为1-63位。
- **PublicKeyBody** (str) - (Required) 密钥对的公钥内容。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **KeyPairFingerPrint** (str) - 密钥对指纹。根据RFC4716定义的公钥指纹格式,采用MD5信息摘要算法。算法处理的具体信息格式:`ProjectIdKeyPairId|PublicKeyBody`。
- **KeyPairId** (str) - 密钥对标识
- **KeyPairName** (str) - 密钥对名称
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ImportUHostKeyPairsRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("ImportUHostKeyPairs", d, **kwargs)
return apis.ImportUHostKeyPairsResponseSchema().loads(resp)
[docs] def leave_isolation_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""LeaveIsolationGroup - 移除硬件隔离组中的主机
**Request**
- **ProjectId** (str) - (Config) 项目id
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **GroupId** (str) - (Required) 硬件隔离组id
- **UHostId** (str) - (Required) 主机id
- **Zone** (str) - 可用区信息
**Response**
- **UHostId** (str) - 主机id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.LeaveIsolationGroupRequestSchema().dumps(d)
resp = self.invoke("LeaveIsolationGroup", d, **kwargs)
return apis.LeaveIsolationGroupResponseSchema().loads(resp)
[docs] def modify_uhost_ip(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ModifyUHostIP - 修改云主机内网 IP 地址
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写时为默认项目。请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **PresentIpAddress** (str) - (Required) 需要修改为的 IP 地址。新的IP地址和旧IP地址必须属于统一子网,且和主机内部的配置文件一致。
- **UHostId** (str) - (Required) 指定云主机 ID。
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **PreviousIpAddress** (str) - 所需修改的原 IP 地址 ,当云主机只有一个IP地址时,此参数不必填写。
**Response**
- **Message** (str) - 输出错误的信息
- **UHostId** (str) - 目标云主机 ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ModifyUHostIPRequestSchema().dumps(d)
resp = self.invoke("ModifyUHostIP", d, **kwargs)
return apis.ModifyUHostIPResponseSchema().loads(resp)
[docs] def modify_uhost_instance_name(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ModifyUHostInstanceName - 修改指定UHost实例名称,需要给出数据中心,UHostId,及新的实例名称。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **Name** (str) - UHost实例名称
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ModifyUHostInstanceNameRequestSchema().dumps(d)
resp = self.invoke("ModifyUHostInstanceName", d, **kwargs)
return apis.ModifyUHostInstanceNameResponseSchema().loads(resp)
[docs] def modify_uhost_instance_tag(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ModifyUHostInstanceTag - 修改指定UHost实例业务组标识。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **Tag** (str) - 业务组名称
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ModifyUHostInstanceTagRequestSchema().dumps(d)
resp = self.invoke("ModifyUHostInstanceTag", d, **kwargs)
return apis.ModifyUHostInstanceTagResponseSchema().loads(resp)
[docs] def poweroff_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""PoweroffUHostInstance - 直接关闭UHost实例电源,无需等待实例正常关闭。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost的实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.PoweroffUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("PoweroffUHostInstance", d, **kwargs)
return apis.PoweroffUHostInstanceResponseSchema().loads(resp)
[docs] def reboot_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""RebootUHostInstance - 重新启动UHost实例,需要指定数据中心及UHostID两个参数的值。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **DiskPassword** (str) - 加密盘密码
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.RebootUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("RebootUHostInstance", d, **kwargs)
return apis.RebootUHostInstanceResponseSchema().loads(resp)
[docs] def reinstall_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ReinstallUHostInstance - 重新安装指定UHost实例的操作系统
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例资源ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **AutoDataDiskInit** (str) - 数据盘是否需要自动分区挂载。当镜像支持Cloud-init Feature时可填写此字段。取值“On”(默认值), “Off”
- **BootDiskSpace** (int) - 系统盘大小。 单位:GB, 范围[20,100], 步长:10
- **ImageId** (str) - 镜像Id,默认使用原镜像 参见 `DescribeImage <https://docs.ucloud.cn/api/uhost-api/describe_image.html>`_
- **KeyPairId** (str) - KeypairId 密钥对ID,LoginMode为KeyPair时此项必须。
- **LoginMode** (str) - 主机登陆模式。密码(默认选项): Password,密钥 KeyPair。
- **Password** (str) - 如果重装UHost实例时LoginMode为Password,则必须填写,如果LoginMode为KeyPair,不需要填写 (密码格式使用BASE64编码;举例如下:# echo -n Password1 | base64UGFzc3dvcmQx。)
- **ReserveDisk** (str) - 是否保留数据盘,保留:Yes,不报留:No, 默认:Yes;如果是从Windows重装为Linux或反之,则无法保留数据盘(该参数目前仅对本地数据盘起作用)
- **UserData** (str) - cloudinit初始化使用。注意:1、总数据量大小不超多16K 2、使用base64编码
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例资源ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ReinstallUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("ReinstallUHostInstance", d, **kwargs)
return apis.ReinstallUHostInstanceResponseSchema().loads(resp)
[docs] def reset_uhost_instance_password(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ResetUHostInstancePassword - 重置UHost实例的管理员密码。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **Password** (str) - (Required) UHost新密码(密码格式使用BASE64编码)
- **UHostId** (str) - (Required) UHost实例ID
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ResetUHostInstancePasswordRequestSchema().dumps(d)
resp = self.invoke("ResetUHostInstancePassword", d, **kwargs)
return apis.ResetUHostInstancePasswordResponseSchema().loads(resp)
[docs] def resize_attached_disk(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ResizeAttachedDisk - 修改挂载的磁盘大小,包含系统盘和数据盘
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **DiskId** (str) - (Required) 磁盘ID。参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_ 返回值中的DiskSet。
- **DiskSpace** (int) - (Required) 磁盘大小,单位GB,步长为10。取值范围需大于当前磁盘大小,最大值请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。
- **UHostId** (str) - (Required) UHost实例ID。 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_ 。
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **DryRun** (bool) - 用于测试磁盘是否支持在线扩容。DryRun=true,不会执行实际操作,只会返回操作的预期结果。DryRun = false ,正常执行扩容操作。
**Response**
- **DiskId** (str) - 改配成功的磁盘id
- **NeedRestart** (bool) - 扩容后的状态。NeedRestart = true,必须关闭后启动实例才能使用扩容的磁盘空间。NeedRestart = false,磁盘扩容后无需重启操作。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ResizeAttachedDiskRequestSchema().dumps(d)
resp = self.invoke("ResizeAttachedDisk", d, **kwargs)
return apis.ResizeAttachedDiskResponseSchema().loads(resp)
[docs] def resize_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **CPU** (int) - 虚拟CPU核数。可选参数:1-240(可选范围与UHostType相关)。默认值为当前实例的CPU核数
- **Memory** (int) - 内存大小。单位:MB。范围 :[1024, 1966080],取值为1024的倍数(可选范围与UHostType相关)。默认值为当前实例的内存大小。
- **NetCapValue** (int) - 网卡升降级(1,表示升级,2表示降级,0表示不变)
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ResizeUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("ResizeUHostInstance", d, **kwargs)
return apis.ResizeUHostInstanceResponseSchema().loads(resp)
[docs] def start_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""StartUHostInstance - 启动处于关闭状态的UHost实例,需要指定数据中心及UHostID两个参数的值。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **DiskPassword** (str) - 加密盘密码
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.StartUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("StartUHostInstance", d, **kwargs)
return apis.StartUHostInstanceResponseSchema().loads(resp)
[docs] def stop_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""StopUHostInstance - 指停止处于运行状态的UHost实例,需指定数据中心及UhostID。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **UHostId** (str) - UHost实例ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.StopUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("StopUHostInstance", d, **kwargs)
return apis.StopUHostInstanceResponseSchema().loads(resp)
[docs] def terminate_custom_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""TerminateCustomImage - 删除用户自定义镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ImageId** (str) - (Required) 自制镜像ID 参见 `DescribeImage <https://docs.ucloud.cn/api/uhost-api/describe_image.html>`_
**Response**
- **ImageId** (str) - 自制镜像Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.TerminateCustomImageRequestSchema().dumps(d)
resp = self.invoke("TerminateCustomImage", d, **kwargs)
return apis.TerminateCustomImageResponseSchema().loads(resp)
[docs] def terminate_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""TerminateUHostInstance - 删除指定数据中心的UHost实例。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostId** (str) - (Required) UHost资源Id 参见 `DescribeUHostInstance <https://docs.ucloud.cn/api/uhost-api/describe_uhost_instance.html>`_
- **ReleaseEIP** (bool) - 删除主机时是否释放绑定的EIP。默认为false。
- **ReleaseUDisk** (bool) - 删除主机时是否同时删除挂载的数据盘。默认为false。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **InRecycle** (str) - 用于判断主机删除时是否进入回收站。放入回收站:"Yes", 彻底删除:“No”。
- **UHostId** (str) - UHost 实例 Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.TerminateUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("TerminateUHostInstance", d, **kwargs)
return apis.TerminateUHostInstanceResponseSchema().loads(resp)
[docs] def upgrade_to_ark_uhost_instance(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""UpgradeToArkUHostInstance - 普通升级为方舟机型
**Request**
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **UHostIds** (list) - (Required) UHost主机的资源ID,例如UHostIds.0代表希望升级的主机1,UHostIds.1代表主机2。
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **CouponId** (str) - 代金券ID 请参考DescribeCoupon接口
**Response**
- **UHostSet** (list) - UHost主机的资源ID数组
"""
# build request
d = {
"Region": self.config.region,
}
req and d.update(req)
d = apis.UpgradeToArkUHostInstanceRequestSchema().dumps(d)
resp = self.invoke("UpgradeToArkUHostInstance", d, **kwargs)
return apis.UpgradeToArkUHostInstanceResponseSchema().loads(resp)