Source code for ucloud.services.ulb.client

""" Code is generated by ucloud-model, DO NOT EDIT IT. """

import typing


from ucloud.core.client import Client
from ucloud.services.ulb.schemas import apis


[docs]class ULBClient(Client): def __init__( self, config: dict, transport=None, middleware=None, logger=None ): super(ULBClient, self).__init__(config, transport, middleware, logger)
[docs] def allocate_backend( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """AllocateBackend - 添加ULB后端资源实例 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **ResourceId** (str) - (Required) 所添加的后端资源的资源ID - **ResourceType** (str) - (Required) 所添加的后端资源的类型,枚举值:UHost -> 云主机;UNI -> 虚拟网卡;UPM -> 物理云主机; UDHost -> 私有专区主机;UDocker -> 容器;UHybrid->混合云主机;CUBE->Cube;默认值为UHost。报文转发模式不支持UDocker、UHybrid、CUBE - **ULBId** (str) - (Required) 负载均衡实例的ID - **VServerId** (str) - (Required) VServer实例的ID - **Enabled** (int) - 后端实例状态开关,枚举值: 1:启用; 0:禁用 默认为启用 - **IsBackup** (int) - rs是否为backup,默认为00:普通rs1:backup的rs - **Port** (int) - 所添加的后端资源服务端口,取值范围[1-65535],默认80 - **ResourceIP** (str) - 所添加的后端服务器的资源实例IP,当ResourceType 为 UHybrid 时有效,且必填 - **SubnetId** (str) - 所添加的后端服务器所在的子网,当ResourceType 为 UHybrid 时有效,且必填 - **VPCId** (str) - 所添加的后端服务器所在的vpc,当ResourceType 为 UHybrid 时有效,且必填 - **Weight** (int) - 所添加的后端RS权重(在加权轮询算法下有效),取值范围[0-100],默认为1 **Response** - **BackendId** (str) - 所添加的后端资源在ULB中的对象ID,(为ULB系统中使用,与资源自身ID无关),可用于 UpdateBackendAttribute/UpdateBackendAttributeBatch/ReleaseBackend """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.AllocateBackendRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("AllocateBackend", d, **kwargs) return apis.AllocateBackendResponseSchema().loads(resp)
[docs] def allocate_backend_batch( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """AllocateBackendBatch - **Request** - **ProjectId** (str) - (Config) - **Region** (str) - (Config) - **ULBId** (str) - (Required) - **VServerId** (str) - (Required) - **ApiVersion** (int) - - **Backends** (list) - **Response** - **BackendSet** (list) - 见 **BackendSet** 模型定义 **Response Model** **BackendSet** - **BackendId** (str) - - **ResourceId** (str) - """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.AllocateBackendBatchRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("AllocateBackendBatch", d, **kwargs) return apis.AllocateBackendBatchResponseSchema().loads(resp)
[docs] def bind_ssl(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """BindSSL - 将SSL证书绑定到VServer **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **SSLId** (str) - (Required) SSL证书的Id - **ULBId** (str) - (Required) 所绑定ULB实例ID - **VServerId** (str) - (Required) 所绑定VServer实例ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.BindSSLRequestSchema().dumps(d) resp = self.invoke("BindSSL", d, **kwargs) return apis.BindSSLResponseSchema().loads(resp)
[docs] def create_policy( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """CreatePolicy - 创建VServer内容转发策略 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **BackendId** (list) - (Required) 内容转发策略应用的后端资源实例的ID,来源于 AllocateBackend 返回的 BackendId - **Match** (str) - (Required) 内容转发匹配字段 - **ULBId** (str) - (Required) 需要添加内容转发策略的负载均衡实例ID - **VServerId** (str) - (Required) 需要添加内容转发策略的VServer实例ID - **PolicyPriority** (int) - 策略优先级,1-9999 - **Type** (str) - 内容转发匹配字段的类型 **Response** - **PolicyId** (str) - 内容转发策略ID """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.CreatePolicyRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("CreatePolicy", d, **kwargs) return apis.CreatePolicyResponseSchema().loads(resp)
[docs] def create_ssl(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """CreateSSL - 创建SSL证书,可以把整个 Pem 证书内容传过来,或者把证书、私钥、CA证书分别传过来 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **SSLName** (str) - (Required) SSL证书的名字,默认值为空 - **CaCert** (str) - CA证书 - **PrivateKey** (str) - 加密证书的私钥 - **SSLContent** (str) - SSL证书的完整内容,包括用户证书、加密证书的私钥、CA证书 - **SSLType** (str) - 所添加的SSL证书类型,目前只支持Pem格式 - **UserCert** (str) - 用户的证书 **Response** - **SSLId** (str) - SSL证书的Id """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.CreateSSLRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("CreateSSL", d, **kwargs) return apis.CreateSSLResponseSchema().loads(resp)
[docs] def create_ulb(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """CreateULB - 创建负载均衡实例,可以选择内网或者外网 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **BusinessId** (str) - ULB 所属的业务组ID,如果不传则使用默认的业务组 - **ChargeType** (str) - 付费方式, 枚举值为: Year, 按年付费; Month, 按月付费; Dynamic, 按时付费 - **FirewallId** (str) - 防火墙ID,如果不传,则默认不绑定防火墙 - **InnerMode** (str) - 创建的ULB是否为内网模式 - **ListenType** (str) - ULB 监听器类型,枚举值:RequestProxy,请求代理; PacketsTransmit ,报文转发。默认为RequestProxy - **OuterMode** (str) - 创建的ULB是否为外网模式,默认即为外网模式 - **Remark** (str) - 备注 - **SubnetId** (str) - 内网ULB 所属的子网ID,如果不传则使用默认的子网 - **Tag** (str) - 业务组 - **ULBName** (str) - 负载均衡的名字,默认值为“ULB” - **VPCId** (str) - ULB所在的VPC的ID, 如果不传则使用默认的VPC **Response** - **IPv6AddressId** (str) - IPv6地址Id - **ULBId** (str) - 负载均衡实例的Id """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.CreateULBRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("CreateULB", d, **kwargs) return apis.CreateULBResponseSchema().loads(resp)
[docs] def create_vserver( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """CreateVServer - 创建VServer实例,定义监听的协议和端口以及负载均衡算法 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_ - **ULBId** (str) - (Required) 负载均衡实例ID - **ClientTimeout** (int) - ListenType为RequestProxy时表示空闲连接的回收时间,单位:秒,取值范围:时(0,86400],默认值为60;ListenType为PacketsTransmit时表示连接保持的时间,单位:秒,取值范围:[60,900],0 表示禁用连接保持 - **Domain** (str) - 根据MonitorType确认; 当MonitorType为Path时,此字段有意义,代表HTTP检查域名 - **FrontendPort** (int) - VServer后端端口,取值范围[1-65535];默认值为80 - **ListenType** (str) - 监听器类型,枚举值,RequestProxy ,请求代理;PacketsTransmit ,报文转发。默认为RequestProxy - **Method** (str) - VServer负载均衡模式,枚举值:Roundrobin -> 轮询;Source -> 源地址;ConsistentHash -> 一致性哈希;SourcePort -> 源地址(计算端口);ConsistentHashPort -> 一致性哈希(计算端口); WeightRoundrobin -> 加权轮询; Leastconn -> 最小连接数;Backup ->主备模式。ConsistentHash,SourcePort,ConsistentHashPort 只在报文转发中使用;Leastconn只在请求代理中使用;Roundrobin、Source和WeightRoundrobin,Backup在请求代理和报文转发中使用。默认为:"Roundrobin" - **MonitorType** (str) - 健康检查类型,枚举值:Port -> 端口检查;Path -> 路径检查;Ping -> Ping探测;Customize -> UDP检查请求代理型默认值为Port,其中TCP协议仅支持Port,其他协议支持Port和Path;报文转发型TCP协议仅支持Port,UDP协议支持Ping、Port和Customize,默认值为Ping - **Path** (str) - 根据MonitorType确认; 当MonitorType为Path时,此字段有意义,代表HTTP检查路径 - **PersistenceInfo** (str) - 根据PersistenceType确认; None和ServerInsert: 此字段无意义; UserDefined:此字段传入自定义会话保持String - **PersistenceType** (str) - VServer会话保持方式,默认关闭会话保持。枚举值:None -> 关闭;ServerInsert -> 自动生成KEY;UserDefined -> 用户自定义KEY。 - **Protocol** (str) - VServer实例的协议,请求代理模式下有 HTTP、HTTPS、TCP,报文转发下有 TCP,UDP。默认为“HTTP" - **RequestMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查发出的请求报文 - **ResponseMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查请求应收到的响应报文 - **VServerName** (str) - VServer实例名称,默认为"VServer" **Response** - **VServerId** (str) - VServer实例的Id """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.CreateVServerRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("CreateVServer", d, **kwargs) return apis.CreateVServerResponseSchema().loads(resp)
[docs] def delete_policy( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """DeletePolicy - 删除内容转发策略 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **PolicyId** (str) - (Required) 内容转发策略ID - **VServerId** (str) - VServer 资源ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DeletePolicyRequestSchema().dumps(d) resp = self.invoke("DeletePolicy", d, **kwargs) return apis.DeletePolicyResponseSchema().loads(resp)
[docs] def delete_ssl(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """DeleteSSL - 删除SSL证书 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **SSLId** (str) - (Required) SSL证书的ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DeleteSSLRequestSchema().dumps(d) resp = self.invoke("DeleteSSL", d, **kwargs) return apis.DeleteSSLResponseSchema().loads(resp)
[docs] def delete_ulb(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """DeleteULB - 删除负载均衡实例 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **ULBId** (str) - (Required) 负载均衡实例的ID - **ReleaseEip** (bool) - 删除ulb时是否释放绑定的EIP,false标识只解绑EIP,true表示会释放绑定的EIP,默认是false。Anycast IP 此参数无效 **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DeleteULBRequestSchema().dumps(d) resp = self.invoke("DeleteULB", d, **kwargs) return apis.DeleteULBResponseSchema().loads(resp)
[docs] def delete_vserver( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """DeleteVServer - 删除VServer实例 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **ULBId** (str) - (Required) 负载均衡实例的ID - **VServerId** (str) - (Required) VServer实例的ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DeleteVServerRequestSchema().dumps(d) resp = self.invoke("DeleteVServer", d, **kwargs) return apis.DeleteVServerResponseSchema().loads(resp)
[docs] def describe_ssl(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """DescribeSSL - 获取SSL证书信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **Limit** (int) - 数据分页值,默认为20 - **Offset** (int) - 数据偏移量,默认值为0 - **SSLId** (str) - SSL证书的Id **Response** - **DataSet** (list) - 见 **ULBSSLSet** 模型定义 - **TotalCount** (int) - 满足条件的SSL证书总数 **Response Model** **ULBSSLSet** - **BindedTargetSet** (list) - 见 **SSLBindedTargetSet** 模型定义 - **CreateTime** (int) - SSL证书的创建时间 - **HashValue** (str) - SSL证书的HASH值 - **SSLContent** (str) - SSL证书的内容 - **SSLId** (str) - SSL证书的Id - **SSLName** (str) - SSL证书的名字 - **SSLType** (str) - SSL证书类型,暂时只有 Pem 一种类型 **SSLBindedTargetSet** - **ULBId** (str) - VServer 所属的ULB实例的资源ID - **ULBName** (str) - ULB实例的名称 - **VServerId** (str) - SSL证书绑定到的VServer的资源ID - **VServerName** (str) - 对应的VServer的名字 """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DescribeSSLRequestSchema().dumps(d) resp = self.invoke("DescribeSSL", d, **kwargs) return apis.DescribeSSLResponseSchema().loads(resp)
[docs] def describe_ulb(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """DescribeULB - 获取ULB详细信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_ - **BusinessId** (str) - ULB所属的业务组ID - **Limit** (int) - 数据分页值,默认为20 - **Offset** (int) - 数据偏移量,默认为0 - **SubnetId** (str) - ULB所属的子网ID - **ULBId** (str) - 负载均衡实例的Id。 若指定则返回指定的负载均衡实例的信息; 若不指定则返回当前数据中心中所有的负载均衡实例的信息 - **VPCId** (str) - ULB所属的VPC **Response** - **DataSet** (list) - 见 **ULBSet** 模型定义 - **TotalCount** (int) - 满足条件的ULB总数 **Response Model** **ULBSet** - **Bandwidth** (int) - 带宽 - **BandwidthType** (int) - 带宽类型,枚举值为: 0,非共享带宽; 1,共享带宽 - **BusinessId** (str) - ULB 所属的业务组ID - **CreateTime** (int) - ULB的创建时间,格式为Unix Timestamp - **EnableLog** (int) - ULB是否开启日志功能。0,关闭;1,开启 - **FirewallSet** (list) - 见 **FirewallSet** 模型定义 - **IPSet** (list) - 见 **ULBIPSet** 模型定义 - **IPVersion** (str) - ULB ip类型,枚举值:IPv6 / IPv4 (内部测试,暂未对外开放) - **ListenType** (str) - ULB 监听器类型,枚举值:RequestProxy,请求代理; PacketsTransmit ,报文转发;Comprehensive,兼容型;Pending,未定型 - **LogSet** (dict) - 见 **LoggerSet** 模型定义 - **Name** (str) - 负载均衡的资源名称 - **PrivateIP** (str) - ULB的内网IP,当ULBType为OuterMode时,该值为空 - **Remark** (str) - 负载均衡的备注 - **SubnetId** (str) - ULB 为 InnerMode 时,ULB 所属的子网ID,默认为空 - **Tag** (str) - 负载均衡的业务组名称 - **ULBId** (str) - 负载均衡的资源ID - **ULBType** (str) - ULB 的类型 - **VPCId** (str) - ULB所在的VPC的ID - **VServerSet** (list) - 见 **ULBVServerSet** 模型定义 **ULBIPSet** - **Bandwidth** (int) - 弹性IP的带宽值(暂未对外开放) - **BandwidthType** (int) - 弹性IP的带宽类型,枚举值:1 表示是共享带宽,0 普通带宽类型(暂未对外开放) - **EIP** (str) - 弹性IP地址 - **EIPId** (str) - 弹性IP的ID - **OperatorName** (str) - 弹性IP的运营商信息,枚举值为: Bgp:BGP IP International:国际IP **ULBVServerSet** - **BackendSet** (list) - 见 **ULBBackendSet** 模型定义 - **ClientTimeout** (int) - 空闲连接的回收时间,单位:秒。 - **Domain** (str) - 根据MonitorType确认; 当MonitorType为Port时,此字段无意义。当MonitorType为Path时,代表HTTP检查域名 - **FrontendPort** (int) - VServer服务端口 - **ListenType** (str) - 监听器类型,枚举值为: RequestProxy -> 请求代理;PacketsTransmit -> 报文转发 - **Method** (str) - VServer负载均衡的模式,枚举值:Roundrobin -> 轮询;Source -> 源地址;ConsistentHash -> 一致性哈希;SourcePort -> 源地址(计算端口);ConsistentHashPort -> 一致性哈希(计算端口)。 - **MonitorType** (str) - 健康检查类型,枚举值:Port -> 端口检查;Path -> 路径检查;Ping -> Ping探测, Customize -> UDP检查请求代理型默认值为Port,其中TCP协议仅支持Port,其他协议支持Port和Path; 报文转发型TCP协议仅支持Port,UDP协议支持Ping、Port和Customize - **Path** (str) - 根据MonitorType确认; 当MonitorType为Port时,此字段无意义。当MonitorType为Path时,代表HTTP检查路径 - **PersistenceInfo** (str) - 根据PersistenceType确定: None或ServerInsert,此字段为空; UserDefined,此字段展示用户自定义会话string。 - **PersistenceType** (str) - VServer会话保持方式。枚举值为: None -> 关闭会话保持; ServerInsert -> 自动生成; UserDefined -> 用户自定义。 - **PolicySet** (list) - 见 **ULBPolicySet** 模型定义 - **Protocol** (str) - VServer实例的协议。 枚举值为:HTTP,TCP,UDP,HTTPS。 - **RequestMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查发出的请求报文 - **ResponseMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查请求应收到的响应报文 - **SSLSet** (list) - 见 **ULBSSLSet** 模型定义 - **Status** (int) - VServer的运行状态。枚举值: 0 -> rs全部运行正常;1 -> rs全部运行异常;2 -> rs部分运行异常。 - **VServerId** (str) - VServer实例的Id - **VServerName** (str) - VServer实例的名字 **ULBBackendSet** - **BackendId** (str) - 后端资源实例的Id - **Enabled** (int) - 后端提供服务的实例启用与否,枚举值:0 禁用 1 启用 - **IsBackup** (int) - 是否为backup,只有当vserver的Backup属性为1时才会有此字段,说明:0:主rs1:备rs - **Port** (int) - 后端提供服务的端口 - **PrivateIP** (str) - 后端提供服务的内网IP - **ResourceId** (str) - 资源实例的资源Id - **ResourceName** (str) - 资源实例的资源名称 - **ResourceType** (str) - 资源实例的类型 - **Status** (int) - 后端提供服务的实例运行状态,枚举值:0健康检查健康状态 1 健康检查异常 - **SubResourceId** (str) - 资源绑定的虚拟网卡实例的资源Id - **SubResourceName** (str) - 资源绑定的虚拟网卡实例的资源名称 - **SubResourceType** (str) - 资源绑定的虚拟网卡实例的类型 - **SubnetId** (str) - 后端提供服务的资源所在的子网的ID - **Weight** (int) - **ULBPolicySet** - **BackendSet** (list) - 见 **PolicyBackendSet** 模型定义 - **Match** (str) - 内容转发匹配字段;默认内容转发类型下为空。 - **PolicyId** (str) - 内容转发Id,默认内容转发类型下为空。 - **PolicyPriority** (int) - 内容转发优先级,范围[1,9999],数字越大优先级越高。默认内容转发规则下为0。 - **PolicyType** (str) - 内容类型,枚举值:Custom -> 客户自定义;Default -> 默认内容转发 - **TotalCount** (int) - 默认内容转发类型下返回当前rs总数 - **Type** (str) - 内容转发匹配字段的类型,枚举值:Domain -> 域名;Path -> 路径; 默认内容转发类型下为空 - **VServerId** (str) - 所属VServerId **PolicyBackendSet** - **BackendId** (str) - 所添加的后端资源在ULB中的对象ID,(为ULB系统中使用,与资源自身ID无关 - **ObjectId** (str) - 后端资源的对象ID - **Port** (int) - 所添加的后端资源服务端口 - **PrivateIP** (str) - 后端资源的内网IP - **ResourceName** (str) - 后端资源的实例名称 - **ResourceType** (str) - 所添加的后端资源的类型,枚举值:UHost -> 云主机;UPM -> 物理云主机; UDHost -> 私有专区主机;UDocker -> 容器;UHybrid->混合云主机;CUBE->Cube;UNI -> 虚拟网卡 - **SubResourceId** (str) - 如果资源绑定了弹性网卡,则展示弹性网卡的资源ID - **SubResourceName** (str) - 如果资源绑定了弹性网卡,则展示弹性网卡的资源名称 - **SubResourceType** (str) - "UNI"或者为空 **ULBSSLSet** - **BindedTargetSet** (list) - 见 **SSLBindedTargetSet** 模型定义 - **CreateTime** (int) - SSL证书的创建时间 - **HashValue** (str) - SSL证书的HASH值 - **SSLContent** (str) - SSL证书的内容 - **SSLId** (str) - SSL证书的Id - **SSLName** (str) - SSL证书的名字 - **SSLType** (str) - SSL证书类型,暂时只有 Pem 一种类型 **SSLBindedTargetSet** - **ULBId** (str) - VServer 所属的ULB实例的资源ID - **ULBName** (str) - ULB实例的名称 - **VServerId** (str) - SSL证书绑定到的VServer的资源ID - **VServerName** (str) - 对应的VServer的名字 **LoggerSet** - **BucketName** (str) - ulb日志上传的bucket - **TokenID** (str) - 上传到bucket使用的token的tokenid - **TokenName** (str) - bucket的token名称 **FirewallSet** - **FirewallId** (str) - 防火墙ID - **FirewallName** (str) - 防火墙名称 """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DescribeULBRequestSchema().dumps(d) resp = self.invoke("DescribeULB", d, **kwargs) return apis.DescribeULBResponseSchema().loads(resp)
[docs] def describe_ulb_simple( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """DescribeULBSimple - 获取ULB信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **BusinessId** (str) - ULB所属的业务组ID - **Limit** (int) - 数据分页值,默认为10000 - **Offset** (int) - 数据偏移量,默认为0 - **SubnetId** (str) - ULB所属的子网ID - **ULBId** (str) - 负载均衡实例的Id。 若指定则返回指定的负载均衡实例的信息; 若不指定则返回当前数据中心中所有的负载均衡实例的信息 - **VPCId** (str) - ULB所属的VPC **Response** - **DataSet** (list) - 见 **ULBSimpleSet** 模型定义 - **TotalCount** (int) - 满足条件的ULB总数 **Response Model** **LoggerSet** - **BucketName** (str) - ulb日志上传的bucket - **TokenID** (str) - 上传到bucket使用的token的tokenid - **TokenName** (str) - bucket的token名称 **FirewallSet** - **FirewallId** (str) - 防火墙ID - **FirewallName** (str) - 防火墙名称 **ULBIPSet** - **Bandwidth** (int) - 弹性IP的带宽值(暂未对外开放) - **BandwidthType** (int) - 弹性IP的带宽类型,枚举值:1 表示是共享带宽,0 普通带宽类型(暂未对外开放) - **EIP** (str) - 弹性IP地址 - **EIPId** (str) - 弹性IP的ID - **OperatorName** (str) - 弹性IP的运营商信息,枚举值为: Bgp:BGP IP International:国际IP **ULBSimpleSet** - **Bandwidth** (int) - 带宽 - **BandwidthType** (int) - 带宽类型,枚举值为: 0,非共享带宽; 1,共享带宽 - **BusinessId** (str) - ULB 所属的业务组ID - **CreateTime** (int) - ULB的创建时间,格式为Unix Timestamp - **EnableLog** (int) - ULB是否开启日志功能。0,关闭;1,开启 - **FirewallSet** (list) - 见 **FirewallSet** 模型定义 - **IPSet** (list) - 见 **ULBIPSet** 模型定义 - **IPVersion** (str) - ULB提供服务的IP类型。枚举值,“IPv4”,"IPv6"。默认为“IPv4” - **ListenType** (str) - ULB 监听器类型,枚举值:RequestProxy,请求代理; PacketsTransmit ,报文转发;Comprehensive,兼容型;Pending,未定型 - **LogSet** (dict) - 见 **LoggerSet** 模型定义 - **Name** (str) - 负载均衡的资源名称 - **PrivateIP** (str) - ULB的内网IP,当ULBType为OuterMode时,该值为空 - **Remark** (str) - 负载均衡的备注 - **SubnetId** (str) - ULB 为 InnerMode 时,ULB 所属的子网ID - **Tag** (str) - 负载均衡的业务组名称 - **ULBId** (str) - 负载均衡的资源ID - **ULBType** (str) - ULB 的类型(InnerMode or OuterMode) - **VPCId** (str) - ULB所在的VPC的ID - **VServerCount** (int) - ulb下vserver数量 """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DescribeULBSimpleRequestSchema().dumps(d) resp = self.invoke("DescribeULBSimple", d, **kwargs) return apis.DescribeULBSimpleResponseSchema().loads(resp)
[docs] def describe_vserver( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """DescribeVServer - 获取ULB下的VServer的详细信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_ - **ULBId** (str) - (Required) 负载均衡实例的Id - **Limit** (int) - 数据分页值 - **Offset** (int) - 数据偏移量 - **VServerId** (str) - VServer实例的Id;若指定则返回指定的VServer实例的信息; 若不指定则返回当前负载均衡实例下所有VServer的信息 **Response** - **DataSet** (list) - 见 **ULBVServerSet** 模型定义 - **TotalCount** (int) - 满足条件的VServer总数 **Response Model** **ULBVServerSet** - **BackendSet** (list) - 见 **ULBBackendSet** 模型定义 - **ClientTimeout** (int) - 空闲连接的回收时间,单位:秒。 - **Domain** (str) - 根据MonitorType确认; 当MonitorType为Port时,此字段无意义。当MonitorType为Path时,代表HTTP检查域名 - **FrontendPort** (int) - VServer服务端口 - **ListenType** (str) - 监听器类型,枚举值为: RequestProxy -> 请求代理;PacketsTransmit -> 报文转发 - **Method** (str) - VServer负载均衡的模式,枚举值:Roundrobin -> 轮询;Source -> 源地址;ConsistentHash -> 一致性哈希;SourcePort -> 源地址(计算端口);ConsistentHashPort -> 一致性哈希(计算端口)。 - **MonitorType** (str) - 健康检查类型,枚举值:Port -> 端口检查;Path -> 路径检查;Ping -> Ping探测, Customize -> UDP检查请求代理型默认值为Port,其中TCP协议仅支持Port,其他协议支持Port和Path; 报文转发型TCP协议仅支持Port,UDP协议支持Ping、Port和Customize - **Path** (str) - 根据MonitorType确认; 当MonitorType为Port时,此字段无意义。当MonitorType为Path时,代表HTTP检查路径 - **PersistenceInfo** (str) - 根据PersistenceType确定: None或ServerInsert,此字段为空; UserDefined,此字段展示用户自定义会话string。 - **PersistenceType** (str) - VServer会话保持方式。枚举值为: None -> 关闭会话保持; ServerInsert -> 自动生成; UserDefined -> 用户自定义。 - **PolicySet** (list) - 见 **ULBPolicySet** 模型定义 - **Protocol** (str) - VServer实例的协议。 枚举值为:HTTP,TCP,UDP,HTTPS。 - **RequestMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查发出的请求报文 - **ResponseMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查请求应收到的响应报文 - **SSLSet** (list) - 见 **ULBSSLSet** 模型定义 - **Status** (int) - VServer的运行状态。枚举值: 0 -> rs全部运行正常;1 -> rs全部运行异常;2 -> rs部分运行异常。 - **VServerId** (str) - VServer实例的Id - **VServerName** (str) - VServer实例的名字 **ULBBackendSet** - **BackendId** (str) - 后端资源实例的Id - **Enabled** (int) - 后端提供服务的实例启用与否,枚举值:0 禁用 1 启用 - **IsBackup** (int) - 是否为backup,只有当vserver的Backup属性为1时才会有此字段,说明:0:主rs1:备rs - **Port** (int) - 后端提供服务的端口 - **PrivateIP** (str) - 后端提供服务的内网IP - **ResourceId** (str) - 资源实例的资源Id - **ResourceName** (str) - 资源实例的资源名称 - **ResourceType** (str) - 资源实例的类型 - **Status** (int) - 后端提供服务的实例运行状态,枚举值:0健康检查健康状态 1 健康检查异常 - **SubResourceId** (str) - 资源绑定的虚拟网卡实例的资源Id - **SubResourceName** (str) - 资源绑定的虚拟网卡实例的资源名称 - **SubResourceType** (str) - 资源绑定的虚拟网卡实例的类型 - **SubnetId** (str) - 后端提供服务的资源所在的子网的ID - **Weight** (int) - **ULBPolicySet** - **BackendSet** (list) - 见 **PolicyBackendSet** 模型定义 - **Match** (str) - 内容转发匹配字段;默认内容转发类型下为空。 - **PolicyId** (str) - 内容转发Id,默认内容转发类型下为空。 - **PolicyPriority** (int) - 内容转发优先级,范围[1,9999],数字越大优先级越高。默认内容转发规则下为0。 - **PolicyType** (str) - 内容类型,枚举值:Custom -> 客户自定义;Default -> 默认内容转发 - **TotalCount** (int) - 默认内容转发类型下返回当前rs总数 - **Type** (str) - 内容转发匹配字段的类型,枚举值:Domain -> 域名;Path -> 路径; 默认内容转发类型下为空 - **VServerId** (str) - 所属VServerId **PolicyBackendSet** - **BackendId** (str) - 所添加的后端资源在ULB中的对象ID,(为ULB系统中使用,与资源自身ID无关 - **ObjectId** (str) - 后端资源的对象ID - **Port** (int) - 所添加的后端资源服务端口 - **PrivateIP** (str) - 后端资源的内网IP - **ResourceName** (str) - 后端资源的实例名称 - **ResourceType** (str) - 所添加的后端资源的类型,枚举值:UHost -> 云主机;UPM -> 物理云主机; UDHost -> 私有专区主机;UDocker -> 容器;UHybrid->混合云主机;CUBE->Cube;UNI -> 虚拟网卡 - **SubResourceId** (str) - 如果资源绑定了弹性网卡,则展示弹性网卡的资源ID - **SubResourceName** (str) - 如果资源绑定了弹性网卡,则展示弹性网卡的资源名称 - **SubResourceType** (str) - "UNI"或者为空 **ULBSSLSet** - **BindedTargetSet** (list) - 见 **SSLBindedTargetSet** 模型定义 - **CreateTime** (int) - SSL证书的创建时间 - **HashValue** (str) - SSL证书的HASH值 - **SSLContent** (str) - SSL证书的内容 - **SSLId** (str) - SSL证书的Id - **SSLName** (str) - SSL证书的名字 - **SSLType** (str) - SSL证书类型,暂时只有 Pem 一种类型 **SSLBindedTargetSet** - **ULBId** (str) - VServer 所属的ULB实例的资源ID - **ULBName** (str) - ULB实例的名称 - **VServerId** (str) - SSL证书绑定到的VServer的资源ID - **VServerName** (str) - 对应的VServer的名字 """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.DescribeVServerRequestSchema().dumps(d) resp = self.invoke("DescribeVServer", d, **kwargs) return apis.DescribeVServerResponseSchema().loads(resp)
[docs] def release_backend( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """ReleaseBackend - 从VServer释放后端资源实例 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **BackendId** (str) - (Required) 后端资源实例的ID(ULB后端ID,非资源自身ID) - **ULBId** (str) - (Required) 负载均衡实例的ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.ReleaseBackendRequestSchema().dumps(d) resp = self.invoke("ReleaseBackend", d, **kwargs) return apis.ReleaseBackendResponseSchema().loads(resp)
[docs] def unbind_ssl(self, req: typing.Optional[dict] = None, **kwargs) -> dict: """UnbindSSL - 从VServer解绑SSL证书 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **SSLId** (str) - (Required) SSL证书的Id - **ULBId** (str) - (Required) 所绑定ULB实例ID - **VServerId** (str) - (Required) 所绑定VServer实例ID **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.UnbindSSLRequestSchema().dumps(d) resp = self.invoke("UnbindSSL", d, **kwargs) return apis.UnbindSSLResponseSchema().loads(resp)
[docs] def update_backend_attribute( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """UpdateBackendAttribute - 更新ULB后端资源实例(服务节点)属性 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_ - **BackendId** (str) - (Required) 后端资源实例的ID(ULB后端ID,非资源自身ID) - **ULBId** (str) - (Required) 负载均衡资源ID - **Enabled** (int) - 后端实例状态开关 - **IsBackup** (int) - 是否为backup0:主rs1:备rs默认为0 - **Port** (int) - 后端资源服务端口,取值范围[1-65535] - **Weight** (int) - 所添加的后端RS权重(在加权轮询算法下有效),取值范围[0-100],默认为1 **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.UpdateBackendAttributeRequestSchema().dumps(d) resp = self.invoke("UpdateBackendAttribute", d, **kwargs) return apis.UpdateBackendAttributeResponseSchema().loads(resp)
[docs] def update_policy( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """UpdatePolicy - 更新内容转发规则,包括转发规则后的服务节点 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **Match** (str) - (Required) 内容转发匹配字段 - **ULBId** (str) - (Required) 需要添加内容转发策略的负载均衡实例ID - **VServerId** (str) - (Required) 需要添加内容转发策略的VServer实例ID,只支持请求代理模式下,HTTP或HTTPS协议的VServer - **BackendId** (list) - 内容转发策略应用的后端资源实例的ID,来源于 AllocateBackend 返回的 BackendId,不传表示更新转发节点为空 - **PolicyId** (str) - 转发规则的ID,当Type为Default时,可以不传或为空 - **Type** (str) - 内容转发匹配字段的类型,枚举值:Domain -> 域名转发规则;Path -> 路径转发规则;Default -> 默认转发规则,不传默认值Domain **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.UpdatePolicyRequestSchema().dumps(d) resp = self.invoke("UpdatePolicy", d, **kwargs) return apis.UpdatePolicyResponseSchema().loads(resp)
[docs] def update_ulb_attribute( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """UpdateULBAttribute - 更新ULB名字业务组备注等属性字段 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_ - **ULBId** (str) - (Required) ULB资源ID - **Name** (str) - 名字 - **Remark** (str) - 备注 - **Tag** (str) - 业务 **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.UpdateULBAttributeRequestSchema().dumps(d) resp = self.invoke("UpdateULBAttribute", d, **kwargs) return apis.UpdateULBAttributeResponseSchema().loads(resp)
[docs] def update_vserver_attribute( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """UpdateVServerAttribute - 更新VServer实例属性 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_ - **ULBId** (str) - (Required) 负载均衡实例ID - **VServerId** (str) - (Required) VServer实例ID - **ClientTimeout** (int) - 请求代理的VServer下表示空闲连接的回收时间,单位:秒,取值范围:时(0,86400],默认值为60;报文转发的VServer下表示回话保持的时间,单位:秒,取值范围:[60,900],0 表示禁用连接保持 - **Domain** (str) - MonitorType 为 Path 时指定健康检查发送请求时HTTP HEADER 里的域名 - **Method** (str) - VServer负载均衡模式,枚举值:Roundrobin -> 轮询;Source -> 源地址;ConsistentHash -> 一致性哈希;SourcePort -> 源地址(计算端口);ConsistentHashPort -> 一致性哈希(计算端口); WeightRoundrobin -> 加权轮询; Leastconn -> 最小连接数;Backup -> 主备模式。ConsistentHash,SourcePort,ConsistentHashPort 只在报文转发中使用;Leastconn只在请求代理中使用;Roundrobin、Source和WeightRoundrobin,Backup在请求代理和报文转发中使用。默认为:"Roundrobin" - **MonitorType** (str) - 健康检查类型,枚举值:Port -> 端口检查;Path -> 路径检查;Ping -> Ping探测,Customize -> UDP检查请求代理型默认值为Port,其中TCP协议仅支持Port,其他协议支持Port和Path;报文转发型TCP协议仅支持Port,UDP协议支持Ping、Port和Customize,默认值为Ping - **Path** (str) - MonitorType 为 Path 时指定健康检查发送请求时的路径,默认为 / - **PersistenceInfo** (str) - 根据PersistenceType确定: None或ServerInsert, 此字段无意义; UserDefined, 则此字段传入用户自定义会话保持String. 若无此字段则不做修改 - **PersistenceType** (str) - VServer会话保持模式,若无此字段则不做修改。枚举值:None:关闭;ServerInsert:自动生成KEY;UserDefined:用户自定义KEY。 - **RequestMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查发出的请求报文 - **ResponseMsg** (str) - 根据MonitorType确认; 当MonitorType为Customize时,此字段有意义,代表UDP检查请求应收到的响应报文 - **VServerName** (str) - VServer实例名称,若无此字段则不做修改 **Response** """ # build request d = { "ProjectId": self.config.project_id, "Region": self.config.region, } req and d.update(req) d = apis.UpdateVServerAttributeRequestSchema().dumps(d) resp = self.invoke("UpdateVServerAttribute", d, **kwargs) return apis.UpdateVServerAttributeResponseSchema().loads(resp)