diff --git a/Makefile b/Makefile index 3756938..227eb03 100644 --- a/Makefile +++ b/Makefile @@ -85,4 +85,5 @@ migrate: PYTHONPATH=. python scripts/migrate --source .migrate/docs --output docs PYTHONPATH=. python scripts/migrate --source .migrate/examples --output examples PYTHONPATH=. python scripts/migrate --source .migrate/README.md --output README.md + sed -i 's/unicode/unicode # noqa: F821/g' ucloud/core/utils/compat.py rm -rf .migrate diff --git a/docs/services.rst b/docs/services.rst index 36846ef..dd076ac 100644 --- a/docs/services.rst +++ b/docs/services.rst @@ -1,6 +1,12 @@ UCloud SDK Services =================== +PathX +----- + +.. autoclass:: ucloud.services.pathx.client.PathXClient + :members: + StepFlow -------- diff --git a/ucloud/client.py b/ucloud/client.py index 348f0a0..8a4093f 100644 --- a/ucloud/client.py +++ b/ucloud/client.py @@ -9,6 +9,13 @@ def __init__(self, config, transport=None, middleware=None): self._config = config super(Client, self).__init__(config, transport, middleware) + def pathx(self): + from ucloud.services.pathx.client import PathXClient + + return PathXClient( + self._config, self.transport, self.middleware, self.logger + ) + def stepflow(self): from ucloud.services.stepflow.client import StepFlowClient diff --git a/ucloud/services/ucdn/client.py b/ucloud/services/ucdn/client.py index 0f439c2..59e1393 100644 --- a/ucloud/services/ucdn/client.py +++ b/ucloud/services/ucdn/client.py @@ -24,7 +24,7 @@ def batch_describe_new_ucdn_domain(self, req=None, **kwargs): - **Arrearage** (list) - 标识欠费的数组,数组含有下列元素值, 1=国内流量有欠费 2=国外流量有欠费 3=国内带宽有欠费 4=国外带宽有欠费 - **ChargeType** (int) - 当前计费方式,10=流量付费 20=带宽日峰值 30=按月后付费 - - **DomainList** (list) - 见 **DomainInfo** 模型定义 + - **DomainSet** (list) - 见 **DomainInfo** 模型定义 - **LastChargeType** (int) - 表示最后一次切换的计费方式,10=流量付费 20=带宽日峰值 30=按月后付费 40=未选择计费方式 - **MaxDomainNum** (int) - 最大域名数量,默认20 - **TotalCount** (int) - 满足条件的域名个数 @@ -32,21 +32,21 @@ def batch_describe_new_ucdn_domain(self, req=None, **kwargs): **Response Model** - **AccessConf** - - - **IpBlacklist** (str) - 多个ip用逗号隔开 - **CacheConf** - - **CacheBehavior** (bool) - 是否缓存,true为缓存,false为不缓存。为false的情况下,CacheTTL和CacheUnit强制不生效 + - **CacheBehavior** (int) - 是否缓存,1为缓存,0为不缓存。为0的情况下,CacheTTL和CacheUnit强制不生效 - **CacheTTL** (int) - 缓存时间 - **CacheUnit** (str) - 缓存时间的单位。sec(秒),min(分钟),hour(小时),day(天) - **Description** (str) - 缓存规则描述 - - **FollowOriginRule** (bool) - 是否优先遵循源站头部缓存策略,false为不优先遵循源站,true为优先遵循源站缓存头部。默认为false + - **FollowOriginRule** (int) - 是否优先遵循源站头部缓存策略,0为不优先遵循源站,1为优先遵循源站缓存头部。默认为0 - **HttpCodePattern** (str) - 状态码默认情况只缓存200类状态码,支持正则 - - **IgnoreQueryString** (bool) - 是否忽略参数缓存(false为不忽略,true为忽略,默认为false) + - **IgnoreQueryString** (int) - 是否忽略参数缓存(0为不忽略,1为忽略,默认为0) - **PathPattern** (str) - 路径模式,支持正则 + **AccessConf** + + - **IpBlacklist** (str) - 多个ip用逗号隔开 + **DomainInfo** - **AccessConf** (dict) - 见 **AccessConf** 模型定义 diff --git a/ucloud/services/ucdn/schemas/apis.py b/ucloud/services/ucdn/schemas/apis.py index 4dab73e..ab36d8c 100644 --- a/ucloud/services/ucdn/schemas/apis.py +++ b/ucloud/services/ucdn/schemas/apis.py @@ -35,8 +35,8 @@ class BatchDescribeNewUcdnDomainResponseSchema(schema.ResponseSchema): fields.Str(), required=False, load_from="Arrearage" ), "ChargeType": fields.Int(required=False, load_from="ChargeType"), - "DomainList": fields.List( - models.DomainInfoSchema(), required=False, load_from="DomainList" + "DomainSet": fields.List( + models.DomainInfoSchema(), required=False, load_from="DomainSet" ), "LastChargeType": fields.Int( required=False, load_from="LastChargeType" diff --git a/ucloud/services/ucdn/schemas/models.py b/ucloud/services/ucdn/schemas/models.py index 1b53d5b..3a3dad8 100644 --- a/ucloud/services/ucdn/schemas/models.py +++ b/ucloud/services/ucdn/schemas/models.py @@ -4,37 +4,37 @@ from ucloud.core.typesystem import schema, fields -class AccessConfSchema(schema.ResponseSchema): - """ AccessConf - 访问控制 - """ - - fields = { - "IpBlacklist": fields.Str(required=False, load_from="IpBlacklist") - } - - class CacheConfSchema(schema.ResponseSchema): """ CacheConf - 缓存配置 """ fields = { - "CacheBehavior": fields.Bool(required=False, load_from="CacheBehavior"), + "CacheBehavior": fields.Int(required=False, load_from="CacheBehavior"), "CacheTTL": fields.Int(required=False, load_from="CacheTTL"), "CacheUnit": fields.Str(required=False, load_from="CacheUnit"), "Description": fields.Str(required=False, load_from="Description"), - "FollowOriginRule": fields.Bool( + "FollowOriginRule": fields.Int( required=False, load_from="FollowOriginRule" ), "HttpCodePattern": fields.Str( required=False, load_from="HttpCodePattern" ), - "IgnoreQueryString": fields.Bool( + "IgnoreQueryString": fields.Int( required=False, load_from="IgnoreQueryString" ), "PathPattern": fields.Str(required=False, load_from="PathPattern"), } +class AccessConfSchema(schema.ResponseSchema): + """ AccessConf - 访问控制 + """ + + fields = { + "IpBlacklist": fields.Str(required=False, load_from="IpBlacklist") + } + + class DomainInfoSchema(schema.ResponseSchema): """ DomainInfo - 域名配置 """ diff --git a/ucloud/services/uhost/client.py b/ucloud/services/uhost/client.py index fa4a327..a4edbd7 100644 --- a/ucloud/services/uhost/client.py +++ b/ucloud/services/uhost/client.py @@ -73,37 +73,39 @@ def create_uhost_instance(self, req=None, **kwargs): - **AlarmTemplateId** (int) - 告警模板id,如果传了告警模板id,且告警模板id正确,则绑定告警模板。绑定告警模板失败只会在后台有日志,不会影响创建主机流程,也不会在前端报错。 - **BootDiskSpace** (int) - 【待废弃,不建议调用】系统盘大小。 单位:GB, 范围[20,100], 步长:10 - **CPU** (int) - 虚拟CPU核数。可选参数:1-64(具体机型与CPU的对应关系参照控制台)。默认值: 4。 - - **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时付费 \\ 默认为月付 + - **ChargeType** (str) - 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时预付费 \\ > Postpay,按小时后付费(支持关机不收费,目前仅部分可用区支持,请联系您的客户经理) \\ 默认为月付 - **CouponId** (str) - 主机代金券ID。请通过DescribeCoupon接口查询,或登录用户中心查看 - **DiskPassword** (str) - 【待废弃,不建议调用】加密盘的密码。若输入此字段,自动选择加密盘。加密盘需要权限位。 - **DiskSpace** (int) - 【待废弃,不建议调用】数据盘大小。 单位:GB, 范围[0,8000], 步长:10, 默认值:20,云盘支持0-8000;本地普通盘支持0-2000;本地SSD盘(包括所有GPU机型)支持100-1000 - **Disks** (list) - 见 **CreateUHostInstanceParamDisks** 模型定义 - - **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与UHostType相关) - - **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100"] + - **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关) + - **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100"],MachineType为G时必填 + - **HostIp** (str) - 指定宿主机创建,此时SetId为必填 - **HostType** (str) - 【已废弃】宿主机类型,N2,N1 - - **HotplugFeature** (bool) - 是否开启热升级特性。True为开启,False为未开启,默认False。 + - **HotplugFeature** (bool) - 热升级特性。True为开启,False为未开启,默认False。 - **InstallAgent** (str) - 【暂不支持】是否安装UGA。'yes': 安装;其他或者不填:不安装。 - **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。 - **KeyPair** (str) - 【暂不支持】Keypair公钥,LoginMode为KeyPair时此项必须 - - **MachineType** (str) - 云主机机型(V2.0),枚举值["N", "C", "G", "O"]。参考 `云主机机型说明 `_ 。 - - **MaxCount** (int) - 【批量创建主机时必填】最大创建主机数量,取值范围是[1,100]; + - **MachineType** (str) - 云主机机型(V2.0),在本字段和字段UHostType中,仅需要其中1个字段即可;当填写了MachineType时,必须填写MinimalCpuPlatform字段。枚举值["N", "C", "G", "O"]。参考 `云主机机型说明 `_ 。 + - **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"。 - **Name** (str) - UHost实例名称。默认:UHost。请遵照 `字段规范 `_ 设定实例名称。 - - **NetCapability** (str) - 网络增强。枚举值:Normal(默认),不开启; Super,开启网络增强1.0; Ultra,开启网络增强2.0(仅支持部分可用区,请参考控制台) + - **NetCapability** (str) - 网络增强特性。枚举值:Normal(默认),不开启; Super,开启网络增强1.0; Ultra,开启网络增强2.0(仅支持部分可用区,请参考控制台) - **NetworkId** (str) - 【已废弃】网络ID(VPC2.0情况下无需填写)。VPC1.0情况下,若不填写,代表优先选择基础网络; 若填写,代表选择子网。参见DescribeSubnet。 - **NetworkInterface** (list) - 见 **CreateUHostInstanceParamNetworkInterface** 模型定义 - **PrivateIp** (list) - 【数组】创建云主机时指定内网IP。若不传值,则随机分配当前子网下的IP。调用方式举例:PrivateIp.0=x.x.x.x。当前只支持一个内网IP。 - **PrivateMac** (str) - 【批量创建该参数无效】【内部字段】创建云主机时指定Mac。调用方式举例:PrivateMac="xx:xx:xx:xx:xx:xx"。 - - **Quantity** (int) - 购买时长。默认:值 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表购买至月末。 + - **Quantity** (int) - 购买时长。默认:值 1。按小时购买(Dynamic/Postpay)时无需此参数。 月付时,此参数传0,代表购买至月末。 - **ResourceType** (int) - 【内部参数】资源类型 - - **SecurityGroupId** (str) - 防火墙Id,默认:Web推荐防火墙。如何查询SecurityGroupId请参见 `DescribeSecurityGroup `_ 。 - - **SetId** (int) - + - **SecurityGroupId** (str) - 防火墙ID,默认:Web推荐防火墙。如何查询SecurityGroupId请参见 `DescribeFirewall `_ 。 + - **SetId** (int) - 指定set创建 - **StorageType** (str) - 【待废弃,不建议调用】磁盘类型,同时设定系统盘和数据盘的磁盘类型。枚举值为:LocalDisk,本地磁盘; UDisk,云硬盘;默认为LocalDisk。仅部分可用区支持云硬盘方式的主机存储方式,具体请查询控制台。 - **SubnetId** (str) - 子网 ID。默认为当前地域的默认子网。 - **Tag** (str) - 业务组。默认:Default(Default即为未分组)。请遵照 `字段规范 `_ 设定业务组。 - **TimemachineFeature** (str) - 【待废弃,不建议调用】是否开启方舟特性。Yes为开启方舟,No为关闭方舟。目前仅选择普通本地盘+普通本地盘 或 SSD云盘+普通云盘的组合支持开启方舟。 - - **UHostType** (str) - 【建议后续不再使用】云主机机型V1.0。参考 `云主机机型说明 `_ 。 + - **UHostType** (str) - 【建议后续不再使用】云主机机型(V1.0),在本字段和字段MachineType中,仅需要其中1个字段即可。参考 `云主机机型说明 `_ 。 + - **UserData** (str) - 【即将支持】用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超多16K;2、使用base64编码 - **UserDataScript** (str) - 【暂不支持】cloudinit方式下,用户初始化脚本 - **VPCId** (str) - VPC ID。默认为当前地域的默认VPC。 @@ -116,19 +118,24 @@ def create_uhost_instance(self, req=None, **kwargs): **CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSH** - - **Area** (str) - 填写支持SSH访问IP的地区名称,如“洛杉矶”,“新加坡”,“香港”,“东京”,“华盛顿”,“法兰克福”。Area和AreaCode两者必填一个 - - **AreaCode** (str) - GlobalSSH的。AreaCode, 区域航空港国际通用代码。Area和AreaCode两者必填一个 + - **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接口查询,或登录用户中心查看 + - **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 + - **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** + + - **Adress** (str) - 第N个网卡对应的IPv6地址,默认不分配IPv6,“Auto”自动分配,不为空的其他字符串为实际要分配的IPv6地址 + - **ShareBandwidthId** (str) - 第N块网卡中IPv6对应的共享带宽id,默认不带外网 + **CreateUHostInstanceParamDisks** - **BackupType** (str) - 磁盘备份方案。枚举值:\\ > NONE,无备份 \\ > DATAARK,数据方舟 \\ 当前磁盘支持的备份模式参考 `磁盘类型 `_ @@ -136,12 +143,13 @@ def create_uhost_instance(self, req=None, **kwargs): - **Encrypted** (bool) - 【功能仅部分可用区开放,详询技术支持】磁盘是否加密。加密:true, 不加密: false加密必须传入对应的的KmsKeyId - **IsBoot** (str) - 是否是系统盘。枚举值:\\ > True,是系统盘 \\ > False,是数据盘(默认)。Disks数组中有且只能有一块盘是系统盘。 - **KmsKeyId** (str) - 【功能仅部分可用区开放,详询技术支持】kms key id。选择加密盘时必填。 - - **Size** (int) - 磁盘大小,单位GB。请参考 `磁盘类型 `_ 。 + - **Size** (int) - 磁盘大小,单位GB,必须是10GB的整数倍。请参考 `磁盘类型 `_ 。 - **Type** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。 **CreateUHostInstanceParamNetworkInterface** - **EIP** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceEIP** 模型定义 + - **IPv6** (dict) - 见 **CreateUHostInstanceParamNetworkInterfaceIPv6** 模型定义 """ d = {"ProjectId": self.config.project_id, "Region": self.config.region} @@ -176,7 +184,7 @@ def describe_image(self, req=None, **kwargs): **UHostImageSet** - **CreateTime** (int) - 创建时间,格式为Unix时间戳 - - **Features** (list) - 特殊状态标识, 目前包含NetEnhnced(网络增强1.0), NetEnhanced_Ultra](网络增强2.0) + - **Features** (list) - 特殊状态标识, 目前包含NetEnhnced(网络增强1.0), NetEnhanced_Ultra](网络增强2.0),HotPlug(热升级),CloudInit - **FuncType** (str) - 行业镜像类型(仅行业镜像将返回这个值) - **ImageDescription** (str) - 镜像描述 - **ImageId** (str) - 镜像ID @@ -190,7 +198,7 @@ def describe_image(self, req=None, **kwargs): - **OsType** (str) - 操作系统类型:Liunx,Windows - **State** (str) - 镜像状态, 可用:Available,制作中:Making, 不可用:Unavailable - **Vendor** (str) - 供应商(仅行业镜像将返回这个值) - - **Zone** (str) - 可用区,参见 `可用区列表 `_ | + - **Zone** (str) - 可用区,参见 `可用区列表 `_ """ d = {"ProjectId": self.config.project_id, "Region": self.config.region} @@ -199,6 +207,42 @@ def describe_image(self, req=None, **kwargs): resp = self.invoke("DescribeImage", d, **kwargs) return apis.DescribeImageResponseSchema().loads(resp) + def describe_isolation_group(self, req=None, **kwargs): + """ DescribeIsolationGroup - 查询硬件隔离组列表。 + + **Request** + + - **ProjectId** (str) - (Config) 项目id + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **GroupId** (str) - 待查的硬件隔离组id + - **Limit** (int) - 返回数据长度,默认为20,最大100 + - **Offset** (int) - 列表起始位置偏移量,默认为0 + + **Response** + + - **IsolationGroupSet** (list) - 见 **IsolationGroup** 模型定义 + + **Response Model** + + **SpreadInfo** + + - **UHostCount** (int) - 可用区中硬件隔离组中云主机的数量,不超过7。 + - **Zone** (str) - 可用区信息 + + **IsolationGroup** + + - **GroupId** (str) - 硬件隔离组id + - **GroupName** (str) - 硬件隔离组名称 + - **Remark** (str) - 备注 + - **SpreadInfoSet** (list) - 见 **SpreadInfo** 模型定义 + + """ + 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) + def describe_uhost_instance(self, req=None, **kwargs): """ DescribeUHostInstance - 获取主机或主机列表信息,并可根据数据中心,主机ID等参数进行过滤。 @@ -218,6 +262,8 @@ def describe_uhost_instance(self, req=None, **kwargs): **Response** + - **Action** (str) - 操作名称 + - **RetCode** (int) - 返回码 - **TotalCount** (int) - UHostInstance总数 - **UHostSet** (list) - 见 **UHostInstanceSet** 模型定义 @@ -237,13 +283,15 @@ def describe_uhost_instance(self, req=None, **kwargs): **UHostIPSet** - - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) - - **Default** (str) - 是否默认的弹性网卡的信息。true: 是默认弹性网卡;其他值:不是。 + - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) + - **Default** (str) - 【暂未支持】是否为默认网卡。True: 是默认网卡;其他值:不是。 - **IP** (str) - IP地址 - - **IPId** (str) - IP资源ID (内网IP无对应的资源ID) - - **SubnetId** (str) - IP地址对应的子网 ID(北京一当前字段为空) + - **IPId** (str) - 外网IP资源ID 。(内网IP无对应的资源ID) + - **Mac** (str) - 当前网卡的Mac。 + - **SubnetId** (str) - IP地址对应的子网 ID。(北京一不支持,字段返回为空) - **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private - - **VPCId** (str) - IP地址对应的VPC ID(北京一当前字段为空) + - **VPCId** (str) - IP地址对应的VPC ID。(北京一不支持,字段返回为空) + - **Weight** (int) - 当前EIP的权重。权重最大的为当前的出口IP。 **UHostInstanceSet** @@ -288,6 +336,36 @@ def describe_uhost_instance(self, req=None, **kwargs): resp = self.invoke("DescribeUHostInstance", d, **kwargs) return apis.DescribeUHostInstanceResponseSchema().loads(resp) + def describe_uhost_instance_snapshot(self, req=None, **kwargs): + """ DescribeUHostInstanceSnapshot - 获取已经存在的UHost实例的存储快照列表。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance `_ + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **SnapshotSet** (list) - 见 **UHostSnapshotSet** 模型定义 + - **UhostId** (str) - UHost实例ID + + **Response Model** + + **UHostSnapshotSet** + + - **SnapshotName** (str) - 快照名称 + - **SnapshotState** (str) - 快照状态, 制作中:Capturing 制作成功:Success 制作失败:Fail + - **SnapshotTime** (str) - 快照制作时间 + + """ + d = {"ProjectId": self.config.project_id, "Region": self.config.region} + req and d.update(req) + d = apis.DescribeUHostInstanceSnapshotRequestSchema().dumps(d) + resp = self.invoke("DescribeUHostInstanceSnapshot", d, **kwargs) + return apis.DescribeUHostInstanceSnapshotResponseSchema().loads(resp) + def describe_uhost_tags(self, req=None, **kwargs): """ DescribeUHostTags - 获取指定数据中心的业务组列表。 @@ -565,11 +643,10 @@ def reinstall_uhost_instance(self, req=None, **kwargs): - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ - **UHostId** (str) - (Required) UHost实例资源ID 参见 `DescribeUHostInstance `_ - - **BootDiskSpace** (int) - 系统盘大小。 单位:GB, 范围[20,100], 步长:10 - **DNSServers** (list) - 针对非私有子网主机,可自定义DNS。n可为0-2 - **ImageId** (str) - 镜像Id,默认使用原镜像 参见 `DescribeImage `_ - **Password** (str) - 如果创建UHost实例时LoginMode为Password,则必须填写,如果LoginMode为KeyPair,不需要填写 (密码格式使用BASE64编码;LoginMode不可变更) - - **ReserveDisk** (str) - 是否保留数据盘,保留:Yes,不报留:No, 默认:Yes;如果是从Windows重装为Linux或反之,则无法保留数据盘 + - **ReserveDisk** (str) - 是否保留数据盘,保留:Yes,不报留:No, 默认:Yes - **ResourceType** (int) - 云灾备指明191 - **Zone** (str) - 可用区。参见 `可用区列表 `_ @@ -630,17 +707,17 @@ def resize_attached_disk(self, req=None, **kwargs): return apis.ResizeAttachedDiskResponseSchema().loads(resp) def resize_uhost_instance(self, req=None, **kwargs): - """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考 `云主机机型说明 `_ 。 + """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,磁盘空间大小,网络增强等。 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ - **UHostId** (str) - (Required) UHost实例ID 参见 `DescribeUHostInstance `_ - - **BootDiskSpace** (int) - 【待废弃】系统盘大小,单位:GB,范围[20,100],步长:10,系统盘不支持缩容,因此不允许输入比当前实例系统盘小的值 - - **CPU** (int) - 虚拟CPU核数。可选参数:1-32(可选范围与UHostType相关)。默认值为当前实例的CPU核数 - - **DiskSpace** (int) - 【待废弃】数据盘大小,单位:GB,范围[10,1000]; SSD机型,单位:GB,范围[100,500];步长:10,默认值为当前实例的数据盘大小,数据盘不支持缩容,因此不允许输入比当前实例数据盘大小的值 - - **Memory** (int) - 内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数(可选范围与UHostType相关)。默认值为当前实例的内存大小。 + - **BootDiskSpace** (int) - 系统盘大小,单位:GB,范围[20,100],步长:10,系统盘不支持缩容,因此不允许输入比当前实例系统盘小的值 + - **CPU** (int) - 虚拟CPU核数,单位:个,范围:[1,16],最小值为1,其他值是2的倍数,默认值为当前实例的CPU核数(*windows CPU>=2) + - **DiskSpace** (int) - 数据盘大小,单位:GB,范围[10,1000]; SSD机型,单位:GB,范围[100,500];步长:10,默认值为当前实例的数据盘大小,数据盘不支持缩容,因此不允许输入比当前实例数据盘大小的值 + - **Memory** (int) - 内存大小,单位:MB,范围[2048,65536],步长:2048,默认值为当前实例的内存大小(BGP-C数据中心最小支持1024,限Linux系统) - **NetCapValue** (int) - 网卡升降级(1,表示升级,2表示降级,0表示不变) - **Zone** (str) - 可用区。参见 `可用区列表 `_ @@ -706,6 +783,7 @@ def terminate_custom_image(self, req=None, **kwargs): - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ - **ImageId** (str) - (Required) 自制镜像ID 参见 `DescribeImage `_ + - **Zone** (str) - 可用区。参见 `可用区列表 `_ **Response** diff --git a/ucloud/services/uhost/schemas/apis.py b/ucloud/services/uhost/schemas/apis.py index 2b8fbaf..d01adc7 100644 --- a/ucloud/services/uhost/schemas/apis.py +++ b/ucloud/services/uhost/schemas/apis.py @@ -92,6 +92,18 @@ class CreateUHostInstanceParamNetworkInterfaceEIPGlobalSSHSchema( } +class CreateUHostInstanceParamNetworkInterfaceIPv6Schema(schema.RequestSchema): + """ CreateUHostInstanceParamNetworkInterfaceIPv6 - + """ + + fields = { + "Adress": fields.Str(required=False, dump_to="Adress"), + "ShareBandwidthId": fields.Str( + required=False, dump_to="ShareBandwidthId" + ), + } + + class CreateUHostInstanceParamNetworkInterfaceEIPSchema(schema.RequestSchema): """ CreateUHostInstanceParamNetworkInterfaceEIP - """ @@ -110,6 +122,20 @@ class CreateUHostInstanceParamNetworkInterfaceEIPSchema(schema.RequestSchema): } +class CreateUHostInstanceParamNetworkInterfaceSchema(schema.RequestSchema): + """ CreateUHostInstanceParamNetworkInterface - + """ + + fields = { + "EIP": CreateUHostInstanceParamNetworkInterfaceEIPSchema( + required=False, dump_to="EIP" + ), + "IPv6": CreateUHostInstanceParamNetworkInterfaceIPv6Schema( + required=False, dump_to="IPv6" + ), + } + + class CreateUHostInstanceParamDisksSchema(schema.RequestSchema): """ CreateUHostInstanceParamDisks - """ @@ -125,17 +151,6 @@ class CreateUHostInstanceParamDisksSchema(schema.RequestSchema): } -class CreateUHostInstanceParamNetworkInterfaceSchema(schema.RequestSchema): - """ CreateUHostInstanceParamNetworkInterface - - """ - - fields = { - "EIP": CreateUHostInstanceParamNetworkInterfaceEIPSchema( - required=False, dump_to="EIP" - ) - } - - class CreateUHostInstanceRequestSchema(schema.RequestSchema): """ CreateUHostInstance - 创建UHost实例。 """ @@ -153,6 +168,7 @@ class CreateUHostInstanceRequestSchema(schema.RequestSchema): "Disks": fields.List(CreateUHostInstanceParamDisksSchema()), "GPU": fields.Int(required=False, dump_to="GPU"), "GpuType": fields.Str(required=False, dump_to="GpuType"), + "HostIp": fields.Str(required=False, dump_to="HostIp"), "HostType": fields.Str(required=False, dump_to="HostType"), "HotplugFeature": fields.Bool(required=False, dump_to="HotplugFeature"), "ImageId": fields.Str(required=True, dump_to="ImageId"), @@ -190,6 +206,7 @@ class CreateUHostInstanceRequestSchema(schema.RequestSchema): required=False, dump_to="TimemachineFeature" ), "UHostType": fields.Str(required=False, dump_to="UHostType"), + "UserData": fields.Str(required=False, dump_to="UserData"), "UserDataScript": fields.Str(required=False, dump_to="UserDataScript"), "VPCId": fields.Str(required=False, dump_to="VPCId"), "Zone": fields.Str(required=True, dump_to="Zone"), @@ -244,6 +261,39 @@ class DescribeImageResponseSchema(schema.ResponseSchema): } +""" +API: DescribeIsolationGroup + +查询硬件隔离组列表。 +""" + + +class DescribeIsolationGroupRequestSchema(schema.RequestSchema): + """ DescribeIsolationGroup - 查询硬件隔离组列表。 + """ + + fields = { + "GroupId": fields.Str(required=False, dump_to="GroupId"), + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DescribeIsolationGroupResponseSchema(schema.ResponseSchema): + """ DescribeIsolationGroup - 查询硬件隔离组列表。 + """ + + fields = { + "IsolationGroupSet": fields.List( + models.IsolationGroupSchema(), + required=False, + load_from="IsolationGroupSet", + ) + } + + """ API: DescribeUHostInstance @@ -275,6 +325,8 @@ class DescribeUHostInstanceResponseSchema(schema.ResponseSchema): """ fields = { + "Action": fields.Str(required=True, load_from="Action"), + "RetCode": fields.Int(required=True, load_from="RetCode"), "TotalCount": fields.Int(required=False, load_from="TotalCount"), "UHostSet": fields.List( models.UHostInstanceSetSchema(), @@ -284,6 +336,39 @@ class DescribeUHostInstanceResponseSchema(schema.ResponseSchema): } +""" +API: DescribeUHostInstanceSnapshot + +获取已经存在的UHost实例的存储快照列表。 +""" + + +class DescribeUHostInstanceSnapshotRequestSchema(schema.RequestSchema): + """ DescribeUHostInstanceSnapshot - 获取已经存在的UHost实例的存储快照列表。 + """ + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "UHostId": fields.Str(required=True, dump_to="UHostId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribeUHostInstanceSnapshotResponseSchema(schema.ResponseSchema): + """ DescribeUHostInstanceSnapshot - 获取已经存在的UHost实例的存储快照列表。 + """ + + fields = { + "SnapshotSet": fields.List( + models.UHostSnapshotSetSchema(), + required=False, + load_from="SnapshotSet", + ), + "UhostId": fields.Str(required=False, load_from="UhostId"), + } + + """ API: DescribeUHostTags @@ -618,7 +703,6 @@ class ReinstallUHostInstanceRequestSchema(schema.RequestSchema): """ fields = { - "BootDiskSpace": fields.Int(required=False, dump_to="BootDiskSpace"), "DNSServers": fields.List(fields.Str()), "ImageId": fields.Str(required=False, dump_to="ImageId"), "Password": fields.Base64(required=False, dump_to="Password"), @@ -696,12 +780,12 @@ class ResizeAttachedDiskResponseSchema(schema.ResponseSchema): """ API: ResizeUHostInstance -修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考[[api:uhost-api:uhost_type|云主机机型说明]]。 +修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,磁盘空间大小,网络增强等。 """ class ResizeUHostInstanceRequestSchema(schema.RequestSchema): - """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考[[api:uhost-api:uhost_type|云主机机型说明]]。 + """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,磁盘空间大小,网络增强等。 """ fields = { @@ -718,7 +802,7 @@ class ResizeUHostInstanceRequestSchema(schema.RequestSchema): class ResizeUHostInstanceResponseSchema(schema.ResponseSchema): - """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,网络增强等。可选配置范围请参考[[api:uhost-api:uhost_type|云主机机型说明]]。 + """ ResizeUHostInstance - 修改指定UHost实例的资源配置,如CPU核心数,内存容量大小,磁盘空间大小,网络增强等。 """ fields = {"UhostId": fields.Str(required=False, load_from="UhostId")} @@ -792,6 +876,7 @@ class TerminateCustomImageRequestSchema(schema.RequestSchema): "ImageId": fields.Str(required=True, dump_to="ImageId"), "ProjectId": fields.Str(required=False, dump_to="ProjectId"), "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), } diff --git a/ucloud/services/uhost/schemas/models.py b/ucloud/services/uhost/schemas/models.py index 93fa7d4..342d45c 100644 --- a/ucloud/services/uhost/schemas/models.py +++ b/ucloud/services/uhost/schemas/models.py @@ -32,6 +32,28 @@ class UHostImageSetSchema(schema.ResponseSchema): } +class SpreadInfoSchema(schema.ResponseSchema): + """ SpreadInfo - 每个可用区中硬件隔离组信息 + """ + + fields = { + "UHostCount": fields.Int(required=False, load_from="UHostCount"), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class IsolationGroupSchema(schema.ResponseSchema): + """ IsolationGroup - 硬件隔离组信息 + """ + + fields = { + "GroupId": fields.Str(required=False, load_from="GroupId"), + "GroupName": fields.Str(required=False, load_from="GroupName"), + "Remark": fields.Str(required=False, load_from="Remark"), + "SpreadInfoSet": fields.List(SpreadInfoSchema()), + } + + class UHostDiskSetSchema(schema.ResponseSchema): """ UHostDiskSet - DescribeUHostInstance """ @@ -55,12 +77,14 @@ class UHostIPSetSchema(schema.ResponseSchema): fields = { "Bandwidth": fields.Int(required=False, load_from="Bandwidth"), - "Default": fields.Str(required=False, load_from="Default"), + "Default": fields.Str(required=True, load_from="Default"), "IP": fields.Str(required=False, load_from="IP"), "IPId": fields.Str(required=False, load_from="IPId"), + "Mac": fields.Str(required=True, load_from="Mac"), "SubnetId": fields.Str(required=False, load_from="SubnetId"), "Type": fields.Str(required=False, load_from="Type"), "VPCId": fields.Str(required=False, load_from="VPCId"), + "Weight": fields.Int(required=True, load_from="Weight"), } @@ -115,6 +139,17 @@ class UHostInstanceSetSchema(schema.ResponseSchema): } +class UHostSnapshotSetSchema(schema.ResponseSchema): + """ UHostSnapshotSet - DescribeUHostInstanceSnapshot + """ + + fields = { + "SnapshotName": fields.Str(required=False, load_from="SnapshotName"), + "SnapshotState": fields.Str(required=False, load_from="SnapshotState"), + "SnapshotTime": fields.Str(required=False, load_from="SnapshotTime"), + } + + class UHostTagSetSchema(schema.ResponseSchema): """ UHostTagSet - DescribeUHostTags """ diff --git a/ucloud/version.py b/ucloud/version.py index 4e9e634..c8e1255 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -version = "0.6.0" +version = "0.6.2"