diff --git a/docs/services.rst b/docs/services.rst index 95c6a69c..a2b6c518 100644 --- a/docs/services.rst +++ b/docs/services.rst @@ -171,6 +171,13 @@ UDI :members: +UDNS +---- + +.. autoclass:: ucloud.services.udns.client.UDNSClient + :members: + + UDTS ---- diff --git a/ucloud/client.py b/ucloud/client.py index 1deaf422..cfb46655 100644 --- a/ucloud/client.py +++ b/ucloud/client.py @@ -182,6 +182,16 @@ def udi(self): self.logger, ) + def udns(self): + from ucloud.services.udns.client import UDNSClient + + return UDNSClient( + self._auto_config("udns"), + self.transport, + self.middleware, + self.logger, + ) + def udpn(self): from ucloud.services.udpn.client import UDPNClient diff --git a/ucloud/services/udb/client.py b/ucloud/services/udb/client.py index 63cca689..1ab872c4 100644 --- a/ucloud/services/udb/client.py +++ b/ucloud/services/udb/client.py @@ -703,6 +703,7 @@ def describe_mongo_db_sharded_cluster( - **BackupDuration** (int) - - **BackupMethod** (str) - - **BackupZone** (str) - + - **CPU** (int) - - **CaseSensitivityParam** (int) - - **ChargeType** (str) - - **CluserRole** (str) - @@ -1040,7 +1041,7 @@ def describe_udb_instance( - **ReplicationDelaySeconds** (int) - 延时从库时长 - **Role** (str) - DB实例角色,mysql区分master/slave,mongodb多种角色 - **SSDType** (str) - SSD类型,SATA/PCI-E - - **SpecificationType** (str) - 实例计算规格类型,0或不传代表使用内存方式购买,1代表使用内存-cpu可选配比方式购买,需要填写MachineType + - **SpecificationType** (int) - 实例计算规格类型,0或不传代表使用内存方式购买,1代表使用内存-cpu可选配比方式购买,需要填写MachineType - **SrcDBId** (str) - 对mysql的slave而言是master的DBId,对master则为空, 对mongodb则是副本集id - **State** (str) - DB状态标记 Init:初始化中,Fail:安装失败,Starting:启动中,Running:运行,Shutdown:关闭中,Shutoff:已关闭,Delete:已删除,Upgrading:升级中,Promoting:提升为独库进行中,Recovering:恢复中,Recover fail:恢复失败,Remakeing:重做中,RemakeFail:重做失败, MajorVersionUpgrading:小版本升级中,MajorVersionUpgradeWaitForSwitch:高可用等待切换,MajorVersionUpgradeFail - **SubnetId** (str) - 子网ID @@ -1766,6 +1767,47 @@ def get_udb_instance_ssl_cert_url( resp = self.invoke("GetUDBInstanceSSLCertURL", d, **kwargs) return apis.GetUDBInstanceSSLCertURLResponseSchema().loads(resp) + def list_udb_machine_type( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUDBMachineType - 获取UDB云数据库支持的计算规格列表,暂不支持获取跨可用区实例的计算规格,目前支持的数据库品类包括:NVMe版和SSD云盘版MySQL + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **InstanceMode** (str) - UDB实例模式类型, 可选值如下: "Normal": 普通版UDB实例 "HA": 高可用版UDB实例 默认是"Normal" + + **Response** + + - **DataSet** (list) - 见 **MachineType** 模型定义 + - **DefaultMachineType** (dict) - 见 **MachineType** 模型定义 + - **Message** (str) - 接口返回信息 + + **Response Model** + + **MachineType** + - **Cpu** (int) - 规格cpu核数 + - **Description** (str) - 计算规格描述,格式为"nCmG",表示n核mG内存实例 + - **Group** (str) - 内存/cpu配比 + - **ID** (str) - 计算规格id, 目前支持CPU和内存比1:2、1:4、1:8三类配比规格;规格的格式为:"机型.配比.CPU核数规格";机型支持o和n两种机型,分别代表快杰NVMe和SSD云盘机型;配比映射关系如下:2m代表CPU内存配比1比2,4m代表CPU内存配比1比4,8m代表CPU内存配比1比8,CPU核数规格射关系如下:small代表1C,medium代表2C,xlarge代表4C,2xlarge代表8C,4xlarge代表16C,8xlarge代表32C,16xlarge代表64C,例如 "o.mysql4m.medium"表示创建快杰NVMe机型2C8G的实例,"o.mysql8m.4xlarge"表示创建快杰NVMe机型16C128G的实例 + - **Memory** (int) - 规格内存大小,单位(GB) + - **Os** (str) - 内部云主机机型,可选"o/n" + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUDBMachineTypeRequestSchema().dumps(d) + + resp = self.invoke("ListUDBMachineType", d, **kwargs) + return apis.ListUDBMachineTypeResponseSchema().loads(resp) + def list_udb_user_tables( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -1984,6 +2026,7 @@ def resize_udb_instance( - **DBId** (str) - (Required) 实例的Id - **DiskSpace** (int) - (Required) 磁盘空间(GB), 暂时支持20G-32T - **MemoryLimit** (int) - (Required) 内存限制(MB),目前支持以下几档 2000M/4000M/ 6000M/8000M/ 12000M/16000M/ 24000M/32000M/ 48000M/64000M/96000M/128000M/192000M/256000M/320000M。 + - **CPU** (int) - 数据库的CPU核数(只对普通版的SQLServer有用) - **CouponId** (str) - 使用的代金券id - **InstanceMode** (str) - UDB实例模式类型, 可选值如下: "Normal": 普通版UDB实例 "HA": 高可用版UDB实例 默认是"Normal" - **InstanceType** (str) - UDB数据库机型: "Normal": "标准机型" , "SATA_SSD": "SSD机型" , "PCIE_SSD": "SSD高性能机型" , "Normal_Volume": "标准大容量机型", "SATA_SSD_Volume": "SSD大容量机型" , "PCIE_SSD_Volume": "SSD高性能大容量机型",“NVMe_SSD”:“快杰机型” diff --git a/ucloud/services/udb/schemas/apis.py b/ucloud/services/udb/schemas/apis.py index ac1adf05..3acca976 100644 --- a/ucloud/services/udb/schemas/apis.py +++ b/ucloud/services/udb/schemas/apis.py @@ -1424,6 +1424,36 @@ class GetUDBInstanceSSLCertURLResponseSchema(schema.ResponseSchema): } +""" +API: ListUDBMachineType + +获取UDB云数据库支持的计算规格列表,暂不支持获取跨可用区实例的计算规格,目前支持的数据库品类包括:NVMe版和SSD云盘版MySQL +""" + + +class ListUDBMachineTypeRequestSchema(schema.RequestSchema): + """ListUDBMachineType - 获取UDB云数据库支持的计算规格列表,暂不支持获取跨可用区实例的计算规格,目前支持的数据库品类包括:NVMe版和SSD云盘版MySQL""" + + fields = { + "InstanceMode": fields.Str(required=False, dump_to="InstanceMode"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class ListUDBMachineTypeResponseSchema(schema.ResponseSchema): + """ListUDBMachineType - 获取UDB云数据库支持的计算规格列表,暂不支持获取跨可用区实例的计算规格,目前支持的数据库品类包括:NVMe版和SSD云盘版MySQL""" + + fields = { + "DataSet": fields.List( + models.MachineTypeSchema(), required=True, load_from="DataSet" + ), + "DefaultMachineType": models.MachineTypeSchema(), + "Message": fields.Str(required=True, load_from="Message"), + } + + """ API: ListUDBUserTables @@ -1611,6 +1641,7 @@ class ResizeUDBInstanceRequestSchema(schema.RequestSchema): """ResizeUDBInstance - 修改(升级和降级)UDB实例的配置,包括内存和磁盘的配置,对于内存升级无需关闭实例,其他场景需要事先关闭实例。两套参数可以配置升降机:1.配置UseSSD和SSDType 2.配置InstanceType,不需要配置InstanceMode。这两套第二套参数的优先级更高""" fields = { + "CPU": fields.Int(required=False, dump_to="CPU"), "CouponId": fields.Str(required=False, dump_to="CouponId"), "DBId": fields.Str(required=True, dump_to="DBId"), "DiskSpace": fields.Int(required=True, dump_to="DiskSpace"), diff --git a/ucloud/services/udb/schemas/models.py b/ucloud/services/udb/schemas/models.py index 606d37ee..e388096d 100644 --- a/ucloud/services/udb/schemas/models.py +++ b/ucloud/services/udb/schemas/models.py @@ -3,6 +3,15 @@ from ucloud.core.typesystem import schema, fields +class UFileDataSetSchema(schema.ResponseSchema): + """UFileDataSet - 增加ufile的描述""" + + fields = { + "Bucket": fields.Str(required=False, load_from="Bucket"), + "TokenID": fields.Str(required=False, load_from="TokenID"), + } + + class UDBSlaveInstanceSetSchema(schema.ResponseSchema): """UDBSlaveInstanceSet - DescribeUDBSlaveInstance""" @@ -51,7 +60,7 @@ class UDBSlaveInstanceSetSchema(schema.ResponseSchema): ), "Role": fields.Str(required=False, load_from="Role"), "SSDType": fields.Str(required=False, load_from="SSDType"), - "SpecificationType": fields.Str( + "SpecificationType": fields.Int( required=False, load_from="SpecificationType" ), "SrcDBId": fields.Str(required=False, load_from="SrcDBId"), @@ -69,15 +78,6 @@ class UDBSlaveInstanceSetSchema(schema.ResponseSchema): } -class UFileDataSetSchema(schema.ResponseSchema): - """UFileDataSet - 增加ufile的描述""" - - fields = { - "Bucket": fields.Str(required=False, load_from="Bucket"), - "TokenID": fields.Str(required=False, load_from="TokenID"), - } - - class MongoDBShardedClusterSetSchema(schema.ResponseSchema): """MongoDBShardedClusterSet -""" @@ -287,6 +287,19 @@ class ConnNumMapSchema(schema.ResponseSchema): } +class MachineTypeSchema(schema.ResponseSchema): + """MachineType - mysql数据库机型""" + + fields = { + "Cpu": fields.Int(required=False, load_from="Cpu"), + "Description": fields.Str(required=False, load_from="Description"), + "Group": fields.Str(required=False, load_from="Group"), + "ID": fields.Str(required=False, load_from="ID"), + "Memory": fields.Int(required=False, load_from="Memory"), + "Os": fields.Str(required=False, load_from="Os"), + } + + class TableDataSchema(schema.ResponseSchema): """TableData - 用户表详情""" diff --git a/ucloud/services/udns/__init__.py b/ucloud/services/udns/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ucloud/services/udns/client.py b/ucloud/services/udns/client.py new file mode 100644 index 00000000..ca5fab1a --- /dev/null +++ b/ucloud/services/udns/client.py @@ -0,0 +1,380 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.udns.schemas import apis + + +class UDNSClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(UDNSClient, self).__init__(config, transport, middleware, logger) + + def associate_udns_zone_vpc( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """AssociateUDNSZoneVPC - 绑定域名与VPC + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **VPCId** (str) - (Required) VPC资源ID + - **VPCProjectId** (str) - (Required) VPC所属项目ID + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.AssociateUDNSZoneVPCRequestSchema().dumps(d) + + resp = self.invoke("AssociateUDNSZoneVPC", d, **kwargs) + return apis.AssociateUDNSZoneVPCResponseSchema().loads(resp) + + def create_udns_record( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUDNSRecord - 创建域名记录 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **Name** (str) - (Required) 主机记录 + - **Type** (str) - (Required) 记录类型。枚举值,“A”,"CNAME","MX","AAAA","SRV","PTR","TXT"。 + - **Value** (str) - (Required) 数值组,支持逗号分割。格式为:Value|权重|IsEnabled,其中权重支持1-10,IsEnabled为枚举值(1为启用,0为禁用)。输入格式示例:192.168.1.1|1|1,192.168.1.2|10|0。 + - **ValueType** (str) - (Required) 值类型。枚举值,“Normal”,标准;“Multivalue”,多值返回。仅在值为“Multivalue”时,Value的权重生效。 + - **Remark** (str) - 记录的备注信息 + - **TTL** (int) - TTL值,范围为5-600,单位为秒。默认为5 + + **Response** + + - **DNSRecordId** (str) - 域名记录的资源ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateUDNSRecordRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUDNSRecord", d, **kwargs) + return apis.CreateUDNSRecordResponseSchema().loads(resp) + + def create_udns_zone( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUDNSZone - 创建域名 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneName** (str) - (Required) 域名字符串 + - **Type** (str) - (Required) 域名类型。枚举值,“private”,内网DNS;“public”,公网DNS,暂只支持private。 + - **ChargeType** (str) - 付费方式, 枚举值为: Year, 按年付费; Month, 按月付费; Dynamic, 按需付费,默认为按月付费 + - **CouponId** (str) - 代金券ID,默认不使用 + - **IsRecursionEnabled** (str) - 是否支持迭代。枚举值,"enable",支持迭代; "disable",不支持迭代 + - **Quantity** (int) - 购买时长,默认为1 + - **Remark** (str) - 备注 + - **Tag** (str) - 所属业务组名称 + + **Response** + + - **DNSZoneId** (str) - 域名资源ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateUDNSZoneRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUDNSZone", d, **kwargs) + return apis.CreateUDNSZoneResponseSchema().loads(resp) + + def delete_udns_record( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteUDNSRecord - 删除域名记录 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **RecordIds** (list) - (Required) 域名记录资源ID + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteUDNSRecordRequestSchema().dumps(d) + + resp = self.invoke("DeleteUDNSRecord", d, **kwargs) + return apis.DeleteUDNSRecordResponseSchema().loads(resp) + + def describe_udns_domain( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUDNSDomain - zone下所有域名的rr记录 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneName** (str) - (Required) zone名称 + - **VPCId** (str) - (Required) VPI资源ID + - **Limit** (int) - 返回数量 + - **Offset** (int) - 查询数量偏移 + + **Response** + + - **RecordInfos** (list) - 见 **RecordInfo** 模型定义 + - **TotalCount** (int) - 总条数 + + **Response Model** + + **ValueSet** + - **Data** (str) - 主机记录 + - **IsEnabled** (int) - 是否启用 + - **Weight** (int) - 权重 + + + **RecordInfo** + - **Name** (str) - 主机记录 + - **RecordId** (str) - 域名记录资源ID + - **Remark** (str) - 记录备注信息 + - **TTL** (int) - TTL值,单位为秒 + - **Type** (str) - 记录类型 + - **ValueSet** (list) - 见 **ValueSet** 模型定义 + - **ValueType** (str) - 记录策略,标准或随机应答 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUDNSDomainRequestSchema().dumps(d) + + resp = self.invoke("DescribeUDNSDomain", d, **kwargs) + return apis.DescribeUDNSDomainResponseSchema().loads(resp) + + def describe_udns_record( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUDNSRecord - 获取域名记录 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **Limit** (int) - 数据分页值, 默认为20 + - **Offset** (int) - 数据偏移量, 默认为0 + - **RecordIds** (list) - 域名记录资源ID + + **Response** + + - **RecordInfos** (list) - 见 **RecordInfo** 模型定义 + - **TotalCount** (int) - 资源数量 + + **Response Model** + + **ValueSet** + - **Data** (str) - 主机记录 + - **IsEnabled** (int) - 是否启用 + - **Weight** (int) - 权重 + + + **RecordInfo** + - **Name** (str) - 主机记录 + - **RecordId** (str) - 域名记录资源ID + - **Remark** (str) - 记录备注信息 + - **TTL** (int) - TTL值,单位为秒 + - **Type** (str) - 记录类型 + - **ValueSet** (list) - 见 **ValueSet** 模型定义 + - **ValueType** (str) - 记录策略,标准或随机应答 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUDNSRecordRequestSchema().dumps(d) + + resp = self.invoke("DescribeUDNSRecord", d, **kwargs) + return apis.DescribeUDNSRecordResponseSchema().loads(resp) + + def describe_udns_zone( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUDNSZone - 获取域名信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneIds** (list) - 域名资源ID + - **Limit** (int) - 数据分页值, 默认为20 + - **Offset** (int) - 数据偏移量, 默认为0 + + **Response** + + - **DNSZoneInfos** (list) - 见 **ZoneInfo** 模型定义 + - **TotalCount** (int) - 符合查询条件的域名数量 + + **Response Model** + + **VPCInfo** + - **Name** (str) - VPC名称 + - **Network** (list) - VPC地址空间 + - **VPCId** (str) - VPC ID + - **VPCProjectId** (str) - VPC所属项目ID + - **VPCType** (str) - VPC类型:Normal 公有云 Hybrid 托管云 + + + **ZoneInfo** + - **ChargeType** (str) - 计费类型(Dynamic、Month、Year) + - **CreateTime** (int) - 创建时间 + - **DNSZoneName** (str) - 域名名称 + - **ExpireTime** (int) - 过期时间 + - **IsAutoRenew** (str) - 是否开启自动续费(Yes No) + - **IsRecursionEnabled** (str) - 是否支持迭代。枚举值,"enable",支持迭代; "disable",不支持迭代 + - **RecordInfos** (list) - 记录相关ID + - **Remark** (str) - 备注 + - **Tag** (str) - 业务组 + - **VPCInfos** (list) - 见 **VPCInfo** 模型定义 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUDNSZoneRequestSchema().dumps(d) + + resp = self.invoke("DescribeUDNSZone", d, **kwargs) + return apis.DescribeUDNSZoneResponseSchema().loads(resp) + + def disassociate_udns_zone_vpc( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DisassociateUDNSZoneVPC - 解绑域名和VPC + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **VPCId** (str) - (Required) VPC资源ID + - **VPCProjectId** (str) - (Required) VPC所属项目ID + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DisassociateUDNSZoneVPCRequestSchema().dumps(d) + + resp = self.invoke("DisassociateUDNSZoneVPC", d, **kwargs) + return apis.DisassociateUDNSZoneVPCResponseSchema().loads(resp) + + def modify_udns_record( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ModifyUDNSRecord - 修改域名记录 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **RecordId** (str) - (Required) 域名记录资源ID + - **Remark** (str) - 记录的备注信息 + - **TTL** (int) - TTL值,单位为秒 + - **Value** (str) - 数值组,支持逗号分割。格式为:Value|权重|Enable,其中权重支持1-10,Enable为枚举值(1为启用,0为禁用)。输入格式示例:192.168.1.1|1|1,192.168.1.2|10|0。 + - **ValueType** (str) - 值类型。枚举值,“Normal”,标准;“Multivalue”,多值返回。仅在值为“Multivalue”时,Value的权重生效。 + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ModifyUDNSRecordRequestSchema().dumps(d) + + resp = self.invoke("ModifyUDNSRecord", d, **kwargs) + return apis.ModifyUDNSRecordResponseSchema().loads(resp) + + def modify_udns_zone( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ModifyUDNSZone - 修改域名备注/递归查询状态 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DNSZoneId** (str) - (Required) 域名资源ID + - **IsRecursionEnabled** (str) - 是否支持迭代。枚举值,"enable",支持迭代; "disable",不支持迭代 + - **Remark** (str) - 备注 + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ModifyUDNSZoneRequestSchema().dumps(d) + + resp = self.invoke("ModifyUDNSZone", d, **kwargs) + return apis.ModifyUDNSZoneResponseSchema().loads(resp) diff --git a/ucloud/services/udns/schemas/__init__.py b/ucloud/services/udns/schemas/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ucloud/services/udns/schemas/apis.py b/ucloud/services/udns/schemas/apis.py new file mode 100644 index 00000000..8d6de07c --- /dev/null +++ b/ucloud/services/udns/schemas/apis.py @@ -0,0 +1,294 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + + +from ucloud.core.typesystem import schema, fields +from ucloud.services.udns.schemas import models + +""" UDNS API Schema +""" + + +""" +API: AssociateUDNSZoneVPC + +绑定域名与VPC +""" + + +class AssociateUDNSZoneVPCRequestSchema(schema.RequestSchema): + """AssociateUDNSZoneVPC - 绑定域名与VPC""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + "VPCProjectId": fields.Str(required=True, dump_to="VPCProjectId"), + } + + +class AssociateUDNSZoneVPCResponseSchema(schema.ResponseSchema): + """AssociateUDNSZoneVPC - 绑定域名与VPC""" + + fields = {} + + +""" +API: CreateUDNSRecord + +创建域名记录 +""" + + +class CreateUDNSRecordRequestSchema(schema.RequestSchema): + """CreateUDNSRecord - 创建域名记录""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "Name": fields.Str(required=True, dump_to="Name"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "TTL": fields.Int(required=False, dump_to="TTL"), + "Type": fields.Str(required=True, dump_to="Type"), + "Value": fields.Str(required=True, dump_to="Value"), + "ValueType": fields.Str(required=True, dump_to="ValueType"), + } + + +class CreateUDNSRecordResponseSchema(schema.ResponseSchema): + """CreateUDNSRecord - 创建域名记录""" + + fields = { + "DNSRecordId": fields.Str(required=True, load_from="DNSRecordId"), + } + + +""" +API: CreateUDNSZone + +创建域名 +""" + + +class CreateUDNSZoneRequestSchema(schema.RequestSchema): + """CreateUDNSZone - 创建域名""" + + fields = { + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "CouponId": fields.Str(required=False, dump_to="CouponId"), + "DNSZoneName": fields.Str(required=True, dump_to="DNSZoneName"), + "IsRecursionEnabled": fields.Str( + required=False, dump_to="IsRecursionEnabled" + ), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Int(required=False, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "Tag": fields.Str(required=False, dump_to="Tag"), + "Type": fields.Str(required=True, dump_to="Type"), + } + + +class CreateUDNSZoneResponseSchema(schema.ResponseSchema): + """CreateUDNSZone - 创建域名""" + + fields = { + "DNSZoneId": fields.Str(required=True, load_from="DNSZoneId"), + } + + +""" +API: DeleteUDNSRecord + +删除域名记录 +""" + + +class DeleteUDNSRecordRequestSchema(schema.RequestSchema): + """DeleteUDNSRecord - 删除域名记录""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "RecordIds": fields.List(fields.Str()), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DeleteUDNSRecordResponseSchema(schema.ResponseSchema): + """DeleteUDNSRecord - 删除域名记录""" + + fields = {} + + +""" +API: DescribeUDNSDomain + +zone下所有域名的rr记录 +""" + + +class DescribeUDNSDomainRequestSchema(schema.RequestSchema): + """DescribeUDNSDomain - zone下所有域名的rr记录""" + + fields = { + "DNSZoneName": fields.Str(required=True, dump_to="DNSZoneName"), + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + } + + +class DescribeUDNSDomainResponseSchema(schema.ResponseSchema): + """DescribeUDNSDomain - zone下所有域名的rr记录""" + + fields = { + "RecordInfos": fields.List( + models.RecordInfoSchema(), required=True, load_from="RecordInfos" + ), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: DescribeUDNSRecord + +获取域名记录 +""" + + +class DescribeUDNSRecordRequestSchema(schema.RequestSchema): + """DescribeUDNSRecord - 获取域名记录""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "RecordIds": fields.List(fields.Str()), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DescribeUDNSRecordResponseSchema(schema.ResponseSchema): + """DescribeUDNSRecord - 获取域名记录""" + + fields = { + "RecordInfos": fields.List( + models.RecordInfoSchema(), required=False, load_from="RecordInfos" + ), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: DescribeUDNSZone + +获取域名信息 +""" + + +class DescribeUDNSZoneRequestSchema(schema.RequestSchema): + """DescribeUDNSZone - 获取域名信息""" + + fields = { + "DNSZoneIds": fields.List(fields.Str()), + "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 DescribeUDNSZoneResponseSchema(schema.ResponseSchema): + """DescribeUDNSZone - 获取域名信息""" + + fields = { + "DNSZoneInfos": fields.List( + models.ZoneInfoSchema(), required=False, load_from="DNSZoneInfos" + ), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: DisassociateUDNSZoneVPC + +解绑域名和VPC +""" + + +class DisassociateUDNSZoneVPCRequestSchema(schema.RequestSchema): + """DisassociateUDNSZoneVPC - 解绑域名和VPC""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + "VPCProjectId": fields.Str(required=True, dump_to="VPCProjectId"), + } + + +class DisassociateUDNSZoneVPCResponseSchema(schema.ResponseSchema): + """DisassociateUDNSZoneVPC - 解绑域名和VPC""" + + fields = {} + + +""" +API: ModifyUDNSRecord + +修改域名记录 +""" + + +class ModifyUDNSRecordRequestSchema(schema.RequestSchema): + """ModifyUDNSRecord - 修改域名记录""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "RecordId": fields.Str(required=True, dump_to="RecordId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "TTL": fields.Int(required=False, dump_to="TTL"), + "Value": fields.Str(required=False, dump_to="Value"), + "ValueType": fields.Str(required=False, dump_to="ValueType"), + } + + +class ModifyUDNSRecordResponseSchema(schema.ResponseSchema): + """ModifyUDNSRecord - 修改域名记录""" + + fields = {} + + +""" +API: ModifyUDNSZone + +修改域名备注/递归查询状态 +""" + + +class ModifyUDNSZoneRequestSchema(schema.RequestSchema): + """ModifyUDNSZone - 修改域名备注/递归查询状态""" + + fields = { + "DNSZoneId": fields.Str(required=True, dump_to="DNSZoneId"), + "IsRecursionEnabled": fields.Str( + required=False, dump_to="IsRecursionEnabled" + ), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + } + + +class ModifyUDNSZoneResponseSchema(schema.ResponseSchema): + """ModifyUDNSZone - 修改域名备注/递归查询状态""" + + fields = {} diff --git a/ucloud/services/udns/schemas/models.py b/ucloud/services/udns/schemas/models.py new file mode 100644 index 00000000..7a5c2f44 --- /dev/null +++ b/ucloud/services/udns/schemas/models.py @@ -0,0 +1,58 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class ValueSetSchema(schema.ResponseSchema): + """ValueSet - RecordInfos""" + + fields = { + "Data": fields.Str(required=True, load_from="Data"), + "IsEnabled": fields.Int(required=True, load_from="IsEnabled"), + "Weight": fields.Int(required=True, load_from="Weight"), + } + + +class RecordInfoSchema(schema.ResponseSchema): + """RecordInfo - DescribeUDNSRecord""" + + fields = { + "Name": fields.Str(required=True, load_from="Name"), + "RecordId": fields.Str(required=True, load_from="RecordId"), + "Remark": fields.Str(required=True, load_from="Remark"), + "TTL": fields.Int(required=True, load_from="TTL"), + "Type": fields.Str(required=True, load_from="Type"), + "ValueSet": fields.List(ValueSetSchema()), + "ValueType": fields.Str(required=True, load_from="ValueType"), + } + + +class VPCInfoSchema(schema.ResponseSchema): + """VPCInfo - ZoneInfo""" + + fields = { + "Name": fields.Str(required=False, load_from="Name"), + "Network": fields.List(fields.Str()), + "VPCId": fields.Str(required=False, load_from="VPCId"), + "VPCProjectId": fields.Str(required=False, load_from="VPCProjectId"), + "VPCType": fields.Str(required=False, load_from="VPCType"), + } + + +class ZoneInfoSchema(schema.ResponseSchema): + """ZoneInfo - DescribeUDNSZone""" + + fields = { + "ChargeType": fields.Str(required=True, load_from="ChargeType"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "DNSZoneName": fields.Str(required=True, load_from="DNSZoneName"), + "ExpireTime": fields.Int(required=True, load_from="ExpireTime"), + "IsAutoRenew": fields.Str(required=True, load_from="IsAutoRenew"), + "IsRecursionEnabled": fields.Str( + required=True, load_from="IsRecursionEnabled" + ), + "RecordInfos": fields.List(fields.Str()), + "Remark": fields.Str(required=True, load_from="Remark"), + "Tag": fields.Str(required=True, load_from="Tag"), + "VPCInfos": fields.List(VPCInfoSchema()), + } diff --git a/ucloud/services/uhost/schemas/models.py b/ucloud/services/uhost/schemas/models.py index a93afe8b..8e7e3b76 100644 --- a/ucloud/services/uhost/schemas/models.py +++ b/ucloud/services/uhost/schemas/models.py @@ -20,6 +20,16 @@ class KeyPairSchema(schema.ResponseSchema): } +class CollectionSchema(schema.ResponseSchema): + """Collection - CPU和内存可支持的规格""" + + fields = { + "Cpu": fields.Int(required=False, load_from="Cpu"), + "Memory": fields.List(fields.Int()), + "MinimalCpuPlatform": fields.List(fields.Str()), + } + + class FeatureModesSchema(schema.ResponseSchema): """FeatureModes - 可以支持的模式类别""" @@ -52,13 +62,30 @@ class BootDiskInfoSchema(schema.ResponseSchema): } -class CollectionSchema(schema.ResponseSchema): - """Collection - CPU和内存可支持的规格""" +class MachineSizesSchema(schema.ResponseSchema): + """MachineSizes - GPU、CPU和内存信息""" fields = { - "Cpu": fields.Int(required=False, load_from="Cpu"), - "Memory": fields.List(fields.Int()), - "MinimalCpuPlatform": fields.List(fields.Str()), + "Collection": fields.List(CollectionSchema()), + "Gpu": fields.Int(required=False, load_from="Gpu"), + } + + +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的性能指标""" + + fields = { + "Rate": fields.Int(required=False, load_from="Rate"), + "Value": fields.Float(required=False, load_from="Value"), } @@ -91,33 +118,6 @@ class CpuPlatformsSchema(schema.ResponseSchema): } -class PerformanceSchema(schema.ResponseSchema): - """Performance - GPU的性能指标""" - - fields = { - "Rate": fields.Int(required=False, load_from="Rate"), - "Value": fields.Float(required=False, load_from="Value"), - } - - -class MachineSizesSchema(schema.ResponseSchema): - """MachineSizes - GPU、CPU和内存信息""" - - fields = { - "Collection": fields.List(CollectionSchema()), - "Gpu": fields.Int(required=False, load_from="Gpu"), - } - - -class GraphicsMemorySchema(schema.ResponseSchema): - """GraphicsMemory - GPU的显存指标""" - - fields = { - "Rate": fields.Int(required=False, load_from="Rate"), - "Value": fields.Int(required=False, load_from="Value"), - } - - class AvailableInstanceTypesSchema(schema.ResponseSchema): """AvailableInstanceTypes - https://ushare.ucloudadmin.com/pages/viewpage.action?pageId=104662646""" @@ -188,22 +188,21 @@ class IsolationGroupSchema(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 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"), } @@ -227,14 +226,6 @@ class UHostIPSetSchema(schema.ResponseSchema): } -class SpotAttributeSchema(schema.ResponseSchema): - """SpotAttribute - 竞价实例属性""" - - fields = { - "RecycleTime": fields.Int(required=False, load_from="RecycleTime"), - } - - class UHostDiskSetSchema(schema.ResponseSchema): """UHostDiskSet - DescribeUHostInstance""" @@ -251,6 +242,15 @@ class UHostDiskSetSchema(schema.ResponseSchema): } +class UHostKeyPairSchema(schema.ResponseSchema): + """UHostKeyPair - 主机密钥信息""" + + fields = { + "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), + "KeyPairState": fields.Str(required=False, load_from="KeyPairState"), + } + + class UHostInstanceSetSchema(schema.ResponseSchema): """UHostInstanceSet - DescribeUHostInstance""" diff --git a/ucloud/services/umem/client.py b/ucloud/services/umem/client.py index 4eed034f..4788d34d 100644 --- a/ucloud/services/umem/client.py +++ b/ucloud/services/umem/client.py @@ -927,16 +927,24 @@ def describe_umem_cache_upgrade_price( **Request** + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ - **GroupId** (str) - (Required) 需要升级的空间的GroupId,请参考DescribeUMemcacheGroup接口 - **Size** (int) - (Required) 购买umemcache大小,单位:GB + - **Zone** (str) - 可用区。参见 `可用区列表 `_ **Response** - - **Price** (float) - 价格,单位:元 + - **ListPrice** (int) - 列表价格 + - **OriginalPrice** (int) - 原价 + - **Price** (int) - 价格 """ # build request - d = {} + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } req and d.update(req) d = apis.DescribeUMemcacheUpgradePriceRequestSchema().dumps(d) diff --git a/ucloud/services/umem/schemas/apis.py b/ucloud/services/umem/schemas/apis.py index f9099627..8e7fe860 100644 --- a/ucloud/services/umem/schemas/apis.py +++ b/ucloud/services/umem/schemas/apis.py @@ -725,7 +725,10 @@ class DescribeUMemcacheUpgradePriceRequestSchema(schema.RequestSchema): fields = { "GroupId": fields.Str(required=True, dump_to="GroupId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), "Size": fields.Int(required=True, dump_to="Size"), + "Zone": fields.Str(required=False, dump_to="Zone"), } @@ -733,7 +736,9 @@ class DescribeUMemcacheUpgradePriceResponseSchema(schema.ResponseSchema): """DescribeUMemcacheUpgradePrice - 获取umemcache升级价格信息""" fields = { - "Price": fields.Float(required=False, load_from="Price"), + "ListPrice": fields.Int(required=False, load_from="ListPrice"), + "OriginalPrice": fields.Int(required=False, load_from="OriginalPrice"), + "Price": fields.Int(required=False, load_from="Price"), } diff --git a/ucloud/services/unet/schemas/models.py b/ucloud/services/unet/schemas/models.py index e98d9c51..0d36a1e9 100644 --- a/ucloud/services/unet/schemas/models.py +++ b/ucloud/services/unet/schemas/models.py @@ -55,16 +55,6 @@ class UnetBandwidthUsageEIPSetSchema(schema.ResponseSchema): } -class EIPBindingSchema(schema.ResponseSchema): - """EIPBinding - EIP绑定内网IP关系数据""" - - fields = { - "EIP": fields.Str(required=False, load_from="EIP"), - "PrivateIP": fields.Str(required=False, load_from="PrivateIP"), - "PrivateIPType": fields.Str(required=False, load_from="PrivateIPType"), - } - - class UnetEIPResourceSetSchema(schema.ResponseSchema): """UnetEIPResourceSet - DescribeEIP""" @@ -102,6 +92,16 @@ class ShareBandwidthSetSchema(schema.ResponseSchema): } +class EIPBindingSchema(schema.ResponseSchema): + """EIPBinding - EIP绑定内网IP关系数据""" + + fields = { + "EIP": fields.Str(required=False, load_from="EIP"), + "PrivateIP": fields.Str(required=False, load_from="PrivateIP"), + "PrivateIPType": fields.Str(required=False, load_from="PrivateIPType"), + } + + class UnetEIPSetSchema(schema.ResponseSchema): """UnetEIPSet - DescribeEIP""" diff --git a/ucloud/services/usms/client.py b/ucloud/services/usms/client.py index e3273ee4..18423028 100644 --- a/ucloud/services/usms/client.py +++ b/ucloud/services/usms/client.py @@ -97,7 +97,7 @@ def create_usms_template( - **Instruction** (str) - 模板变量属性说明 - **International** (bool) - 标记是否为国际短信。true:国际短信,false:国内短信,若不传值则默认该值为false - **Remark** (str) - 短信模板申请原因说明,字数不超过128,每个中文、符号、英文、数字等都计为1个字。 - - **UnsubscribeInfo** (str) - 当Purpose为3时,也即会员推广类短信模板,该项必填。枚举值:TD退订、回T退订、回N退订、回TD退订、退订回T、退订回D、退订回TD、退订回复T、退订回复D、退订回复N、退订回复TD、拒收回T + - **UnsubscribeInfo** (str) - 当Purpose=3并且International=false时,也即国内会员推广类短信模板,该项必填。枚举值:【拒收请回复R】 **Response** @@ -217,6 +217,74 @@ def get_usms_send_receipt( resp = self.invoke("GetUSMSSendReceipt", d, **kwargs) return apis.GetUSMSSendReceiptResponseSchema().loads(resp) + def get_usms_send_statistics( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUSMSSendStatistics - 获取发送统计数据 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID,不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Domestic** (int) - (Required) 国内标记,0-国际短信 1-国内短信 + - **EndDate** (str) - (Required) 结束日期,格式为YYYY-MM-DD + - **NumPerPage** (int) - (Required) 每页记录个数 + - **OrderBy** (str) - (Required) 排序字段,如BrevityCode表示按照BrevityCode排列,配合OrderType使用。目前支持SendDate、BrevityCode + - **OrderType** (str) - (Required) 排序方式,asc-正序 desc-倒序 + - **Page** (int) - (Required) 页编号,从0开始 + - **StartDate** (str) - (Required) 开始日期,格式为YYYY-MM-DD + - **BrevityCode** (str) - 国际简码,如CN表示中国,当需要查询多个国家时,使用-分割,如CN-ID。 + - **Purpose** (int) - 短信类型,1-验证码 2-通知类 3-营销类 + + **Response** + + - **Data** (list) - 见 **StatisticsDataInfo** 模型定义 + - **Message** (str) - 描述信息 + - **StatisticsData** (dict) - 见 **StatisticsData** 模型定义 + - **Total** (int) - 返回记录数 + + **Response Model** + + **StatisticsDataInfo** + - **BrevityCode** (str) - 国际/地区标识码 + - **CostCount** (int) - 发送总数(拆分条数) + - **Count** (int) - 发送总数(提交条数) + - **FailedCostCount** (int) - 发送失败数(拆分条数) + - **FailedCount** (int) - 发送失败数(提交条数) + - **SendDate** (str) - 发送时间 + - **SubmitFailedCostCount** (int) - 提交失败数(拆分条数) + - **SubmitFailedCount** (int) - 提交失败数(提交条数) + - **SuccessCostCount** (int) - 发送成功数(拆分条数) + - **SuccessCount** (int) - 发送成功数(提交条数) + - **SuccessRate** (float) - 发送成功率 + - **UnknownCostCount** (int) - 状态未知数(拆分条数) + - **UnknownCount** (int) - 状态未知数(提交条数) + - **UserId** (str) - UserId + + + **StatisticsData** + - **FailCostCount** (int) - 发送失败数(拆分条数) + - **FailCount** (int) - 发送失败数(提交条数) + - **SendCostCount** (int) - 发送总数(拆分条数) + - **SendCount** (int) - 发送总数(提交条数) + - **SubmitFailCostCount** (int) - 提交失败数(拆分条数) + - **SubmitFailCount** (int) - 提交失败数(提交条数) + - **SuccessCostCount** (int) - 发送成功数(拆分条数) + - **SuccessCount** (int) - 发送成功数(提交条数) + - **UnknownCostCount** (int) - 状态未知数(拆分条数) + - **UnknownCount** (int) - 状态未知数(提交条数) + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.GetUSMSSendStatisticsRequestSchema().dumps(d) + + resp = self.invoke("GetUSMSSendStatistics", d, **kwargs) + return apis.GetUSMSSendStatisticsResponseSchema().loads(resp) + def query_usms_signature( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -357,7 +425,7 @@ def send_usms_message( - **PhoneNumbers** (list) - (Required) 电话号码数组,电话号码格式为(60)1xxxxxxxx,()中为国际长途区号(如中国为86或0086,两种格式都支持),后面为电话号码.若不传入国际区号,如1851623xxxx,则默认为国内手机号 - **TemplateId** (str) - (Required) 模板ID(也即短信模板申请时的工单ID),请到 `USMS控制台 `_ 的模板管理页面查看;使用的短信模板必须是已申请并通过审核; - **ExtendCode** (str) - 短信扩展码,格式为阿拉伯数字串,默认不开通,如需开通请联系 UCloud技术支持 - - **SigContent** (str) - 短信签名内容,请到 `USMS控制台 `_ 的签名管理页面查看;使用的短信签名必须是已申请并且通过审核; + - **SigContent** (str) - 短信签名内容,请到 `USMS控制台 `_ 的签名管理页面查看;使用的短信签名必须是已申请并且通过审核;(注:国内短信为必选参数、国际短信为可选参数) - **TemplateParams** (list) - 模板可变参数,以数组的方式填写,举例,TemplateParams.0,TemplateParams.1,... 若模板中无可变参数,则该项可不填写;若模板中有可变参数,则该项为必填项,参数个数需与变量个数保持一致,否则无法发送; - **UserId** (str) - 自定义的业务标识ID,字符串( 长度不能超过32 位),不支持 单引号、表情包符号等特殊字符 diff --git a/ucloud/services/usms/schemas/apis.py b/ucloud/services/usms/schemas/apis.py index 66c49b59..6799e210 100644 --- a/ucloud/services/usms/schemas/apis.py +++ b/ucloud/services/usms/schemas/apis.py @@ -195,6 +195,43 @@ class GetUSMSSendReceiptResponseSchema(schema.ResponseSchema): } +""" +API: GetUSMSSendStatistics + +获取发送统计数据 +""" + + +class GetUSMSSendStatisticsRequestSchema(schema.RequestSchema): + """GetUSMSSendStatistics - 获取发送统计数据""" + + fields = { + "BrevityCode": fields.Str(required=False, dump_to="BrevityCode"), + "Domestic": fields.Int(required=True, dump_to="Domestic"), + "EndDate": fields.Str(required=True, dump_to="EndDate"), + "NumPerPage": fields.Int(required=True, dump_to="NumPerPage"), + "OrderBy": fields.Str(required=True, dump_to="OrderBy"), + "OrderType": fields.Str(required=True, dump_to="OrderType"), + "Page": fields.Int(required=True, dump_to="Page"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + "Purpose": fields.Int(required=False, dump_to="Purpose"), + "StartDate": fields.Str(required=True, dump_to="StartDate"), + } + + +class GetUSMSSendStatisticsResponseSchema(schema.ResponseSchema): + """GetUSMSSendStatistics - 获取发送统计数据""" + + fields = { + "Data": fields.List( + models.StatisticsDataInfoSchema(), required=False, load_from="Data" + ), + "Message": fields.Str(required=False, load_from="Message"), + "StatisticsData": models.StatisticsDataSchema(), + "Total": fields.Int(required=False, load_from="Total"), + } + + """ API: QueryUSMSSignature diff --git a/ucloud/services/usms/schemas/models.py b/ucloud/services/usms/schemas/models.py index dde19a16..cca58668 100644 --- a/ucloud/services/usms/schemas/models.py +++ b/ucloud/services/usms/schemas/models.py @@ -26,6 +26,62 @@ class ReceiptPerSessionSchema(schema.ResponseSchema): } +class StatisticsDataSchema(schema.ResponseSchema): + """StatisticsData - 统计信息""" + + fields = { + "FailCostCount": fields.Int(required=True, load_from="FailCostCount"), + "FailCount": fields.Int(required=True, load_from="FailCount"), + "SendCostCount": fields.Int(required=True, load_from="SendCostCount"), + "SendCount": fields.Int(required=True, load_from="SendCount"), + "SubmitFailCostCount": fields.Int( + required=True, load_from="SubmitFailCostCount" + ), + "SubmitFailCount": fields.Int( + required=True, load_from="SubmitFailCount" + ), + "SuccessCostCount": fields.Int( + required=True, load_from="SuccessCostCount" + ), + "SuccessCount": fields.Int(required=True, load_from="SuccessCount"), + "UnknownCostCount": fields.Int( + required=True, load_from="UnknownCostCount" + ), + "UnknownCount": fields.Int(required=True, load_from="UnknownCount"), + } + + +class StatisticsDataInfoSchema(schema.ResponseSchema): + """StatisticsDataInfo - 统计信息按天聚合""" + + fields = { + "BrevityCode": fields.Str(required=True, load_from="BrevityCode"), + "CostCount": fields.Int(required=True, load_from="CostCount"), + "Count": fields.Int(required=True, load_from="Count"), + "FailedCostCount": fields.Int( + required=True, load_from="FailedCostCount" + ), + "FailedCount": fields.Int(required=True, load_from="FailedCount"), + "SendDate": fields.Str(required=True, load_from="SendDate"), + "SubmitFailedCostCount": fields.Int( + required=True, load_from="SubmitFailedCostCount" + ), + "SubmitFailedCount": fields.Int( + required=True, load_from="SubmitFailedCount" + ), + "SuccessCostCount": fields.Int( + required=True, load_from="SuccessCostCount" + ), + "SuccessCount": fields.Int(required=True, load_from="SuccessCount"), + "SuccessRate": fields.Float(required=True, load_from="SuccessRate"), + "UnknownCostCount": fields.Int( + required=True, load_from="UnknownCostCount" + ), + "UnknownCount": fields.Int(required=True, load_from="UnknownCount"), + "UserId": fields.Str(required=True, load_from="UserId"), + } + + class OutSignatureSchema(schema.ResponseSchema): """OutSignature - 短信签名""" diff --git a/ucloud/version.py b/ucloud/version.py index 2a51ad5c..c78270f4 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.59" +version = "0.11.60"