diff --git a/ucloud/services/ugn/client.py b/ucloud/services/ugn/client.py index 8d932c04..3ea849c6 100644 --- a/ucloud/services/ugn/client.py +++ b/ucloud/services/ugn/client.py @@ -105,13 +105,13 @@ def create_inter_region_bandwidth( return apis.CreateInterRegionBandwidthResponseSchema().loads(resp) def create_ugn(self, req: typing.Optional[dict] = None, **kwargs) -> dict: - """CreateUGN - 创建云联网 + """CreateUGN - **Request** - - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **ProjectId** (str) - (Config) - **Name** (str) - - - **Networks** (list) - 数组,数组内每个元素的字段如下:NetworkID:string,网络实例 ID,如 uvnet-xxxx;Type:string,网络实例类型,枚举值:VPC/HybridGW/...;Region:string,网络实例所属地域,如 cn-sh2;OrgName:string,网络实例所属项目名,如 org-xxx + - **Networks** (list) - - **Remark** (str) - **Response** @@ -227,6 +227,84 @@ def describe_inter_region_bandwidth( resp = self.invoke("DescribeInterRegionBandwidth", d, **kwargs) return apis.DescribeInterRegionBandwidthResponseSchema().loads(resp) + def describe_simple_ugn( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeSimpleUGN - 获取简洁版UGN详情 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **UGNID** (str) - (Required) UGN ID + + **Response** + + - **BwPackages** (list) - 见 **SimpleBwPackage** 模型定义 + - **Message** (str) - + - **Networks** (list) - 见 **SimpleNetwork** 模型定义 + - **Routes** (list) - 见 **SimpleRoute** 模型定义 + - **UGN** (dict) - 见 **UGN** 模型定义 + + **Response Model** + + **SimpleRoute** + - **DstAddr** (str) - 目的网段 + - **NextHopID** (str) - 下一跳网络实例 ID + - **NextHopRegion** (str) - 下一跳网络实例所属地域 + - **NextHopRegionID** (int) - 下一跳网络实例所属地域 id + - **NextHopType** (str) - 下一跳网络实例类型 + - **Priority** (int) - 路由优先级 + + + **SimpleBwPackage** + - **BandWidth** (float) - 带宽值 + - **ChangePayMode** (str) - 带宽包切换计费类型 + - **ChangeStatus** (int) - 带宽包切换状态 + - **ChangeTime** (int) - 带宽包切换时间 + - **CreateTime** (int) - 创建时间 + - **ExpireTime** (int) - 过期时间 + - **Name** (str) - + - **PackageID** (str) - + - **Path** (str) - 智能路径Delay:最低时延|IGP:普通线路|TCO:最低成本 + - **PayMode** (str) - 计费模式 FixedBw:固定带宽|Peak95:经典95|Max5:第五峰值|Traffic:流量计费 + - **Qos** (str) - 服务质量Diamond:钻石|Platinum:铂金|Gold:黄金 + - **RegionA** (str) - 地域A名称 + - **RegionB** (str) - 地域B名称 + - **Remark** (str) - + - **UGNID** (str) - + + + **SimpleNetwork** + - **CreateTime** (int) - + - **Name** (str) - 网络实例名称 + - **NetworkID** (str) - 网络实例的ID,如 vnet-xxxxx + - **OrgID** (int) - 网络实例所在项目的ID + - **OrgName** (str) - 网络实例所在项目名 + - **Region** (str) - 网络实例所在地域 + - **RegionID** (int) - 网络实例所在地域ID + - **Type** (str) - 网络实例类型:VPC/HybridGW/... + + + **UGN** + - **BwPackageCount** (int) - 绑定带宽包数量 + - **CreateTime** (int) - 云联网创建时间 + - **Name** (str) - 云联网名称 + - **NetworkCount** (int) - 关联网络实例数量 + - **Remark** (str) - 云联网备注 + - **UGNID** (str) - 云联网资源 ID + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.DescribeSimpleUGNRequestSchema().dumps(d) + + resp = self.invoke("DescribeSimpleUGN", d, **kwargs) + return apis.DescribeSimpleUGNResponseSchema().loads(resp) + def describe_ugn_instance( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -372,6 +450,145 @@ def detach_ugn_instance( resp = self.invoke("DetachUGNInstance", d, **kwargs) return apis.DetachUGNInstanceResponseSchema().loads(resp) + def get_simple_ugn_bw_packages( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetSimpleUGNBwPackages - 获取指定云联网内的带宽包 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **UGNID** (str) - (Required) + - **Limit** (int) - 分页大小,默认20 + - **Offset** (int) - 偏移量,默认0 + + **Response** + + - **BwPackages** (list) - 见 **SimpleBwPackage** 模型定义 + - **Limit** (int) - + - **Message** (str) - + - **Offset** (int) - + - **TotalCount** (int) - + + **Response Model** + + **SimpleBwPackage** + - **BandWidth** (float) - 带宽值 + - **ChangePayMode** (str) - 带宽包切换计费类型 + - **ChangeStatus** (int) - 带宽包切换状态 + - **ChangeTime** (int) - 带宽包切换时间 + - **CreateTime** (int) - 创建时间 + - **ExpireTime** (int) - 过期时间 + - **Name** (str) - + - **PackageID** (str) - + - **Path** (str) - 智能路径Delay:最低时延|IGP:普通线路|TCO:最低成本 + - **PayMode** (str) - 计费模式 FixedBw:固定带宽|Peak95:经典95|Max5:第五峰值|Traffic:流量计费 + - **Qos** (str) - 服务质量Diamond:钻石|Platinum:铂金|Gold:黄金 + - **RegionA** (str) - 地域A名称 + - **RegionB** (str) - 地域B名称 + - **Remark** (str) - + - **UGNID** (str) - + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.GetSimpleUGNBwPackagesRequestSchema().dumps(d) + + resp = self.invoke("GetSimpleUGNBwPackages", d, **kwargs) + return apis.GetSimpleUGNBwPackagesResponseSchema().loads(resp) + + def list_simple_bw_package( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListSimpleBwPackage - 获取当前项目下的带宽包列表 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Limit** (int) - + - **Offset** (int) - + + **Response** + + - **BwPackages** (list) - 见 **SimpleBwPackage** 模型定义 + - **Limit** (int) - + - **Offset** (int) - + - **TotalCount** (int) - + + **Response Model** + + **SimpleBwPackage** + - **BandWidth** (float) - 带宽值 + - **ChangePayMode** (str) - 带宽包切换计费类型 + - **ChangeStatus** (int) - 带宽包切换状态 + - **ChangeTime** (int) - 带宽包切换时间 + - **CreateTime** (int) - 创建时间 + - **ExpireTime** (int) - 过期时间 + - **Name** (str) - + - **PackageID** (str) - + - **Path** (str) - 智能路径Delay:最低时延|IGP:普通线路|TCO:最低成本 + - **PayMode** (str) - 计费模式 FixedBw:固定带宽|Peak95:经典95|Max5:第五峰值|Traffic:流量计费 + - **Qos** (str) - 服务质量Diamond:钻石|Platinum:铂金|Gold:黄金 + - **RegionA** (str) - 地域A名称 + - **RegionB** (str) - 地域B名称 + - **Remark** (str) - + - **UGNID** (str) - + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.ListSimpleBwPackageRequestSchema().dumps(d) + + resp = self.invoke("ListSimpleBwPackage", d, **kwargs) + return apis.ListSimpleBwPackageResponseSchema().loads(resp) + + def list_ugn(self, req: typing.Optional[dict] = None, **kwargs) -> dict: + """ListUGN - 获取当前项目下所有云联网资源 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Limit** (int) - 分页大小,默认20 + - **Offset** (int) - 偏移量,默认0 + + **Response** + + - **Limit** (int) - + - **Message** (str) - + - **Offset** (int) - + - **TotalCount** (int) - + - **UGNs** (list) - 见 **UGN** 模型定义 + + **Response Model** + + **UGN** + - **BwPackageCount** (int) - 绑定带宽包数量 + - **CreateTime** (int) - 云联网创建时间 + - **Name** (str) - 云联网名称 + - **NetworkCount** (int) - 关联网络实例数量 + - **Remark** (str) - 云联网备注 + - **UGNID** (str) - 云联网资源 ID + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.ListUGNRequestSchema().dumps(d) + + resp = self.invoke("ListUGN", d, **kwargs) + return apis.ListUGNResponseSchema().loads(resp) + def modify_inter_region_bandwidth( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -427,6 +644,33 @@ def modify_ugn_attribute( resp = self.invoke("ModifyUGNAttribute", d, **kwargs) return apis.ModifyUGNAttributeResponseSchema().loads(resp) + def modify_ugn_bandwidth( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ModifyUGNBandwidth - 修改云联网带宽大小 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **BandWidth** (int) - (Required) 带宽值 + - **PackageID** (str) - (Required) 带宽包id + - **UGNID** (str) - (Required) 云联网id + + **Response** + + - **Message** (str) - + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.ModifyUGNBandwidthRequestSchema().dumps(d) + + resp = self.invoke("ModifyUGNBandwidth", d, **kwargs) + return apis.ModifyUGNBandwidthResponseSchema().loads(resp) + def publish_ugn_route_rule( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -459,6 +703,86 @@ def publish_ugn_route_rule( resp = self.invoke("PublishUGNRouteRule", d, **kwargs) return apis.PublishUGNRouteRuleResponseSchema().loads(resp) + def s_describe_ugn( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """SDescribeUGN - 获取简洁版UGN详情 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **UGNID** (str) - (Required) UGN ID + + **Response** + + - **BwPackages** (list) - 见 **SBwPackage** 模型定义 + - **Message** (str) - + - **Networks** (list) - 见 **SNetwork** 模型定义 + - **Policies** (list) - 暂不支持 + - **Routes** (list) - 见 **Route** 模型定义 + - **UGN** (dict) - 见 **UGN** 模型定义 + + **Response Model** + + **SBwPackage** + - **BandWidth** (int) - 带宽值 + - **ChangePayMode** (str) - 带宽包切换计费类型 + - **ChangeStatus** (int) - 带宽包切换状态 + - **ChangeTime** (int) - 带宽包切换时间 + - **CreateTime** (int) - 创建时间 + - **ExpireTime** (int) - 过期时间 + - **Message** (str) - 备注信息 + - **Name** (str) - + - **PackageID** (str) - + - **Path** (str) - 智能路径Delay:最低时延|IGP:普通线路|TCO:最低成本 + - **PayMode** (str) - 计费模式 FixedBw:固定带宽|Peak95:经典95|Max5:第五峰值|Traffic:流量计费 + - **Qos** (str) - 服务质量Diamond:钻石|Platinum:铂金|Gold:黄金 + - **RegionA** (str) - 地域A名称 + - **RegionB** (str) - 地域B名称 + - **Remark** (str) - + - **UGNID** (str) - + + + **SNetwork** + - **CreateTime** (str) - + - **Name** (str) - 网络实例名称 + - **NetworkID** (str) - 网络实例的ID,如 vnet-xxxxx + - **OrgID** (int) - 网络实例所在项目的ID + - **OrgName** (str) - 网络实例所在项目名 + - **Region** (str) - 网络实例所在地域 + - **RegionID** (int) - 网络实例所在地域ID + - **Type** (str) - 网络实例类型:VPC/HybridGW/... + + + **UGN** + - **BwPackageCount** (int) - 绑定带宽包数量 + - **CreateTime** (int) - 云联网创建时间 + - **Name** (str) - 云联网名称 + - **NetworkCount** (int) - 关联网络实例数量 + - **Remark** (str) - 云联网备注 + - **UGNID** (str) - 云联网资源 ID + + + **Route** + - **DstAddr** (str) - 目的网段 + - **NexthopID** (str) - 下一跳网络实例 ID + - **NexthopRegion** (str) - 下一跳网络实例所属地域 + - **NexthopRegionID** (int) - 下一跳网络实例所属地域 id + - **NexthopType** (str) - 下一跳网络实例类型 + - **Priority** (int) - 路由优先级 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.SDescribeUGNRequestSchema().dumps(d) + + resp = self.invoke("SDescribeUGN", d, **kwargs) + return apis.SDescribeUGNResponseSchema().loads(resp) + def unpublish_ugn_route_rule( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -490,14 +814,14 @@ def unpublish_ugn_route_rule( def update_ugn_bw_package( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: - """UpdateUGNBwPackage - 更新带宽包配置 + """UpdateUGNBwPackage - **Request** - - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **ProjectId** (str) - (Config) - **BwBidRate** (float) - (Required) - **BwULRate** (float) - (Required) - - **PackageID** (str) - (Required) 带宽包 ID + - **PackageID** (str) - (Required) - **Path** (str) - (Required) - **PayMode** (str) - (Required) - **Qos** (str) - (Required) @@ -507,12 +831,12 @@ def update_ugn_bw_package( - **RegionB** (str) - (Required) - **RegionBBwMax** (int) - (Required) - **RegionBBwMin** (int) - (Required) - - **UGNID** (str) - (Required) 所绑定的 UGN ID + - **UGNID** (str) - (Required) - **ChargeType** (str) - - **Coupon** (str) - - - **Name** (str) - 名称 + - **Name** (str) - - **Quantity** (str) - - - **Remark** (str) - 备注 + - **Remark** (str) - **Response** @@ -526,5 +850,8 @@ def update_ugn_bw_package( req and d.update(req) d = apis.UpdateUGNBwPackageRequestSchema().dumps(d) + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + resp = self.invoke("UpdateUGNBwPackage", d, **kwargs) return apis.UpdateUGNBwPackageResponseSchema().loads(resp) diff --git a/ucloud/services/ugn/schemas/apis.py b/ucloud/services/ugn/schemas/apis.py index 35d67f1e..3c8f1ab6 100644 --- a/ucloud/services/ugn/schemas/apis.py +++ b/ucloud/services/ugn/schemas/apis.py @@ -102,12 +102,12 @@ class CreateInterRegionBandwidthResponseSchema(schema.ResponseSchema): """ API: CreateUGN -创建云联网 + """ class CreateUGNRequestSchema(schema.RequestSchema): - """CreateUGN - 创建云联网""" + """CreateUGN -""" fields = { "Name": fields.Str(required=False, dump_to="Name"), @@ -118,7 +118,7 @@ class CreateUGNRequestSchema(schema.RequestSchema): class CreateUGNResponseSchema(schema.ResponseSchema): - """CreateUGN - 创建云联网""" + """CreateUGN -""" fields = { "Message": fields.Str(required=False, load_from="Message"), @@ -210,6 +210,42 @@ class DescribeInterRegionBandwidthResponseSchema(schema.ResponseSchema): } +""" +API: DescribeSimpleUGN + +获取简洁版UGN详情 +""" + + +class DescribeSimpleUGNRequestSchema(schema.RequestSchema): + """DescribeSimpleUGN - 获取简洁版UGN详情""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "UGNID": fields.Str(required=True, dump_to="UGNID"), + } + + +class DescribeSimpleUGNResponseSchema(schema.ResponseSchema): + """DescribeSimpleUGN - 获取简洁版UGN详情""" + + fields = { + "BwPackages": fields.List( + models.SimpleBwPackageSchema(), + required=True, + load_from="BwPackages", + ), + "Message": fields.Str(required=True, load_from="Message"), + "Networks": fields.List( + models.SimpleNetworkSchema(), required=True, load_from="Networks" + ), + "Routes": fields.List( + models.SimpleRouteSchema(), required=True, load_from="Routes" + ), + "UGN": models.UGNSchema(), + } + + """ API: DescribeUGNInstance @@ -324,6 +360,103 @@ class DetachUGNInstanceResponseSchema(schema.ResponseSchema): } +""" +API: GetSimpleUGNBwPackages + +获取指定云联网内的带宽包 +""" + + +class GetSimpleUGNBwPackagesRequestSchema(schema.RequestSchema): + """GetSimpleUGNBwPackages - 获取指定云联网内的带宽包""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + "UGNID": fields.Str(required=True, dump_to="UGNID"), + } + + +class GetSimpleUGNBwPackagesResponseSchema(schema.ResponseSchema): + """GetSimpleUGNBwPackages - 获取指定云联网内的带宽包""" + + fields = { + "BwPackages": fields.List( + models.SimpleBwPackageSchema(), + required=True, + load_from="BwPackages", + ), + "Limit": fields.Int(required=True, load_from="Limit"), + "Message": fields.Str(required=True, load_from="Message"), + "Offset": fields.Int(required=True, load_from="Offset"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: ListSimpleBwPackage + +获取当前项目下的带宽包列表 +""" + + +class ListSimpleBwPackageRequestSchema(schema.RequestSchema): + """ListSimpleBwPackage - 获取当前项目下的带宽包列表""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + } + + +class ListSimpleBwPackageResponseSchema(schema.ResponseSchema): + """ListSimpleBwPackage - 获取当前项目下的带宽包列表""" + + fields = { + "BwPackages": fields.List( + models.SimpleBwPackageSchema(), + required=True, + load_from="BwPackages", + ), + "Limit": fields.Int(required=True, load_from="Limit"), + "Offset": fields.Int(required=True, load_from="Offset"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: ListUGN + +获取当前项目下所有云联网资源 +""" + + +class ListUGNRequestSchema(schema.RequestSchema): + """ListUGN - 获取当前项目下所有云联网资源""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + } + + +class ListUGNResponseSchema(schema.ResponseSchema): + """ListUGN - 获取当前项目下所有云联网资源""" + + fields = { + "Limit": fields.Int(required=False, load_from="Limit"), + "Message": fields.Str(required=True, load_from="Message"), + "Offset": fields.Int(required=False, load_from="Offset"), + "TotalCount": fields.Int(required=False, load_from="TotalCount"), + "UGNs": fields.List( + models.UGNSchema(), required=True, load_from="UGNs" + ), + } + + """ API: ModifyInterRegionBandwidth @@ -379,6 +512,32 @@ class ModifyUGNAttributeResponseSchema(schema.ResponseSchema): } +""" +API: ModifyUGNBandwidth + +修改云联网带宽大小 +""" + + +class ModifyUGNBandwidthRequestSchema(schema.RequestSchema): + """ModifyUGNBandwidth - 修改云联网带宽大小""" + + fields = { + "BandWidth": fields.Int(required=True, dump_to="BandWidth"), + "PackageID": fields.Str(required=True, dump_to="PackageID"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "UGNID": fields.Str(required=True, dump_to="UGNID"), + } + + +class ModifyUGNBandwidthResponseSchema(schema.ResponseSchema): + """ModifyUGNBandwidth - 修改云联网带宽大小""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + """ API: PublishUGNRouteRule @@ -411,6 +570,43 @@ class PublishUGNRouteRuleResponseSchema(schema.ResponseSchema): } +""" +API: SDescribeUGN + +获取简洁版UGN详情 +""" + + +class SDescribeUGNRequestSchema(schema.RequestSchema): + """SDescribeUGN - 获取简洁版UGN详情""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "UGNID": fields.Str(required=True, dump_to="UGNID"), + } + + +class SDescribeUGNResponseSchema(schema.ResponseSchema): + """SDescribeUGN - 获取简洁版UGN详情""" + + fields = { + "BwPackages": fields.List( + models.SBwPackageSchema(), required=True, load_from="BwPackages" + ), + "Message": fields.Str(required=True, load_from="Message"), + "Networks": fields.List( + models.SNetworkSchema(), required=True, load_from="Networks" + ), + "Policies": fields.List( + fields.Str(), required=True, load_from="Policies" + ), + "Routes": fields.List( + models.RouteSchema(), required=True, load_from="Routes" + ), + "UGN": models.UGNSchema(), + } + + """ API: UnpublishUGNRouteRule @@ -445,12 +641,12 @@ class UnpublishUGNRouteRuleResponseSchema(schema.ResponseSchema): """ API: UpdateUGNBwPackage -更新带宽包配置 + """ class UpdateUGNBwPackageRequestSchema(schema.RequestSchema): - """UpdateUGNBwPackage - 更新带宽包配置""" + """UpdateUGNBwPackage -""" fields = { "BwBidRate": fields.Float(required=True, dump_to="BwBidRate"), @@ -476,7 +672,7 @@ class UpdateUGNBwPackageRequestSchema(schema.RequestSchema): class UpdateUGNBwPackageResponseSchema(schema.ResponseSchema): - """UpdateUGNBwPackage - 更新带宽包配置""" + """UpdateUGNBwPackage -""" fields = { "Message": fields.Str(required=True, load_from="Message"), diff --git a/ucloud/services/ugn/schemas/models.py b/ucloud/services/ugn/schemas/models.py index a7165334..e057d80a 100644 --- a/ucloud/services/ugn/schemas/models.py +++ b/ucloud/services/ugn/schemas/models.py @@ -22,6 +22,71 @@ class InterRegionBandwidthSchema(schema.ResponseSchema): } +class UGNSchema(schema.ResponseSchema): + """UGN - 云联网信息""" + + fields = { + "BwPackageCount": fields.Int(required=True, load_from="BwPackageCount"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "Name": fields.Str(required=True, load_from="Name"), + "NetworkCount": fields.Int(required=True, load_from="NetworkCount"), + "Remark": fields.Str(required=True, load_from="Remark"), + "UGNID": fields.Str(required=True, load_from="UGNID"), + } + + +class SimpleRouteSchema(schema.ResponseSchema): + """SimpleRoute - 简洁版云联网路由条目""" + + fields = { + "DstAddr": fields.Str(required=False, load_from="DstAddr"), + "NextHopID": fields.Str(required=False, load_from="NextHopID"), + "NextHopRegion": fields.Str(required=False, load_from="NextHopRegion"), + "NextHopRegionID": fields.Int( + required=False, load_from="NextHopRegionID" + ), + "NextHopType": fields.Str(required=False, load_from="NextHopType"), + "Priority": fields.Int(required=False, load_from="Priority"), + } + + +class SimpleNetworkSchema(schema.ResponseSchema): + """SimpleNetwork - 简洁版云联网网络实例""" + + fields = { + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "Name": fields.Str(required=True, load_from="Name"), + "NetworkID": fields.Str(required=True, load_from="NetworkID"), + "OrgID": fields.Int(required=False, load_from="OrgID"), + "OrgName": fields.Str(required=True, load_from="OrgName"), + "Region": fields.Str(required=True, load_from="Region"), + "RegionID": fields.Int(required=False, load_from="RegionID"), + "Type": fields.Str(required=True, load_from="Type"), + } + + +class SimpleBwPackageSchema(schema.ResponseSchema): + """SimpleBwPackage - 简洁版带宽包""" + + fields = { + "BandWidth": fields.Float(required=True, load_from="BandWidth"), + "ChangePayMode": fields.Str(required=False, load_from="ChangePayMode"), + "ChangeStatus": fields.Int(required=False, load_from="ChangeStatus"), + "ChangeTime": fields.Int(required=False, load_from="ChangeTime"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), + "Name": fields.Str(required=False, load_from="Name"), + "PackageID": fields.Str(required=True, load_from="PackageID"), + "Path": fields.Str(required=True, load_from="Path"), + "PayMode": fields.Str(required=True, load_from="PayMode"), + "Qos": fields.Str(required=True, load_from="Qos"), + "RegionA": fields.Str(required=True, load_from="RegionA"), + "RegionB": fields.Str(required=True, load_from="RegionB"), + "Remark": fields.Str(required=False, load_from="Remark"), + "UGNID": fields.Str(required=True, load_from="UGNID"), + } + + class InstanceSchema(schema.ResponseSchema): """Instance - 云联网实例信息""" @@ -71,3 +136,56 @@ class RouteRuleSchema(schema.ResponseSchema): "RouteRuleId": fields.Str(required=True, load_from="RouteRuleId"), "RouteRuleType": fields.Int(required=True, load_from="RouteRuleType"), } + + +class SNetworkSchema(schema.ResponseSchema): + """SNetwork - 简洁版云联网网络实例""" + + fields = { + "CreateTime": fields.Str(required=False, load_from="CreateTime"), + "Name": fields.Str(required=True, load_from="Name"), + "NetworkID": fields.Str(required=True, load_from="NetworkID"), + "OrgID": fields.Int(required=False, load_from="OrgID"), + "OrgName": fields.Str(required=True, load_from="OrgName"), + "Region": fields.Str(required=True, load_from="Region"), + "RegionID": fields.Int(required=False, load_from="RegionID"), + "Type": fields.Str(required=True, load_from="Type"), + } + + +class SBwPackageSchema(schema.ResponseSchema): + """SBwPackage - 简洁版带宽包""" + + fields = { + "BandWidth": fields.Int(required=True, load_from="BandWidth"), + "ChangePayMode": fields.Str(required=False, load_from="ChangePayMode"), + "ChangeStatus": fields.Int(required=False, load_from="ChangeStatus"), + "ChangeTime": fields.Int(required=False, load_from="ChangeTime"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), + "Message": fields.Str(required=False, load_from="Message"), + "Name": fields.Str(required=False, load_from="Name"), + "PackageID": fields.Str(required=True, load_from="PackageID"), + "Path": fields.Str(required=True, load_from="Path"), + "PayMode": fields.Str(required=True, load_from="PayMode"), + "Qos": fields.Str(required=True, load_from="Qos"), + "RegionA": fields.Str(required=True, load_from="RegionA"), + "RegionB": fields.Str(required=True, load_from="RegionB"), + "Remark": fields.Str(required=False, load_from="Remark"), + "UGNID": fields.Str(required=True, load_from="UGNID"), + } + + +class RouteSchema(schema.ResponseSchema): + """Route - 云联网路由条目""" + + fields = { + "DstAddr": fields.Str(required=False, load_from="DstAddr"), + "NexthopID": fields.Str(required=False, load_from="NexthopID"), + "NexthopRegion": fields.Str(required=False, load_from="NexthopRegion"), + "NexthopRegionID": fields.Int( + required=False, load_from="NexthopRegionID" + ), + "NexthopType": fields.Str(required=False, load_from="NexthopType"), + "Priority": fields.Int(required=False, load_from="Priority"), + } diff --git a/ucloud/services/usms/client.py b/ucloud/services/usms/client.py index bbf65597..e3273ee4 100644 --- a/ucloud/services/usms/client.py +++ b/ucloud/services/usms/client.py @@ -13,6 +13,39 @@ def __init__( ): super(USMSClient, self).__init__(config, transport, middleware, logger) + def add_backfill(self, req: typing.Optional[dict] = None, **kwargs) -> dict: + """AddBackfill - 用户通过接口发送消息,当消息在终端被消费,调用该接口,进行记录。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **SendNo** (str) - (Required) 发送Number,记录一次发送请求的唯一性 + - **Target** (str) - (Required) 短信的接收目标,手机号需要添加国家码,比如(1)231xxxx + - **BackfillTime** (int) - 回填时间,秒级别时间戳 + - **Content** (str) - 回填内容 + - **SendTime** (int) - 发送请求的时间,秒级别时间戳 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 返回错误消息。当 RetCode 非 0 时提供详细的描述信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.AddBackfillRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("AddBackfill", d, **kwargs) + return apis.AddBackfillResponseSchema().loads(resp) + def create_usms_signature( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: diff --git a/ucloud/services/usms/schemas/apis.py b/ucloud/services/usms/schemas/apis.py index 152d22d1..66c49b59 100644 --- a/ucloud/services/usms/schemas/apis.py +++ b/ucloud/services/usms/schemas/apis.py @@ -8,6 +8,36 @@ """ +""" +API: AddBackfill + +用户通过接口发送消息,当消息在终端被消费,调用该接口,进行记录。 +""" + + +class AddBackfillRequestSchema(schema.RequestSchema): + """AddBackfill - 用户通过接口发送消息,当消息在终端被消费,调用该接口,进行记录。""" + + fields = { + "BackfillTime": fields.Int(required=False, dump_to="BackfillTime"), + "Content": fields.Str(required=False, dump_to="Content"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "SendNo": fields.Str(required=True, dump_to="SendNo"), + "SendTime": fields.Int(required=False, dump_to="SendTime"), + "Target": fields.Str(required=True, dump_to="Target"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class AddBackfillResponseSchema(schema.ResponseSchema): + """AddBackfill - 用户通过接口发送消息,当消息在终端被消费,调用该接口,进行记录。""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + """ API: CreateUSMSSignature diff --git a/ucloud/version.py b/ucloud/version.py index 3b98991e..d1c78830 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.51" +version = "0.11.52"