# !/usr/bin/env python # coding=UTF-8 # # Copyright 2023 Baidu, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. """ This module provides a client class for csn. """ import json import logging from urllib.parse import quote from baidubce import bce_base_client from baidubce.services.csn.csn_api import csn_apis _logger = logging.getLogger(__name__) class CsnClient(bce_base_client.BceBaseClient): """ csn base sdk client """ def __init__(self, config=None): bce_base_client.BceBaseClient.__init__(self, config) def attach_instance(self, csn_id, instance_type, instance_id, instance_region, instance_account_id=None, client_token=None): """ ​将网络实例加载进云智能网。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param instance_type: :desc 实例类型 :type instance_type: str :param instance_id: :desc 实例ID :type instance_id: str :param instance_region: :desc 实例所属的地域 :type instance_region: str :param instance_account_id: :desc 实例所属的账号ID :type instance_account_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "attach_instance") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "attach", '') self._add_query(api_config, "clientToken", client_token) body = { "instanceType": instance_type, "instanceId": instance_id, "instanceRegion": instance_region, "instanceAccountId": instance_account_id } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def bind_csn_bp(self, csn_bp_id, csn_id, client_token=None): """ 带宽包绑定云智能网。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param csn_id: :desc 云智能网ID :type csn_id :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "bind_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "bind", '') self._add_query(api_config, "clientToken", client_token) body = { "csnId": csn_id, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_association(self, csn_rt_id, attach_id, description=None, client_token=None): """ ​创建路由表的关联关系。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :param attach_id: :desc 网络实例在云智能网中的身份ID :type attach_id: str :param description: :desc 路由表的关联关系的描述 :type description: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_association") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_query(api_config, "clientToken", client_token) body = { 'attachId': attach_id, 'description': description, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_csn(self, name, description=None, tags=None, client_token=None): """ ​创建云智能网。 :param name: :desc 云智能网的名称 :type name: str :param description: :desc 云智能网的描述 :type description: str :param tags: :desc 云智能网的标签列表 :type tags: list[Tag] :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_csn") self._add_query(api_config, "clientToken", client_token) body = { 'name': name, 'description': description, } if tags is not None: tag_list = [tag.__dict__ for tag in tags] body['tags'] = tag_list return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_csn_bp(self, name, bandwidth, geographic_a, geographic_b, billing, interwork_type=None, tags=None, client_token=None): """ ​创建云智能网共享带宽包。 :param name: :desc 带宽包的名称 :type name: str :param interwork_type: :desc 云智能网共享带宽包的互通类型,取值: :type interwork_type: str :param bandwidth: :desc 带宽包的带宽,单位Mbps :type bandwidth: int :param geographic_a: :desc 带宽包的A地 :type geographic_a: str :param geographic_b: :desc 带宽包的B地 :type geographic_b: str :param billing: :desc 带宽包的计费信息 :type billing: Billing :param tags: :desc 带宽包的标签列表 :type tags: list[Tag] :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_csn_bp") self._add_query(api_config, "clientToken", client_token) body = { 'name': name, 'interworkType': interwork_type, 'bandwidth': bandwidth, 'geographicA': geographic_a, 'geographicB': geographic_b, 'billing': billing.__dict__, } if tags is not None: tag_list = [tag.__dict__ for tag in tags] body['tags'] = tag_list return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_csn_bp_limit(self, csn_bp_id, local_region, peer_region, bandwidth, client_token=None): """ 创建带宽包中两个地域间的地域带宽。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param local_region: :desc 地域带宽的本端region,云边互通场景中表示云端region :type local_region: str :param peer_region: :desc 地域带宽的对端region,云边互通场景中表示边缘region :type peer_region: str :param bandwidth: :desc 地域带宽的带宽值 :type bandwidth: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_csn_bp_limit") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "clientToken", client_token) body = { 'localRegion': local_region, 'peerRegion': peer_region, 'bandwidth': bandwidth, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_propagation(self, csn_rt_id, attach_id, description=None, client_token=None): """ 创建路由表的学习关系。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :param attach_id: :desc 网络实例在云智能网中的身份的ID :type create_propagation_request: json :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_propagation") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_query(api_config, "clientToken", client_token) body = { 'attachId': attach_id, 'description': description, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def create_route_rule(self, csn_rt_id, attach_id, destAddress, routeType="custom", client_token=None): """ 添加云智能网路由表的路由条目。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :param attach_id: :desc 网络实例在云智能网中的身份的ID :type attach_id: str :param destAddress: :desc 目的地址 :type destAddress: str :param routeType: :desc 路由类型,目前只支持"custom" :type routeType: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "create_route_rule") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_query(api_config, "clientToken", client_token) body = { "attachId": attach_id, "destAddress": destAddress, "routeType": routeType, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def delete_association(self, csn_rt_id=None, attach_id=None, client_token=None): """ 删除云智能网路由表的关联关系。 :param csn_rt_id: :desc 路由表的ID :type csn_rt_id: str :param attach_id: :desc 网络实例在云智能网中的身份ID :type attach_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_association") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_path_param(api_config, "attachId", attach_id) self._add_query(api_config, "clientToken", client_token) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def delete_csn(self, csn_id, client_token=None): """ ​删除云智能网。 已经加载了网络实例的云智能网不能直接删除,必须先卸载实例。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_csn") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "clientToken", client_token) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def delete_csn_bp(self, csn_bp_id, client_token=None): """ ​删除带宽包。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "clientToken", client_token) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def delete_csn_bp_limit(self, csn_bp_id, local_region, peer_region, client_token=None): """ ​删除带宽包中两个地域间的地域带宽。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param local_region: :desc 地域带宽的本端region,云边互通场景中表示云端region :type local_region: str :param peer_region: :desc 地域带宽的对端region,云边互通场景中表示边缘region :type peer_region: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_csn_bp_limit") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "clientToken", client_token) body = { 'localRegion': local_region, 'peerRegion': peer_region, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def delete_propagation(self, csn_rt_id, attach_id, client_token=None): """ ​删除云智能网路由表的学习关系。 :param csn_rt_id: :desc 路由表的ID :type csn_rt_id: str :param attach_id: :desc 网络实例在云智能网中的身份ID :type attach_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_propagation") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_path_param(api_config, "attachId", attach_id) self._add_query(api_config, "clientToken", client_token) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def delete_route_rule(self, csn_rt_id=None, csn_rt_rule_id=None, client_token=None): """ ​删除云智能网路由表的指定路由条目。 :param csn_rt_id: :desc 路由表的ID :type csn_rt_id: str :param csn_rt_rule_id: :desc 路由条目的ID :type csn_rt_rule_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "delete_route_rule") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_path_param(api_config, "csnRtRuleId", csn_rt_rule_id) self._add_query(api_config, "clientToken", client_token) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def detach_instance(self, csn_id, instance_type, instance_id, instance_region, instance_account_id=None, client_token=None): """ ​从云智能网中移出指定的网络实例。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param instance_type: :desc 实例类型 :type instance_type: str :param instance_id: :desc 实例ID :type instance_id: str :param instance_region: :desc 实例所属的地域 :type instance_region: str :param instance_account_id: :desc 实例所属的账号ID :type instance_account_id: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "detach_instance") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "detach", '') self._add_query(api_config, "clientToken", client_token) body = { "instanceType": instance_type, "instanceId": instance_id, "instanceRegion": instance_region, "instanceAccountId": instance_account_id } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def get_csn(self, csn_id): """ 查询云智能网详情。 :param csn_id: :desc csnId :type csn_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "get_csn") self._add_path_param(api_config, "csnId", csn_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def get_csn_bp(self, csn_bp_id=None): """ 查询指定云智能网带宽包详情。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "get_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def get_csn_bp_price(self, name, geographic_a, geographic_b, billing, bandwidth=None): """ 带宽包询价。 :param name: :desc 带宽包名称 :type name: str :param geographic_a: :desc 网络实例所属的区域。取值 [ China | Asia-Pacific ],分别表示中国大陆、亚太区域 :type geographic_a: str :param geographic_b: :desc 另一个网络实例所属的区域。取值 [ China | Asia-Pacific ],分别表示中国大陆、亚太区域 :type geographic_b: str :param billing: :desc 计费信息 :type billing: Billing :param bandwidth: :desc 带宽包的带宽值,单位:Mbps,后付费按流量不需要该值 :type bandwidth: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "get_csn_bp_price") body = { 'name': name, 'geographicA': geographic_a, 'geographicB': geographic_b, 'billing': billing.__dict__, } if bandwidth is not None: body['bandwidth'] = bandwidth return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def list_association(self, csn_rt_id=None): """ 查询指定云智能网路由表的关联关系。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_association") self._add_path_param(api_config, "csnRtId", csn_rt_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_csn(self, marker=None, max_keys=None): """ 查询云智能网列表。 :param marker: :desc 批量获取列表的查询的起始位置 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_csn") self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_csn_bp(self, marker=None, max_keys=None): """ 查询云智能网带宽包列表。 :param marker: :desc 批量获取列表的查询的起始位置,是一个由系统生成的字符串 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_csn_bp") self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_csn_bp_limit(self, csn_bp_id=None): """ 查询带宽包的地域带宽列表。 :param csn_bp_id: :desc :type csn_bp_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_csn_bp_limit") self._add_path_param(api_config, "csnBpId", csn_bp_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_csn_bp_limit_by_csn_id(self, csn_id): """ 查询云智能网的地域带宽列表。 :param csn_id: :desc 云智能网的ID :type csn_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_csn_bp_limit_by_csn_id") self._add_path_param(api_config, "csnId", csn_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_instance(self, csn_id, marker=None, max_keys=None): """ 查询指定云智能网下加载的网络实例信息。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param marker: :desc 批量获取列表的查询的起始位置 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_instance") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_propagation(self, csn_rt_id): """ 查询指定云智能网路由表的学习关系。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_propagation") self._add_path_param(api_config, "csnRtId", csn_rt_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_route_rule(self, csn_rt_id, marker=None, max_keys=None): """ 查询指定云智能网路由表的路由条目。 :param csn_rt_id: :desc 云智能网路由表的ID :type csn_rt_id: str :param marker: :desc 批量获取列表的查询的起始位置,是一个由系统生成的字符串 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000。缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_route_rule") self._add_path_param(api_config, "csnRtId", csn_rt_id) self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_route_table(self, csn_id, marker=None, max_keys=None): """ 查询云智能网的路由表列表。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param marker: :desc 批量获取列表的查询的起始位置,是一个由系统生成的字符串 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_route_table") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_tgw(self, csn_id=None, marker=None, max_keys=None): """ 查询云智能网TGW列表。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param marker: :desc 批量获取列表的查询的起始位置,是一个由系统生成的字符串 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: int :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_tgw") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def list_tgw_rule(self, csn_id=None, tgw_id=None, marker=None, max_keys=None): """ 查询指定TGW的路由条目。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param tgw_id: :desc TGW的ID :type tgw_id: str :param marker: :desc 批量获取列表的查询的起始位置,是一个由系统生成的字符串 :type marker: str :param max_keys: :desc 每页包含的最大数量,最大数量不超过1000,缺省值为1000 :type max_keys: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "list_tgw_rule") self._add_path_param(api_config, "csnId", csn_id) self._add_path_param(api_config, "tgwId", tgw_id) self._add_query(api_config, "marker", marker) self._add_query(api_config, "maxKeys", max_keys) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"]) def resize_csn_bp(self, csn_bp_id, bandwidth, client_token=None): """ 带宽包的带宽升降级。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param bandwidth: :desc 升降级的带宽值,最大值为10000 :type bandwidth: int :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "resize_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "resize", '') self._add_query(api_config, "clientToken", client_token) body = { 'bandwidth': bandwidth, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def unbind_csn_bp(self, csn_bp_id, csn_id, client_token=None): """ 带宽包解绑云智能网。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param csn_id: :desc 云智能网ID :type csn_id :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "unbind_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "unbind", '') self._add_query(api_config, "clientToken", client_token) body = { 'csnId': csn_id, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def update_csn(self, csn_id, name=None, description=None, client_token=None): """ ​更新云智能网。 更新云智能网的名称和描述。 :param csn_id: :desc 云智能网ID :type csn_id: str :param name: :desc 云智能网的名称 :type name: str :param description: :desc 云智能网的描述 :type description: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串,详见ClientToken幂等性 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "update_csn") self._add_path_param(api_config, "csnId", csn_id) self._add_query(api_config, "clientToken", client_token) body = { "name": name, "description": description } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def update_csn_bp(self, csn_bp_id, name=None, client_token=None): """ ​更新带宽包的名称信息。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param name: :desc 带宽包的名称 :type name: str :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "update_csn_bp") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "clientToken", client_token) body = { "name": name } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def update_csn_bp_limit(self, csn_bp_id, local_region, peer_region, bandwidth, client_token=None): """ ​更新带宽包中两个地域间的地域带宽。 :param csn_bp_id: :desc 带宽包的ID :type csn_bp_id: str :param local_region: :desc 地域带宽的本端region,云边互通场景中表示云端region :type local_region: str :param peer_region: :desc 地域带宽的对端region,云边互通场景中表示边缘region :type peer_region: str :param bandwidth: :desc 地域带宽的带宽值 :type bandwidth: int :param client_token: :desc 幂等性Token,是一个长度不超过64位的ASCII字符串 :type client_token: str :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "update_csn_bp_limit") self._add_path_param(api_config, "csnBpId", csn_bp_id) self._add_query(api_config, "clientToken", client_token) body = { 'localRegion': local_region, 'peerRegion': peer_region, 'bandwidth': bandwidth, } return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(body)) def update_tgw(self, csn_id=None, tgw_id=None, update_tgw_request=None): """ 更新TGW的名称、描述。 :param csn_id: :desc 云智能网的ID :type csn_id: str :param tgw_id: :desc TGW实例的ID :type tgw_id: str :param update_tgw_request: :desc :type update_tgw_request: json :return: :rtype baidubce.bce_response.BceResponse """ api_config = self._get_config(csn_apis, "update_tgw") self._add_path_param(api_config, "csnId", csn_id) self._add_path_param(api_config, "tgwId", tgw_id) return self._send_request(api_config["method"], quote(api_config["path"]).encode("utf8"), api_config["headers"], api_config["queries"], json.dumps(update_tgw_request))