From a4c8340a02ea4832c3aae524bdd260f6c8c7447f Mon Sep 17 00:00:00 2001 From: ucloud-bot Date: Wed, 19 Aug 2026 10:03:16 +0000 Subject: [PATCH] sdk: rolling update for 0.11.118 --- docs/services.rst | 7 + ucloud/client.py | 10 + ucloud/services/sandbox/__init__.py | 0 ucloud/services/sandbox/client.py | 62 ++ ucloud/services/sandbox/schemas/__init__.py | 0 ucloud/services/sandbox/schemas/apis.py | 33 + ucloud/services/sandbox/schemas/models.py | 27 + ucloud/services/uai_modelverse/client.py | 62 +- .../services/uai_modelverse/schemas/apis.py | 8 + .../services/uai_modelverse/schemas/models.py | 40 +- ucloud/services/uwsc/client.py | 686 ++++++++++++++++++ ucloud/services/uwsc/schemas/apis.py | 616 ++++++++++++++++ ucloud/services/uwsc/schemas/models.py | 156 ++++ ucloud/version.py | 2 +- 14 files changed, 1678 insertions(+), 31 deletions(-) create mode 100644 ucloud/services/sandbox/__init__.py create mode 100644 ucloud/services/sandbox/client.py create mode 100644 ucloud/services/sandbox/schemas/__init__.py create mode 100644 ucloud/services/sandbox/schemas/apis.py create mode 100644 ucloud/services/sandbox/schemas/models.py diff --git a/docs/services.rst b/docs/services.rst index 3975f591..c85608c1 100644 --- a/docs/services.rst +++ b/docs/services.rst @@ -380,3 +380,10 @@ ipv6gw .. autoclass:: ucloud.services.ipv6gw.client.ipv6gwClient :members: + +sandbox +------- + +.. autoclass:: ucloud.services.sandbox.client.sandboxClient + :members: + diff --git a/ucloud/client.py b/ucloud/client.py index b5a27ffb..d8170545 100644 --- a/ucloud/client.py +++ b/ucloud/client.py @@ -552,6 +552,16 @@ def ipv6gw(self): self.logger, ) + def sandbox(self): + from ucloud.services.sandbox.client import sandboxClient + + return sandboxClient( + self._auto_config("sandbox"), + self.transport, + self.middleware, + self.logger, + ) + def vpc(self): from ucloud.services.vpc.client import VPCClient diff --git a/ucloud/services/sandbox/__init__.py b/ucloud/services/sandbox/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ucloud/services/sandbox/client.py b/ucloud/services/sandbox/client.py new file mode 100644 index 00000000..469d6c33 --- /dev/null +++ b/ucloud/services/sandbox/client.py @@ -0,0 +1,62 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.sandbox.schemas import apis + + +class sandboxClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(sandboxClient, self).__init__( + config, transport, middleware, logger + ) + + def get_sandbox_site( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetSandboxSite - 获取沙箱站点 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **SandboxID** (str) - (Required) 沙箱ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Site** (dict) - 见 **Site** 模型定义 + + **Response Model** + + **Site** + - **AccessCode** (str) - 访问码 + - **ConnectKey** (str) - 连接密钥 + - **CustomDomain** (str) - 自定义域名 + - **CustomDomainError** (str) - 自定义域名签发错误信息 + - **CustomDomainStatus** (str) - 自定义域名签发状态 + - **Envs** (list) - 站点环境变量。格式:key=value + - **Host** (str) - 站点访问地址 + - **ID** (str) - 站点ID + - **KeyID** (str) - 站点Key ID + - **Name** (str) - 名称 + - **Ready** (bool) - 是否就绪 + - **SandboxID** (str) - 沙箱ID + - **UpdateTime** (int) - 更新时间 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetSandboxSiteRequestSchema().dumps(d) + + resp = self.invoke("GetSandboxSite", d, **kwargs) + return apis.GetSandboxSiteResponseSchema().loads(resp) diff --git a/ucloud/services/sandbox/schemas/__init__.py b/ucloud/services/sandbox/schemas/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ucloud/services/sandbox/schemas/apis.py b/ucloud/services/sandbox/schemas/apis.py new file mode 100644 index 00000000..1629e785 --- /dev/null +++ b/ucloud/services/sandbox/schemas/apis.py @@ -0,0 +1,33 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields +from ucloud.services.sandbox.schemas import models + +""" sandbox API Schema +""" + + +""" +API: GetSandboxSite + +获取沙箱站点 +""" + + +class GetSandboxSiteRequestSchema(schema.RequestSchema): + """GetSandboxSite - 获取沙箱站点""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "SandboxID": fields.Str(required=True, dump_to="SandboxID"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class GetSandboxSiteResponseSchema(schema.ResponseSchema): + """GetSandboxSite - 获取沙箱站点""" + + fields = { + "Site": models.SiteSchema(), + } diff --git a/ucloud/services/sandbox/schemas/models.py b/ucloud/services/sandbox/schemas/models.py new file mode 100644 index 00000000..ad2c948f --- /dev/null +++ b/ucloud/services/sandbox/schemas/models.py @@ -0,0 +1,27 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class SiteSchema(schema.ResponseSchema): + """Site - 站点空间""" + + fields = { + "AccessCode": fields.Str(required=True, load_from="AccessCode"), + "ConnectKey": fields.Str(required=True, load_from="ConnectKey"), + "CustomDomain": fields.Str(required=False, load_from="CustomDomain"), + "CustomDomainError": fields.Str( + required=False, load_from="CustomDomainError" + ), + "CustomDomainStatus": fields.Str( + required=False, load_from="CustomDomainStatus" + ), + "Envs": fields.List(fields.Str()), + "Host": fields.Str(required=True, load_from="Host"), + "ID": fields.Str(required=True, load_from="ID"), + "KeyID": fields.Str(required=True, load_from="KeyID"), + "Name": fields.Str(required=True, load_from="Name"), + "Ready": fields.Bool(required=True, load_from="Ready"), + "SandboxID": fields.Str(required=True, load_from="SandboxID"), + "UpdateTime": fields.Int(required=True, load_from="UpdateTime"), + } diff --git a/ucloud/services/uai_modelverse/client.py b/ucloud/services/uai_modelverse/client.py index 20c9532f..e73ff9ea 100644 --- a/ucloud/services/uai_modelverse/client.py +++ b/ucloud/services/uai_modelverse/client.py @@ -28,6 +28,7 @@ def create_um_infer_api_key( - **GrantAllModels** (bool) - 全部模型访问开关,开启不受 GrantedModels 参数控制,关闭只能访问 GrantedModels 中添加模型 - **GrantedModels** (str) - 授权模型,内容为数组格式。当 GrantAllModels 为false时 当前key只可访问数组中模型。例:["deepseek-ai/DeepSeek-V3.2-Think"] - **IPWhitelist** (str) - ip白名单,换行分割的多组ip。支持IPv4和网段,输入后回车生效,最多100个, 示例:192.168.1.1192.168.1.10-192.168.1.100192.168.1.10/24 + - **InferenceLogEnabled** (int) - 是否开启推理日志 - **ModelverseDisabled** (int) - 是否modelverse可用 0: 启用 1: 禁用 - **MonthlyLimitAmount** (str) - 月限额,单位随用户所在渠道。126渠道单位为美元 - **SandBoxDisabled** (int) - 是否沙盒可用 0: 启用 1: 禁用(astraflow 沙盒控制未上线,暂时无效) @@ -43,14 +44,17 @@ def create_um_infer_api_key( - **ChannelId** (int) - 渠道id - **CreateTime** (int) - 创建时间 - **DailyLimitAmount** (str) - 日限额,单位随用户所在渠道。126渠道单位为美元 + - **DailyUsedAmount** (str) - 日已使用额,单位随用户所在渠道。126渠道单位为美元 - **ExpireTime** (int) - 过期时间的unix时间戳,-1 用不过期 - **GrantAllModels** (bool) - 全部模型访问开关,开启不受 GrantedModels 参数控制,关闭只能访问 GrantedModels 中添加模型 - **GrantedModels** (list) - 授权的模型,英文逗号分隔,all表示所有模型都有权限 - **IPWhitelist** (str) - ip白名单,换行分割的多组ip。支持IPv4和网段,输入后回车生效,最多100个, 示例:  192.168.1.1 192.168.1.10-192.168.1.100 192.168.1.10/24 + - **InferenceLogEnabled** (int) - 是否开启推理日志 - **Key** (str) - 密钥值 - **KeyId** (str) - 资源ID - **ModelverseDisabled** (int) - 是否modelverse可用 0: 启用 1: 禁用 - **MonthlyLimitAmount** (str) - 月限额,单位随用户所在渠道。126渠道单位为美元 + - **MonthlyUsedAmount** (str) - 月已使用额,单位随用户所在渠道。126渠道单位为美元 - **Name** (str) - 名称 - **OrganizationId** (int) - 项目id - **SandBoxDisabled** (int) - 是否沙盒可用 0: 启用 1: 禁用(astraflow 沙盒控制未上线,暂时无效) @@ -349,16 +353,6 @@ def get_uf_square_model_detail( **Response Model** - **Pricing** - - **Completion** (float) - 输出定价 - - **Currency** (str) - 币种 - - **Image** (float) - 生图定价 - - **Prompt** (float) - 提示词定价 - - **Unit** (str) - 单位(中文),如“次” “百万” - - **UnitEn** (str) - 单位(English),如“Time” “Million” - - **Video** (str) - 生视频定价 - - **PriceRate** - **ChargeItem** (str) - 收费项:input/output/thinking/tool... - **ChargeItemDescription** (str) - 收费项描述 @@ -376,6 +370,16 @@ def get_uf_square_model_detail( - **Rates** (list) - 见 **PriceRate** 模型定义 + **Pricing** + - **Completion** (float) - 输出定价 + - **Currency** (str) - 币种 + - **Image** (float) - 生图定价 + - **Prompt** (float) - 提示词定价 + - **Unit** (str) - 单位(中文),如“次” “百万” + - **UnitEn** (str) - 单位(English),如“Time” “Million” + - **Video** (str) - 生视频定价 + + **SquareModel** - **CreateAt** (int) - 创建时间 - **Describe** (str) - 详细描述 @@ -757,9 +761,11 @@ def list_uf_square_model( - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Capabilities** (list) - 模型特性,可选值来源于ListUFSquareModelFilters枚举接口。可多选 - **Keyword** (str) - 关键字 - **Language** (list) - 语言,数组类型,可选值 ["chinese", "english"] - **Limit** (int) - 每页数量 + - **Manufacturer** (list) - 制造商,可选值来源于ListUFSquareModelFilters枚举接口。可多选 - **MaxModelLen** (list) - 上下文长度,数组类型,可选值 [0,4096,16384,32768,131072,256000,262144,1048576] - **ModelType** (str) - 模型类型 - **Offset** (int) - 偏移量 @@ -774,26 +780,51 @@ def list_uf_square_model( **Response Model** + **PriceRate** + - **ChargeItem** (str) - 收费项:input/output/thinking/tool... + - **ChargeItemDescription** (str) - 收费项描述 + - **ChargeItemDescriptionEn** (str) - 收费项描述英文描述 + - **Currency** (str) - 货币单位 + - **Price** (str) - 价格 + - **Unit** (str) - 计价单位 + - **UnitEn** (str) - 计价单位英文 + + **Pricing** - **Completion** (float) - 输出定价 - **Currency** (str) - 币种 - **Image** (float) - 生图定价 - **Prompt** (float) - 提示词定价 + - **Unit** (str) - 单位(中文),如“次” “百万” + - **UnitEn** (str) - 单位(English),如“Time” “Million” + - **Video** (str) - 生视频定价 + + + **PriceTier** + - **Condition** (str) - 档位/条件(例如 "32k"、"128k") + - **Description** (str) - 档位描述(例如 "标准上下文 32k") + - **DescriptionEn** (str) - 档位描述(例如 "标准上下文 32k") + - **Rates** (list) - 见 **PriceRate** 模型定义 **SquareModel** + - **BatchName** (str) - 关联的 batch 模型名称 + - **BatchSquareModelId** (str) - 关联的 batch 模型广场id - **CreateAt** (int) - 创建时间 - **Describe** (str) - 详细描述 - **HfUpdateTime** (int) - HuggingFace 更新时间 - **Icon** (str) - 图标 - **Id** (str) - 主键 + - **IsHasBatch** (bool) - 是否关联有可用 batch 模型 - **Language** (list) - 语言 + - **Manufacturer** (str) - 制造商 - **MaxModelLen** (int) - 模型长度 - **ModelType** (str) - 模型类型 - **Name** (str) - 名称 - **Pricing** (dict) - 见 **Pricing** 模型定义 - **SimpleDescribe** (str) - 简要描述 - **SupportedCapabilities** (list) - 模型能力 + - **Tiers** (list) - 见 **PriceTier** 模型定义 - **UpdateAt** (int) - 更新时间 @@ -910,11 +941,6 @@ def list_um_infer_request_logs( **Response Model** - **RequestLogSummary** - - **FailedRequests** (int) - 查询条件命中的失败请求数 - - **TotalRequests** (int) - 查询条件命中的总请求数 - - **RequestLogItem** - **ApiKeyId** (str) - API Key ID - **ApiKeyName** (str) - API Key 名称 @@ -939,6 +965,11 @@ def list_um_infer_request_logs( - **TotalTokens** (int) - 总 Token 数 + **RequestLogSummary** + - **FailedRequests** (int) - 查询条件命中的失败请求数 + - **TotalRequests** (int) - 查询条件命中的总请求数 + + **ListUMInferRequestLogsData** - **Items** (list) - 见 **RequestLogItem** 模型定义 - **Summary** (dict) - 见 **RequestLogSummary** 模型定义 @@ -1133,6 +1164,7 @@ def update_um_infer_api_key( - **GrantAllModels** (bool) - 全部模型访问开关,开启不受 GrantedModels 参数控制,关闭只能访问 GrantedModels 中添加模型 - **GrantedModels** (str) - 授权模型,内容为数组格式。当 GrantAllModels 为false时 当前key只可访问数组中模型。例:["deepseek-ai/DeepSeek-V3.2-Think"] - **IPWhitelist** (str) - ip白名单,换行分割的多组ip。支持IPv4和网段,输入后回车生效,最多100个, 示例:  192.168.1.1 192.168.1.10-192.168.1.100 192.168.1.10/24 + - **InferenceLogEnabled** (int) - 是否开启推理日志 - **ModelverseDisabled** (int) - 是否modelverse可用 0: 启用 1: 禁用 - **MonthlyLimitAmount** (str) - 月限额,单位随用户所在渠道。126渠道单位为美元 - **Name** (str) - 更新的名称 diff --git a/ucloud/services/uai_modelverse/schemas/apis.py b/ucloud/services/uai_modelverse/schemas/apis.py index e39dfaa9..c5b8231f 100644 --- a/ucloud/services/uai_modelverse/schemas/apis.py +++ b/ucloud/services/uai_modelverse/schemas/apis.py @@ -24,6 +24,9 @@ class CreateUMInferAPIKeyRequestSchema(schema.RequestSchema): "GrantAllModels": fields.Bool(required=False, dump_to="GrantAllModels"), "GrantedModels": fields.Str(required=False, dump_to="GrantedModels"), "IPWhitelist": fields.Str(required=False, dump_to="IPWhitelist"), + "InferenceLogEnabled": fields.Int( + required=False, dump_to="InferenceLogEnabled" + ), "ModelverseDisabled": fields.Int( required=False, dump_to="ModelverseDisabled" ), @@ -534,9 +537,11 @@ class ListUFSquareModelRequestSchema(schema.RequestSchema): """ListUFSquareModel - 查询模型广场数据""" fields = { + "Capabilities": fields.List(fields.Str()), "Keyword": fields.Str(required=False, dump_to="Keyword"), "Language": fields.List(fields.Str()), "Limit": fields.Int(required=False, dump_to="Limit"), + "Manufacturer": fields.List(fields.Str()), "MaxModelLen": fields.List(fields.Int()), "ModelType": fields.Str(required=False, dump_to="ModelType"), "Offset": fields.Int(required=False, dump_to="Offset"), @@ -760,6 +765,9 @@ class UpdateUMInferAPIKeyRequestSchema(schema.RequestSchema): "GrantAllModels": fields.Bool(required=False, dump_to="GrantAllModels"), "GrantedModels": fields.Str(required=False, dump_to="GrantedModels"), "IPWhitelist": fields.Str(required=False, dump_to="IPWhitelist"), + "InferenceLogEnabled": fields.Int( + required=False, dump_to="InferenceLogEnabled" + ), "KeyId": fields.Str(required=True, dump_to="KeyId"), "ModelverseDisabled": fields.Int( required=False, dump_to="ModelverseDisabled" diff --git a/ucloud/services/uai_modelverse/schemas/models.py b/ucloud/services/uai_modelverse/schemas/models.py index 184baa20..3e9a2a65 100644 --- a/ucloud/services/uai_modelverse/schemas/models.py +++ b/ucloud/services/uai_modelverse/schemas/models.py @@ -56,6 +56,15 @@ class DownloadFileDataSchema(schema.ResponseSchema): } +class FilterOptionIntegerSchema(schema.ResponseSchema): + """FilterOptionInteger - 整数类型筛选选项""" + + fields = { + "Name": fields.Str(required=False, load_from="Name"), + "Value": fields.Int(required=False, load_from="Value"), + } + + class FilterOptionStringSchema(schema.ResponseSchema): """FilterOptionString - 字符串类型筛选选项""" @@ -65,12 +74,17 @@ class FilterOptionStringSchema(schema.ResponseSchema): } -class FilterOptionIntegerSchema(schema.ResponseSchema): - """FilterOptionInteger - 整数类型筛选选项""" +class PricingSchema(schema.ResponseSchema): + """Pricing - 定价策略""" fields = { - "Name": fields.Str(required=False, load_from="Name"), - "Value": fields.Int(required=False, load_from="Value"), + "Completion": fields.Float(required=False, load_from="Completion"), + "Currency": fields.Str(required=False, load_from="Currency"), + "Image": fields.Float(required=False, load_from="Image"), + "Prompt": fields.Float(required=False, load_from="Prompt"), + "Unit": fields.Str(required=False, load_from="Unit"), + "UnitEn": fields.Str(required=False, load_from="UnitEn"), + "Video": fields.Str(required=False, load_from="Video"), } @@ -103,27 +117,22 @@ class PriceTierSchema(schema.ResponseSchema): } -class PricingSchema(schema.ResponseSchema): - """Pricing - 定价策略""" - - fields = { - "Completion": fields.Float(required=False, load_from="Completion"), - "Currency": fields.Str(required=False, load_from="Currency"), - "Image": fields.Float(required=False, load_from="Image"), - "Prompt": fields.Float(required=False, load_from="Prompt"), - } - - class SquareModelSchema(schema.ResponseSchema): """SquareModel - 广场模型""" fields = { + "BatchName": fields.Str(required=False, load_from="BatchName"), + "BatchSquareModelId": fields.Str( + required=True, load_from="BatchSquareModelId" + ), "CreateAt": fields.Int(required=False, load_from="CreateAt"), "Describe": fields.Str(required=False, load_from="Describe"), "HfUpdateTime": fields.Int(required=False, load_from="HfUpdateTime"), "Icon": fields.Str(required=False, load_from="Icon"), "Id": fields.Str(required=False, load_from="Id"), + "IsHasBatch": fields.Bool(required=False, load_from="IsHasBatch"), "Language": fields.List(fields.Str()), + "Manufacturer": fields.Str(required=False, load_from="Manufacturer"), "MaxModelLen": fields.Int(required=False, load_from="MaxModelLen"), "ModelType": fields.Str(required=False, load_from="ModelType"), "Name": fields.Str(required=False, load_from="Name"), @@ -132,6 +141,7 @@ class SquareModelSchema(schema.ResponseSchema): required=False, load_from="SimpleDescribe" ), "SupportedCapabilities": fields.List(fields.Str()), + "Tiers": fields.List(PriceTierSchema()), "UpdateAt": fields.Int(required=False, load_from="UpdateAt"), } diff --git a/ucloud/services/uwsc/client.py b/ucloud/services/uwsc/client.py index 27ab64c8..d043600c 100644 --- a/ucloud/services/uwsc/client.py +++ b/ucloud/services/uwsc/client.py @@ -66,6 +66,122 @@ def bind_cpe(self, req: typing.Optional[dict] = None, **kwargs) -> dict: resp = self.invoke("BindCPE", d, **kwargs) return apis.BindCPEResponseSchema().loads(resp) + def create_ce_gateway( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateCEGateway - 创建CE客户网关 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **IpType** (str) - (Required) IP类型 枚举值:静态IP(Static) | 动态IP(Dynamic) + - **PopGwId** (str) - (Required) 所属UWAN虚拟路由器资源ID + - **PublicIp** (str) - (Required) 客户自有公网IP + - **Name** (str) - 资源名称 + - **Remark** (str) - 备注 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + - **VPNId** (str) - 客户网关资源 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateCEGatewayRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateCEGateway", d, **kwargs) + return apis.CreateCEGatewayResponseSchema().loads(resp) + + def create_ce_tunnel( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateCETunnel - 创建隧道 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **CloseAction** (str) - (Required) IPSec 关闭后动作,枚举值:restart、trap、none + - **Mode** (str) - (Required) 路由模式,枚举值:感兴趣流(FLow) | BGP(BGP) + - **VPNId** (str) - (Required) 所属CE网关资源ID + - **BGPConf** (dict) - 见 **CreateCETunnelParamBGPConf** 模型定义 + - **DPDConf** (dict) - 见 **CreateCETunnelParamDPDConf** 模型定义 + - **IKEConf** (dict) - 见 **CreateCETunnelParamIKEConf** 模型定义 + - **IPSecConf** (dict) - 见 **CreateCETunnelParamIPSecConf** 模型定义 + - **Name** (str) - 资源名称 + - **Remark** (str) - 备注 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **VPNTunnelId** (str) - VPN 隧道 ID + + **Request Model** + + **CreateCETunnelParamIKEConf** + - **AuthenticationAlgorithm** (str) - IKE 认证算法,取值:"md5", "sha1", "sha2-256" + - **DhGroup** (str) - DH group,指定IKE交换密钥时使用的DH组。取值:"1", "2", "5", "14", "15", "16" + - **EncryptionAlgorithm** (str) - IKE 加密算法,取值:"aes128", "aes192", "aes256", "aes512", "3des" + - **ExchangeMode** (str) - IKE 协商模式,主模式(main)/野蛮模式(aggressive),IKE V2时不使用该参数 + - **LocalId** (str) - 本端标识,取值:“auto”,“” + - **PreSharedKey** (str) - IKE 共享密钥 + - **RemoteId** (str) - 对端标识,取值:“auto”,“” + - **SALifeTime** (str) - IKE SA的生存周期,取值范围:600-604800 + - **Version** (str) - IKE 版本,取值: "ike v1","ike v2" + + + **CreateCETunnelParamIPSecConf** + - **AuthenticationAlgorithm** (str) - 第二阶段协商的认证算法。取值:md5、sha1、sha2-256。 + - **CENetwork** (list) - 需要和 VPC 互通的本地数据中心侧的网段,用于第二阶段协商。 + - **EncryptionAlgorithm** (str) - IPSec 加密算法,取值:"aes128", "aes192", "aes256", "aes512", "3des" + - **PFSDhGroup** (str) - 第二阶段协商使用的 Diffie-Hellman 密钥交换算法。取值:disabled、1、2、5、14、15、16。 + - **Protocol** (str) - IPSec 安全协议,取值:“esp”,“ah” + - **SALifeTime** (str) - 第二阶段协商出的 SA 的生存周期。单位:秒。取值范围:1200~604800 + - **SALifetimeBytes** (str) - 第二阶段协商出的 SA 的生存周期。单位:字节 KB。取值范围:8000 – 20000000,默认使用SA超时时间 + + + **CreateCETunnelParamBGPConf** + - **LocalAsn** (str) - Ucloud侧的自治系统号。 + - **LocalIp** (str) - 云端BGP地址。必须从BGP隧道网段内分配。 + - **PeerAsn** (str) - 对端BGP ASN号。 + - **PeerIp** (str) - 用户端BGP地址。必须从BGP隧道网段内分配。 + - **TunnelCidr** (str) - BGP隧道网段。该网段需是一个在 169.254.0.0/16 内的掩码长度为 30 的网段。 + + + **CreateCETunnelParamDPDConf** + - **Action** (str) - DPD超时后的动作,Enable为1(开启)时有效。可取值为clear(断开)、restart(重试)和 trap(流量触发) + - **Delay** (int) - DPD探测间隔时间。dpdEnable为1(开启)时有效。单位为秒,默认为 10 + - **Enabled** (int) - 是否开启 DPD(对等体存活检测)功能。取值:0(关闭)、1(开启) + - **Timeout** (int) - DPD超时时间。即探测确认对端不存在需要的时间。dpdEnable为1(开启)时有效。单位为秒。取值范围为 30-60(IKEv2 默认为 0) + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateCETunnelRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateCETunnel", d, **kwargs) + return apis.CreateCETunnelResponseSchema().loads(resp) + def create_cpe(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """CreateCPE - 创建 CPE @@ -139,6 +255,115 @@ def create_export_line( resp = self.invoke("CreateExportLine", d, **kwargs) return apis.CreateExportLineResponseSchema().loads(resp) + def create_popgw(self, req: typing.Optional[dict] = None, **kwargs) -> dict: + """CreatePOPGW - 创建UWAN虚拟路由器 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Name** (str) - (Required) 资源名称 + - **Quantity** (int) - (Required) UWAN 网关的购买时长,默认为 0,代表有效期至月底。(保持和BWConf.Quantity 相同) + - **BWConf** (dict) - 见 **CreatePOPGWParamBWConf** 模型定义 + - **ChargeType** (str) - 付费方式, 枚举值为: - Year:按年付费; - Month: 按月付费;(月付非必填,默认为 0;年付必填。) + - **CouponId** (str) - 代金券ID, 默认不使用 + - **Remark** (str) - 资源备注信息 + - **Type** (str) - 入网类型,仅支持“IPSec” + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误消息 + - **PopGwId** (str) - UWAN 网关实例 ID + - **RequestId** (str) - 请求 ID + + **Request Model** + + **CreatePOPGWParamBWConf** + - **BwMax** (float) - UWAN 网关的带宽规格。取值:1-100。单位:Mbps。 + - **BwType** (str) - 带宽类型,默认为空字符串 + - **ChargeType** (str) - 付费方式,枚举值:- Month:月付;- Year:年付;- Postpadi:后付费(仅支持流量计费方式) + - **CouponId** (str) - 优惠券 ID + - **Name** (str) - 带宽的名称 + - **PayMode** (str) - 带宽的计费方式,取值:- fixed-bw:固定带宽计费;- traffic:流量计费。 + - **ProductId** (int) - 产品 ID + - **Quantity** (float) - 带宽购买时长,默认为 0,代表有效期至月底 + - **Remark** (str) - 带宽包备注信息 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreatePOPGWRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreatePOPGW", d, **kwargs) + return apis.CreatePOPGWResponseSchema().loads(resp) + + def delete_ce_gateway( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteCEGateway - 删除CE网关 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **VPNId** (str) - (Required) CE 实例 ID + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteCEGatewayRequestSchema().dumps(d) + + resp = self.invoke("DeleteCEGateway", d, **kwargs) + return apis.DeleteCEGatewayResponseSchema().loads(resp) + + def delete_ce_tunnel( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteCETunnel - 删除隧道 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **VPNTunnelId** (str) - (Required) 资源ID + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteCETunnelRequestSchema().dumps(d) + + resp = self.invoke("DeleteCETunnel", d, **kwargs) + return apis.DeleteCETunnelResponseSchema().loads(resp) + def delete_export_line( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -190,6 +415,172 @@ def delete_export_line_rules( resp = self.invoke("DeleteExportLineRules", d, **kwargs) return apis.DeleteExportLineRulesResponseSchema().loads(resp) + def delete_popgw(self, req: typing.Optional[dict] = None, **kwargs) -> dict: + """DeletePOPGW - 删除UWAN虚拟路由器 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **PopGwId** (str) - (Required) UWAN虚拟路由器资源ID + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误消息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeletePOPGWRequestSchema().dumps(d) + + resp = self.invoke("DeletePOPGW", d, **kwargs) + return apis.DeletePOPGWResponseSchema().loads(resp) + + def describe_ce_gateway( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeCEGateway - 查询CE网关,优先级 Region > PopGwId > VPNId + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Limit** (int) - 限制量 + - **Offset** (int) - 偏移量 + - **PopGwId** (str) - UWAN 实例 ID + - **VPNId** (str) - CE 实例 ID + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + - **TotalCount** (int) - 总数 + - **VPNInfos** (list) - 见 **VPNInfo** 模型定义 + + **Response Model** + + **VPNInfo** + - **CreateTime** (int) - 创建时间 + - **IpType** (str) - CE网关的接入方式:静态IP(Static),动态IP(Dynamic) + - **Name** (str) - CE 名称 + - **PopGwId** (str) - UWAN 实例 ID + - **PopGwName** (str) - UWAN 资源名称 + - **PublicIp** (str) - 客户自有外网 IP + - **Region** (str) - 地域 + - **Remark** (str) - CE备注 + - **Status** (str) - 状态(默认为空) + - **VPNId** (str) - CE 网关 ID + - **VPNTunnelIds** (list) - 子隧道 ID + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeCEGatewayRequestSchema().dumps(d) + + resp = self.invoke("DescribeCEGateway", d, **kwargs) + return apis.DescribeCEGatewayResponseSchema().loads(resp) + + def describe_ce_tunnel( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeCETunnel - 查询隧道 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Limit** (int) - 返回数据长度,默认为20,最大100 + - **Offset** (int) - 列表起始位置偏移量,默认为0 + - **VPNId** (str) - CE 网关 ID + - **VPNTunnelId** (str) - 隧道 ID + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + - **TotalCount** (int) - 总数 + - **VPNTunnelInfos** (list) - 见 **VPNTunnelInfo** 模型定义 + + **Response Model** + + **DPDConf** + - **Action** (str) - DPD 行为 + - **Delay** (int) - DPD 探测间隔时间 + - **Enabled** (int) - 是否开启 DPD + - **Timeout** (int) - DPD 探测超时时间 + + + **IPSecConf** + - **AuthenticationAlgorithm** (str) - 认证算法 + - **CENetwork** (list) - 客户网段 + - **EncryptionAlgorithm** (str) - 加密算法 + - **PFSDhGroup** (str) - 第二阶段协商使用的 Diffie-Hellman 密钥交换算法 + - **Protocol** (str) - 安全协议 + - **SALifeTime** (str) - 第二阶段的 SA 的生存周期 + - **SALifetimeBytes** (str) - 第二阶段的 SA 的生存周期 + + + **BGPConf** + - **LocalAsn** (int) - 本端自治系统号 + - **LocalIp** (str) - 云端BGP地址 + - **PeerAsn** (int) - 对端自治系统号 + - **PeerIp** (str) - 用户端BGP地址 + - **TunnelCidr** (str) - BGP隧道网段 + + + **IKEConf** + - **AuthenticationAlgorithm** (str) - 认证算法 + - **DhGroup** (str) - 分组信息 + - **EncryptionAlgorithm** (str) - 加密算法 + - **ExchangeMode** (str) - 协商模式 + - **LocalId** (str) - 本端标识 + - **PreSharedKey** (str) - 预共享密钥 + - **RemoteId** (str) - 对端标识 + - **SALifeTime** (str) - IKE SA的生存周期 + - **Version** (str) - 版本 + + + **VPNTunnelInfo** + - **BGPConf** (dict) - 见 **BGPConf** 模型定义 + - **CloseAction** (str) - 隧道关闭后动作 + - **CreateTime** (int) - 创建时间 + - **DPDConf** (dict) - 见 **DPDConf** 模型定义 + - **IKEConf** (dict) - 见 **IKEConf** 模型定义 + - **IPSecConf** (dict) - 见 **IPSecConf** 模型定义 + - **Mode** (str) - 路由模式 + - **Name** (str) - 隧道名称 + - **Region** (str) - 地域 + - **Remark** (str) - 备注 + - **StartAction** (str) - 隧道协商动作 + - **VPNId** (str) - CE 网关 ID + - **VPNTunnelId** (str) - 隧道 ID + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeCETunnelRequestSchema().dumps(d) + + resp = self.invoke("DescribeCETunnel", d, **kwargs) + return apis.DescribeCETunnelResponseSchema().loads(resp) + def describe_cpe(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """DescribeCPE - 查询 CPE 信息 @@ -329,6 +720,270 @@ def describe_export_line_rules( resp = self.invoke("DescribeExportLineRules", d, **kwargs) return apis.DescribeExportLineRulesResponseSchema().loads(resp) + def describe_popgw( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribePOPGW - 查询UWAN虚拟路由器 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **PopGwId** (str) - (Required) UWAN 实例 ID + - **Limit** (int) - 限制量 + - **Offset** (int) - 偏移量 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 消息 + - **POPGWInfos** (list) - 见 **POPGWInfo** 模型定义 + - **RequestId** (str) - 请求 ID + - **TotalCount** (int) - 总数 + + **Response Model** + + **BWPackageInfo** + - **BandWidth** (float) - 最大带宽值 + - **BwId** (str) - UWAN 网关带宽 ID + - **ChargeType** (str) - 付费方式eg:(Month) + - **DueTime** (int) - 过期时间 + - **Name** (str) - 带宽包名称 + - **PayMode** (str) - 计费方式eg:(固定带宽) + - **PublicIp** (str) - 网关外网 IP + - **Remark** (str) - 备注 + + + **UGNBWInfo** + - **UGNBWId** (str) - UGN带宽包ID + - **UGNBWName** (str) - UGN带宽包名称 + + + **UGNInfo** + - **UGNBWInfos** (list) - 见 **UGNBWInfo** 模型定义 + - **UGNId** (str) - 云联网 ID + - **UGNName** (str) - 云联网名称 + + + **POPGWInfo** + - **BWPackageInfo** (dict) - 见 **BWPackageInfo** 模型定义 + - **CENum** (int) - 客户网关数量 + - **CPENum** (int) - CPE数量 + - **ChargeType** (str) - 付费类型 + - **CreateTime** (int) - 创建时间 + - **DueTime** (int) - 过期时间 + - **Name** (str) - 网关名称 + - **PopGwId** (str) - 网关实例 ID + - **Region** (str) - 地域信息 + - **Remark** (str) - 备注 + - **Type** (str) - 规格:IPSec、SSL + - **UGNInfo** (dict) - 见 **UGNInfo** 模型定义 + - **VCPENum** (int) - VCPE 数量 + - **VNI** (int) - 唯一标识 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribePOPGWRequestSchema().dumps(d) + + resp = self.invoke("DescribePOPGW", d, **kwargs) + return apis.DescribePOPGWResponseSchema().loads(resp) + + def list_available_region( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListAvailableRegion - 获取可用地域 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + + **Response** + + - **Message** (str) - 消息 + - **Region** (list) - 可用地域 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + } + req and d.update(req) + d = apis.ListAvailableRegionRequestSchema().dumps(d) + + resp = self.invoke("ListAvailableRegion", d, **kwargs) + return apis.ListAvailableRegionResponseSchema().loads(resp) + + def update_bw_package( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateBWPackage - 更新UWSC带宽包 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **BwId** (str) - (Required) 带宽包资源ID + - **BwMax** (float) - (Required) 带宽峰值 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateBWPackageRequestSchema().dumps(d) + + resp = self.invoke("UpdateBWPackage", d, **kwargs) + return apis.UpdateBWPackageResponseSchema().loads(resp) + + def update_ce_gateway( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateCEGateway - 更新CE网关 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **VPNId** (str) - (Required) CE网关资源ID + - **Name** (str) - 资源名称 + - **PublicIp** (str) - 公网IP + - **Remark** (str) - 备注 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误消息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateCEGatewayRequestSchema().dumps(d) + + resp = self.invoke("UpdateCEGateway", d, **kwargs) + return apis.UpdateCEGatewayResponseSchema().loads(resp) + + def update_ce_tunnel( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateCETunnel - 更新隧道配置 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **VPNTunnelId** (str) - (Required) 资源ID + - **BGPConf** (dict) - 见 **UpdateCETunnelParamBGPConf** 模型定义 + - **CloseAction** (str) - IPSec 关闭后动作,枚举值:restart、trap、none + - **DPDConf** (dict) - 见 **UpdateCETunnelParamDPDConf** 模型定义 + - **IKEConf** (dict) - 见 **UpdateCETunnelParamIKEConf** 模型定义 + - **IPSecConf** (dict) - 见 **UpdateCETunnelParamIPSecConf** 模型定义 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + + **Request Model** + + **UpdateCETunnelParamIKEConf** + - **AuthenticationAlgorithm** (str) - IKE 认证算法,取值:"md5", "sha1", "sha2-256" + - **DhGroup** (str) - DH group,指定IKE交换密钥时使用的DH组。取值:"1", "2", "5", "14", "15", "16" + - **EncryptionAlgorithm** (str) - IKE 加密算法,取值:"aes128", "aes192", "aes256", "aes512", "3des" + - **ExchangeMode** (str) - IKE 协商模式,主模式(main)/野蛮模式(aggressive),IKE V2时不使用该参数 + - **LocalId** (str) - 本端标识,取值:“auto”,“” + - **PreSharedKey** (str) - IKE 共享密钥 + - **RemoteId** (str) - 对端标识,取值:“auto”,“” + - **SALifeTime** (str) - IKE SA的生存周期,取值范围:600-604800 + - **Version** (str) - IKE 版本,取值: "ike v1","ike v2" + + + **UpdateCETunnelParamIPSecConf** + - **AuthenticationAlgorithm** (str) - 第二阶段协商的认证算法。取值:md5、sha1、sha2-256。 + - **CENetwork** (list) - 需要和 VPC 互通的本地数据中心侧的网段,用于第二阶段协商。 + - **EncryptionAlgorithm** (str) - IPSec 加密算法,取值:"aes128", "aes192", "aes256", "aes512", "3des" + - **PFSDhGroup** (str) - 第二阶段协商使用的 Diffie-Hellman 密钥交换算法。取值:disabled、1、2、5、14、15、16。 + - **Protocol** (str) - IPSec 安全协议,取值:“esp”,“ah” + - **SALifeTime** (str) - 第二阶段协商出的 SA 的生存周期。单位:秒。取值范围:1200~604800 + - **SALifetimeBytes** (str) - 第二阶段协商出的 SA 的生存周期。单位:字节 KB。取值范围:8000 – 20000000,默认使用SA超时时间 + + + **UpdateCETunnelParamBGPConf** + - **LocalAsn** (str) - Ucloud侧的自治系统号。 + - **LocalIp** (str) - 云端BGP地址。必须从BGP隧道网段内分配。 + - **PeerAsn** (str) - 对端BGP ASN号。 + - **PeerIp** (str) - 用户端BGP地址。必须从BGP隧道网段内分配。 + - **TunnelCidr** (str) - BGP隧道网段。该网段需是一个在 169.254.0.0/16 内的掩码长度为 30 的网段。 + + + **UpdateCETunnelParamDPDConf** + - **Action** (str) - DPD超时后的动作,Enable为1(开启)时有效。可取值为clear(断开)、restart(重试)和 trap(流量触发) + - **Delay** (str) - DPD探测间隔时间。dpdEnable为1(开启)时有效。单位为秒,默认为 10 + - **Enabled** (str) - 是否开启 DPD(对等体存活检测)功能。取值:0(关闭)、1(开启) + - **Timeout** (str) - DPD超时时间。即探测确认对端不存在需要的时间。dpdEnable为1(开启)时有效。单位为秒。取值范围为 30-60(IKEv2 默认为 0) + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateCETunnelRequestSchema().dumps(d) + + resp = self.invoke("UpdateCETunnel", d, **kwargs) + return apis.UpdateCETunnelResponseSchema().loads(resp) + + def update_ce_tunnel_attribute( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateCETunnelAttribute - 更新隧道属性 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **VPNTunnelId** (str) - (Required) 资源ID + - **Name** (str) - 资源名称 + - **Remark** (str) - 备注 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateCETunnelAttributeRequestSchema().dumps(d) + + resp = self.invoke("UpdateCETunnelAttribute", d, **kwargs) + return apis.UpdateCETunnelAttributeResponseSchema().loads(resp) + def update_export_line( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -355,6 +1010,37 @@ def update_export_line( resp = self.invoke("UpdateExportLine", d, **kwargs) return apis.UpdateExportLineResponseSchema().loads(resp) + def update_popgw_attribute( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdatePOPGWAttribute - 更新UWAN虚拟路由器属性 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **PopGwId** (str) - (Required) UWAN虚拟路由器资源ID + - **Name** (str) - 资源名称 + - **Remark** (str) - 备注 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误消息 + - **RequestId** (str) - 请求 ID + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdatePOPGWAttributeRequestSchema().dumps(d) + + resp = self.invoke("UpdatePOPGWAttribute", d, **kwargs) + return apis.UpdatePOPGWAttributeResponseSchema().loads(resp) + def upgrade_export_line( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: diff --git a/ucloud/services/uwsc/schemas/apis.py b/ucloud/services/uwsc/schemas/apis.py index e33e9c58..2ea0d8bf 100644 --- a/ucloud/services/uwsc/schemas/apis.py +++ b/ucloud/services/uwsc/schemas/apis.py @@ -57,6 +57,144 @@ class BindCPEResponseSchema(schema.ResponseSchema): } +""" +API: CreateCEGateway + +创建CE客户网关 +""" + + +class CreateCEGatewayRequestSchema(schema.RequestSchema): + """CreateCEGateway - 创建CE客户网关""" + + fields = { + "IpType": fields.Str(required=True, dump_to="IpType"), + "Name": fields.Str(required=False, dump_to="Name"), + "PopGwId": fields.Str(required=True, dump_to="PopGwId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "PublicIp": fields.Str(required=True, dump_to="PublicIp"), + "Region": fields.Str(required=False, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class CreateCEGatewayResponseSchema(schema.ResponseSchema): + """CreateCEGateway - 创建CE客户网关""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + "VPNId": fields.Str(required=True, load_from="VPNId"), + } + + +""" +API: CreateCETunnel + +创建隧道 +""" + + +class CreateCETunnelParamIKEConfSchema(schema.RequestSchema): + """CreateCETunnelParamIKEConf -""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=True, dump_to="AuthenticationAlgorithm" + ), + "DhGroup": fields.Str(required=True, dump_to="DhGroup"), + "EncryptionAlgorithm": fields.Str( + required=True, dump_to="EncryptionAlgorithm" + ), + "ExchangeMode": fields.Str(required=True, dump_to="ExchangeMode"), + "LocalId": fields.Str(required=True, dump_to="LocalId"), + "PreSharedKey": fields.Str(required=True, dump_to="PreSharedKey"), + "RemoteId": fields.Str(required=True, dump_to="RemoteId"), + "SALifeTime": fields.Str(required=True, dump_to="SALifeTime"), + "Version": fields.Str(required=True, dump_to="Version"), + } + + +class CreateCETunnelParamIPSecConfSchema(schema.RequestSchema): + """CreateCETunnelParamIPSecConf -""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=True, dump_to="AuthenticationAlgorithm" + ), + "CENetwork": fields.List(fields.Str()), + "EncryptionAlgorithm": fields.Str( + required=True, dump_to="EncryptionAlgorithm" + ), + "PFSDhGroup": fields.Str(required=True, dump_to="PFSDhGroup"), + "Protocol": fields.Str(required=True, dump_to="Protocol"), + "SALifeTime": fields.Str(required=True, dump_to="SALifeTime"), + "SALifetimeBytes": fields.Str( + required=False, dump_to="SALifetimeBytes" + ), + } + + +class CreateCETunnelParamBGPConfSchema(schema.RequestSchema): + """CreateCETunnelParamBGPConf -""" + + fields = { + "LocalAsn": fields.Str(required=False, dump_to="LocalAsn"), + "LocalIp": fields.Str(required=False, dump_to="LocalIp"), + "PeerAsn": fields.Str(required=False, dump_to="PeerAsn"), + "PeerIp": fields.Str(required=False, dump_to="PeerIp"), + "TunnelCidr": fields.Str(required=False, dump_to="TunnelCidr"), + } + + +class CreateCETunnelParamDPDConfSchema(schema.RequestSchema): + """CreateCETunnelParamDPDConf -""" + + fields = { + "Action": fields.Str(required=False, dump_to="Action"), + "Delay": fields.Int(required=False, dump_to="Delay"), + "Enabled": fields.Int(required=True, dump_to="Enabled"), + "Timeout": fields.Int(required=False, dump_to="Timeout"), + } + + +class CreateCETunnelRequestSchema(schema.RequestSchema): + """CreateCETunnel - 创建隧道""" + + fields = { + "BGPConf": CreateCETunnelParamBGPConfSchema( + required=False, dump_to="BGPConf" + ), + "CloseAction": fields.Str(required=True, dump_to="CloseAction"), + "DPDConf": CreateCETunnelParamDPDConfSchema( + required=False, dump_to="DPDConf" + ), + "IKEConf": CreateCETunnelParamIKEConfSchema( + required=False, dump_to="IKEConf" + ), + "IPSecConf": CreateCETunnelParamIPSecConfSchema( + required=False, dump_to="IPSecConf" + ), + "Mode": fields.Str(required=True, dump_to="Mode"), + "Name": fields.Str(required=False, dump_to="Name"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "VPNId": fields.Str(required=True, dump_to="VPNId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class CreateCETunnelResponseSchema(schema.ResponseSchema): + """CreateCETunnel - 创建隧道""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "VPNTunnelId": fields.Str(required=True, load_from="VPNTunnelId"), + } + + """ API: CreateCPE @@ -124,6 +262,112 @@ class CreateExportLineResponseSchema(schema.ResponseSchema): } +""" +API: CreatePOPGW + +创建UWAN虚拟路由器 +""" + + +class CreatePOPGWParamBWConfSchema(schema.RequestSchema): + """CreatePOPGWParamBWConf -""" + + fields = { + "BwMax": fields.Float(required=True, dump_to="BwMax"), + "BwType": fields.Str(required=False, dump_to="BwType"), + "ChargeType": fields.Str(required=True, dump_to="ChargeType"), + "CouponId": fields.Str(required=False, dump_to="CouponId"), + "Name": fields.Str(required=True, dump_to="Name"), + "PayMode": fields.Str(required=True, dump_to="PayMode"), + "ProductId": fields.Int(required=False, dump_to="ProductId"), + "Quantity": fields.Float(required=False, dump_to="Quantity"), + "Remark": fields.Str(required=False, dump_to="Remark"), + } + + +class CreatePOPGWRequestSchema(schema.RequestSchema): + """CreatePOPGW - 创建UWAN虚拟路由器""" + + fields = { + "BWConf": CreatePOPGWParamBWConfSchema( + required=False, dump_to="BWConf" + ), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "CouponId": fields.Str(required=False, dump_to="CouponId"), + "Name": fields.Str(required=True, dump_to="Name"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Int(required=True, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "Type": fields.Str(required=False, dump_to="Type"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class CreatePOPGWResponseSchema(schema.ResponseSchema): + """CreatePOPGW - 创建UWAN虚拟路由器""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + "PopGwId": fields.Str(required=False, load_from="PopGwId"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +""" +API: DeleteCEGateway + +删除CE网关 +""" + + +class DeleteCEGatewayRequestSchema(schema.RequestSchema): + """DeleteCEGateway - 删除CE网关""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "VPNId": fields.Str(required=True, dump_to="VPNId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DeleteCEGatewayResponseSchema(schema.ResponseSchema): + """DeleteCEGateway - 删除CE网关""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +""" +API: DeleteCETunnel + +删除隧道 +""" + + +class DeleteCETunnelRequestSchema(schema.RequestSchema): + """DeleteCETunnel - 删除隧道""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "VPNTunnelId": fields.Str(required=True, dump_to="VPNTunnelId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DeleteCETunnelResponseSchema(schema.ResponseSchema): + """DeleteCETunnel - 删除隧道""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + """ API: DeleteExportLine @@ -173,6 +417,103 @@ class DeleteExportLineRulesResponseSchema(schema.ResponseSchema): } +""" +API: DeletePOPGW + +删除UWAN虚拟路由器 +""" + + +class DeletePOPGWRequestSchema(schema.RequestSchema): + """DeletePOPGW - 删除UWAN虚拟路由器""" + + fields = { + "PopGwId": fields.Str(required=True, dump_to="PopGwId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DeletePOPGWResponseSchema(schema.ResponseSchema): + """DeletePOPGW - 删除UWAN虚拟路由器""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +""" +API: DescribeCEGateway + +查询CE网关,优先级 Region > PopGwId > VPNId +""" + + +class DescribeCEGatewayRequestSchema(schema.RequestSchema): + """DescribeCEGateway - 查询CE网关,优先级 Region > PopGwId > VPNId""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "PopGwId": fields.Str(required=False, dump_to="PopGwId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "VPNId": fields.Str(required=False, dump_to="VPNId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribeCEGatewayResponseSchema(schema.ResponseSchema): + """DescribeCEGateway - 查询CE网关,优先级 Region > PopGwId > VPNId""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + "VPNInfos": fields.List( + models.VPNInfoSchema(), required=True, load_from="VPNInfos" + ), + } + + +""" +API: DescribeCETunnel + +查询隧道 +""" + + +class DescribeCETunnelRequestSchema(schema.RequestSchema): + """DescribeCETunnel - 查询隧道""" + + fields = { + "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=False, dump_to="Region"), + "VPNId": fields.Str(required=False, dump_to="VPNId"), + "VPNTunnelId": fields.Str(required=False, dump_to="VPNTunnelId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribeCETunnelResponseSchema(schema.ResponseSchema): + """DescribeCETunnel - 查询隧道""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + "VPNTunnelInfos": fields.List( + models.VPNTunnelInfoSchema(), + required=True, + load_from="VPNTunnelInfos", + ), + } + + """ API: DescribeCPE @@ -259,6 +600,252 @@ class DescribeExportLineRulesResponseSchema(schema.ResponseSchema): } +""" +API: DescribePOPGW + +查询UWAN虚拟路由器 +""" + + +class DescribePOPGWRequestSchema(schema.RequestSchema): + """DescribePOPGW - 查询UWAN虚拟路由器""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "PopGwId": fields.Str(required=True, dump_to="PopGwId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribePOPGWResponseSchema(schema.ResponseSchema): + """DescribePOPGW - 查询UWAN虚拟路由器""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "POPGWInfos": fields.List( + models.POPGWInfoSchema(), required=True, load_from="POPGWInfos" + ), + "RequestId": fields.Str(required=False, load_from="RequestId"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: ListAvailableRegion + +获取可用地域 +""" + + +class ListAvailableRegionRequestSchema(schema.RequestSchema): + """ListAvailableRegion - 获取可用地域""" + + fields = { + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + } + + +class ListAvailableRegionResponseSchema(schema.ResponseSchema): + """ListAvailableRegion - 获取可用地域""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "Region": fields.List(fields.Str(), required=True, load_from="Region"), + } + + +""" +API: UpdateBWPackage + +更新UWSC带宽包 +""" + + +class UpdateBWPackageRequestSchema(schema.RequestSchema): + """UpdateBWPackage - 更新UWSC带宽包""" + + fields = { + "BwId": fields.Str(required=True, dump_to="BwId"), + "BwMax": fields.Float(required=True, dump_to="BwMax"), + "ProjectId": fields.Str(required=True, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdateBWPackageResponseSchema(schema.ResponseSchema): + """UpdateBWPackage - 更新UWSC带宽包""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +""" +API: UpdateCEGateway + +更新CE网关 +""" + + +class UpdateCEGatewayRequestSchema(schema.RequestSchema): + """UpdateCEGateway - 更新CE网关""" + + fields = { + "Name": fields.Str(required=False, dump_to="Name"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "PublicIp": fields.Str(required=False, dump_to="PublicIp"), + "Region": fields.Str(required=False, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "VPNId": fields.Str(required=True, dump_to="VPNId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdateCEGatewayResponseSchema(schema.ResponseSchema): + """UpdateCEGateway - 更新CE网关""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +""" +API: UpdateCETunnel + +更新隧道配置 +""" + + +class UpdateCETunnelParamIKEConfSchema(schema.RequestSchema): + """UpdateCETunnelParamIKEConf -""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=True, dump_to="AuthenticationAlgorithm" + ), + "DhGroup": fields.Str(required=True, dump_to="DhGroup"), + "EncryptionAlgorithm": fields.Str( + required=True, dump_to="EncryptionAlgorithm" + ), + "ExchangeMode": fields.Str(required=True, dump_to="ExchangeMode"), + "LocalId": fields.Str(required=True, dump_to="LocalId"), + "PreSharedKey": fields.Str(required=True, dump_to="PreSharedKey"), + "RemoteId": fields.Str(required=True, dump_to="RemoteId"), + "SALifeTime": fields.Str(required=True, dump_to="SALifeTime"), + "Version": fields.Str(required=True, dump_to="Version"), + } + + +class UpdateCETunnelParamIPSecConfSchema(schema.RequestSchema): + """UpdateCETunnelParamIPSecConf -""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=True, dump_to="AuthenticationAlgorithm" + ), + "CENetwork": fields.List(fields.Str()), + "EncryptionAlgorithm": fields.Str( + required=True, dump_to="EncryptionAlgorithm" + ), + "PFSDhGroup": fields.Str(required=True, dump_to="PFSDhGroup"), + "Protocol": fields.Str(required=True, dump_to="Protocol"), + "SALifeTime": fields.Str(required=True, dump_to="SALifeTime"), + "SALifetimeBytes": fields.Str( + required=False, dump_to="SALifetimeBytes" + ), + } + + +class UpdateCETunnelParamBGPConfSchema(schema.RequestSchema): + """UpdateCETunnelParamBGPConf -""" + + fields = { + "LocalAsn": fields.Str(required=False, dump_to="LocalAsn"), + "LocalIp": fields.Str(required=False, dump_to="LocalIp"), + "PeerAsn": fields.Str(required=False, dump_to="PeerAsn"), + "PeerIp": fields.Str(required=False, dump_to="PeerIp"), + "TunnelCidr": fields.Str(required=False, dump_to="TunnelCidr"), + } + + +class UpdateCETunnelParamDPDConfSchema(schema.RequestSchema): + """UpdateCETunnelParamDPDConf -""" + + fields = { + "Action": fields.Str(required=False, dump_to="Action"), + "Delay": fields.Str(required=False, dump_to="Delay"), + "Enabled": fields.Str(required=False, dump_to="Enabled"), + "Timeout": fields.Str(required=False, dump_to="Timeout"), + } + + +class UpdateCETunnelRequestSchema(schema.RequestSchema): + """UpdateCETunnel - 更新隧道配置""" + + fields = { + "BGPConf": UpdateCETunnelParamBGPConfSchema( + required=False, dump_to="BGPConf" + ), + "CloseAction": fields.Str(required=False, dump_to="CloseAction"), + "DPDConf": UpdateCETunnelParamDPDConfSchema( + required=False, dump_to="DPDConf" + ), + "IKEConf": UpdateCETunnelParamIKEConfSchema( + required=False, dump_to="IKEConf" + ), + "IPSecConf": UpdateCETunnelParamIPSecConfSchema( + required=False, dump_to="IPSecConf" + ), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "VPNTunnelId": fields.Str(required=True, dump_to="VPNTunnelId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdateCETunnelResponseSchema(schema.ResponseSchema): + """UpdateCETunnel - 更新隧道配置""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: UpdateCETunnelAttribute + +更新隧道属性 +""" + + +class UpdateCETunnelAttributeRequestSchema(schema.RequestSchema): + """UpdateCETunnelAttribute - 更新隧道属性""" + + fields = { + "Name": fields.Str(required=False, dump_to="Name"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "VPNTunnelId": fields.Str(required=True, dump_to="VPNTunnelId"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdateCETunnelAttributeResponseSchema(schema.ResponseSchema): + """UpdateCETunnelAttribute - 更新隧道属性""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + """ API: UpdateExportLine @@ -284,6 +871,35 @@ class UpdateExportLineResponseSchema(schema.ResponseSchema): } +""" +API: UpdatePOPGWAttribute + +更新UWAN虚拟路由器属性 +""" + + +class UpdatePOPGWAttributeRequestSchema(schema.RequestSchema): + """UpdatePOPGWAttribute - 更新UWAN虚拟路由器属性""" + + fields = { + "Name": fields.Str(required=False, dump_to="Name"), + "PopGwId": fields.Str(required=True, dump_to="PopGwId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=False, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdatePOPGWAttributeResponseSchema(schema.ResponseSchema): + """UpdatePOPGWAttribute - 更新UWAN虚拟路由器属性""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + """ API: UpgradeExportLine diff --git a/ucloud/services/uwsc/schemas/models.py b/ucloud/services/uwsc/schemas/models.py index c88f2bd6..01b9b612 100644 --- a/ucloud/services/uwsc/schemas/models.py +++ b/ucloud/services/uwsc/schemas/models.py @@ -3,6 +3,107 @@ from ucloud.core.typesystem import schema, fields +class VPNInfoSchema(schema.ResponseSchema): + """VPNInfo - CE客户网关信息""" + + fields = { + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "IpType": fields.Str(required=False, load_from="IpType"), + "Name": fields.Str(required=False, load_from="Name"), + "PopGwId": fields.Str(required=False, load_from="PopGwId"), + "PopGwName": fields.Str(required=False, load_from="PopGwName"), + "PublicIp": fields.Str(required=False, load_from="PublicIp"), + "Region": fields.Str(required=False, load_from="Region"), + "Remark": fields.Str(required=False, load_from="Remark"), + "Status": fields.Str(required=False, load_from="Status"), + "VPNId": fields.Str(required=False, load_from="VPNId"), + "VPNTunnelIds": fields.List(fields.Str()), + } + + +class BGPConfSchema(schema.ResponseSchema): + """BGPConf - CE隧道 BGP配置""" + + fields = { + "LocalAsn": fields.Int(required=False, load_from="LocalAsn"), + "LocalIp": fields.Str(required=False, load_from="LocalIp"), + "PeerAsn": fields.Int(required=False, load_from="PeerAsn"), + "PeerIp": fields.Str(required=False, load_from="PeerIp"), + "TunnelCidr": fields.Str(required=False, load_from="TunnelCidr"), + } + + +class IPSecConfSchema(schema.ResponseSchema): + """IPSecConf - IPSec配置信息""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=False, load_from="AuthenticationAlgorithm" + ), + "CENetwork": fields.List(fields.Str()), + "EncryptionAlgorithm": fields.Str( + required=False, load_from="EncryptionAlgorithm" + ), + "PFSDhGroup": fields.Str(required=False, load_from="PFSDhGroup"), + "Protocol": fields.Str(required=False, load_from="Protocol"), + "SALifeTime": fields.Str(required=False, load_from="SALifeTime"), + "SALifetimeBytes": fields.Str( + required=False, load_from="SALifetimeBytes" + ), + } + + +class DPDConfSchema(schema.ResponseSchema): + """DPDConf - DPD 配置""" + + fields = { + "Action": fields.Str(required=True, load_from="Action"), + "Delay": fields.Int(required=True, load_from="Delay"), + "Enabled": fields.Int(required=True, load_from="Enabled"), + "Timeout": fields.Int(required=True, load_from="Timeout"), + } + + +class IKEConfSchema(schema.ResponseSchema): + """IKEConf - IKE配置信息""" + + fields = { + "AuthenticationAlgorithm": fields.Str( + required=False, load_from="AuthenticationAlgorithm" + ), + "DhGroup": fields.Str(required=False, load_from="DhGroup"), + "EncryptionAlgorithm": fields.Str( + required=False, load_from="EncryptionAlgorithm" + ), + "ExchangeMode": fields.Str(required=False, load_from="ExchangeMode"), + "LocalId": fields.Str(required=False, load_from="LocalId"), + "PreSharedKey": fields.Str(required=False, load_from="PreSharedKey"), + "RemoteId": fields.Str(required=False, load_from="RemoteId"), + "SALifeTime": fields.Str(required=False, load_from="SALifeTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class VPNTunnelInfoSchema(schema.ResponseSchema): + """VPNTunnelInfo - 隧道信息""" + + fields = { + "BGPConf": BGPConfSchema(), + "CloseAction": fields.Str(required=False, load_from="CloseAction"), + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "DPDConf": DPDConfSchema(), + "IKEConf": IKEConfSchema(), + "IPSecConf": IPSecConfSchema(), + "Mode": fields.Str(required=False, load_from="Mode"), + "Name": fields.Str(required=False, load_from="Name"), + "Region": fields.Str(required=False, load_from="Region"), + "Remark": fields.Str(required=False, load_from="Remark"), + "StartAction": fields.Str(required=False, load_from="StartAction"), + "VPNId": fields.Str(required=False, load_from="VPNId"), + "VPNTunnelId": fields.Str(required=False, load_from="VPNTunnelId"), + } + + class CPEInfoSchema(schema.ResponseSchema): """CPEInfo - CPE信息""" @@ -79,3 +180,58 @@ class WhiteListInfoSchema(schema.ResponseSchema): "Remark": fields.Str(required=False, load_from="Remark"), "RuleType": fields.Str(required=False, load_from="RuleType"), } + + +class BWPackageInfoSchema(schema.ResponseSchema): + """BWPackageInfo - UWAN虚拟路由器带宽包信息""" + + fields = { + "BandWidth": fields.Float(required=False, load_from="BandWidth"), + "BwId": fields.Str(required=False, load_from="BwId"), + "ChargeType": fields.Str(required=False, load_from="ChargeType"), + "DueTime": fields.Int(required=False, load_from="DueTime"), + "Name": fields.Str(required=False, load_from="Name"), + "PayMode": fields.Str(required=False, load_from="PayMode"), + "PublicIp": fields.Str(required=False, load_from="PublicIp"), + "Remark": fields.Str(required=False, load_from="Remark"), + } + + +class UGNBWInfoSchema(schema.ResponseSchema): + """UGNBWInfo - UGN带宽包信息""" + + fields = { + "UGNBWId": fields.Str(required=False, load_from="UGNBWId"), + "UGNBWName": fields.Str(required=False, load_from="UGNBWName"), + } + + +class UGNInfoSchema(schema.ResponseSchema): + """UGNInfo - UGN信息""" + + fields = { + "UGNBWInfos": fields.List(UGNBWInfoSchema()), + "UGNId": fields.Str(required=False, load_from="UGNId"), + "UGNName": fields.Str(required=False, load_from="UGNName"), + } + + +class POPGWInfoSchema(schema.ResponseSchema): + """POPGWInfo - UWAN虚拟路由器信息""" + + fields = { + "BWPackageInfo": BWPackageInfoSchema(), + "CENum": fields.Int(required=False, load_from="CENum"), + "CPENum": fields.Int(required=False, load_from="CPENum"), + "ChargeType": fields.Str(required=False, load_from="ChargeType"), + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "DueTime": fields.Int(required=False, load_from="DueTime"), + "Name": fields.Str(required=False, load_from="Name"), + "PopGwId": fields.Str(required=False, load_from="PopGwId"), + "Region": fields.Str(required=False, load_from="Region"), + "Remark": fields.Str(required=False, load_from="Remark"), + "Type": fields.Str(required=False, load_from="Type"), + "UGNInfo": UGNInfoSchema(), + "VCPENum": fields.Int(required=False, load_from="VCPENum"), + "VNI": fields.Int(required=False, load_from="VNI"), + } diff --git a/ucloud/version.py b/ucloud/version.py index 2ea7a17a..c61e440c 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.117" +version = "0.11.118"