From 4fd545a3adaeaac0647348f05ea6a0209537c3bd Mon Sep 17 00:00:00 2001 From: ZhiQiang Fan Date: Sun, 1 Jul 2018 22:07:34 -0700 Subject: [PATCH] update to latest apis & bump version to 3.0.13.1 --- tccli/__init__.py | 2 +- tccli/services/aai/aai_client.py | 44 +- tccli/services/aai/v20180522/help.py | 53 +- tccli/services/cbs/cbs_client.py | 5 +- tccli/services/cbs/v20170312/help.py | 34 +- tccli/services/cws/cws_client.py | 101 +++ tccli/services/cws/v20180312/help.py | 47 +- tccli/services/dts/__init__.py | 4 + tccli/services/dts/dts_client.py | 504 ++++++++++++++ tccli/services/dts/v20180330/__init__.py | 1 + tccli/services/dts/v20180330/help.py | 165 +++++ tccli/services/postgres/postgres_client.py | 744 +++++++++++++++++++-- tccli/services/postgres/v20170312/help.py | 434 ++++++++++-- 13 files changed, 2008 insertions(+), 130 deletions(-) create mode 100644 tccli/services/dts/__init__.py create mode 100644 tccli/services/dts/dts_client.py create mode 100644 tccli/services/dts/v20180330/__init__.py create mode 100644 tccli/services/dts/v20180330/help.py diff --git a/tccli/__init__.py b/tccli/__init__.py index 2f97edafb4..2b38a8bd3a 100644 --- a/tccli/__init__.py +++ b/tccli/__init__.py @@ -1 +1 @@ -__version__ = '3.0.12.1' +__version__ = '3.0.13.1' diff --git a/tccli/services/aai/aai_client.py b/tccli/services/aai/aai_client.py index 9556da16fd..997710ddcd 100644 --- a/tccli/services/aai/aai_client.py +++ b/tccli/services/aai/aai_client.py @@ -29,9 +29,9 @@ def doSentenceRecognition(argv, arglist): "SubServiceType": Utils.try_to_json(argv, "--SubServiceType"), "EngSerViceType": Utils.try_to_json(argv, "--EngSerViceType"), "SourceType": Utils.try_to_json(argv, "--SourceType"), - "Url": Utils.try_to_json(argv, "--Url"), "VoiceFormat": Utils.try_to_json(argv, "--VoiceFormat"), "UsrAudioKey": Utils.try_to_json(argv, "--UsrAudioKey"), + "Url": Utils.try_to_json(argv, "--Url"), "Data": Utils.try_to_json(argv, "--Data"), "DataLen": Utils.try_to_json(argv, "--DataLen"), @@ -59,6 +59,47 @@ def doSentenceRecognition(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) +def doTextToVoice(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("TextToVoice", g_param[OptionsDefine.Version]) + return + + param = { + "Text": Utils.try_to_json(argv, "--Text"), + "SessionId": Utils.try_to_json(argv, "--SessionId"), + "ProjectId": Utils.try_to_json(argv, "--ProjectId"), + "ModelType": Utils.try_to_json(argv, "--ModelType"), + "Volume": Utils.try_to_json(argv, "--Volume"), + "Speed": Utils.try_to_json(argv, "--Speed"), + "VoiceType": Utils.try_to_json(argv, "--VoiceType"), + "PrimaryLanguage": Utils.try_to_json(argv, "--PrimaryLanguage"), + "SampleRate": Utils.try_to_json(argv, "--SampleRate"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.AaiClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.TextToVoiceRequest() + model.from_json_string(json.dumps(param)) + rsp = client.TextToVoice(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + CLIENT_MAP = { "v20180522": aai_client_v20180522, @@ -71,6 +112,7 @@ def doSentenceRecognition(argv, arglist): ACTION_MAP = { "SentenceRecognition": doSentenceRecognition, + "TextToVoice": doTextToVoice, } diff --git a/tccli/services/aai/v20180522/help.py b/tccli/services/aai/v20180522/help.py index c8ef935fe6..e53cfc8d4e 100644 --- a/tccli/services/aai/v20180522/help.py +++ b/tccli/services/aai/v20180522/help.py @@ -19,10 +19,6 @@ "name": "SourceType", "desc": "语音数据来源。0:语音 URL;1:语音数据(post body)。" }, - { - "name": "Url", - "desc": "语音 URL,公网可下载。当 SourceType 值为 0 时须填写该字段,为 1 时不填;URL 的长度大于 0,小于 2048,需进行urlencode编码。" - }, { "name": "VoiceFormat", "desc": "识别音频的音频格式(支持mp3,wav)。" @@ -31,15 +27,60 @@ "name": "UsrAudioKey", "desc": "用户端对此任务的唯一标识,用户自助生成,用于用户查找识别结果。" }, + { + "name": "Url", + "desc": "语音 URL,公网可下载。当 SourceType 值为 0 时须填写该字段,为 1 时不填;URL 的长度大于 0,小于 2048,需进行urlencode编码。音频时间长度要小于60s。" + }, { "name": "Data", - "desc": "语音数据,当SourceType 值为1时必须填写,为0可不写。要base64编码" + "desc": "语音数据,当SourceType 值为1时必须填写,为0可不写。要base64编码。音频数据要小于900k。" }, { "name": "DataLen", "desc": "数据长度,当 SourceType 值为1时必须填写,为0可不写。" } ], - "desc": "识别60s内的短语音。" + "desc": "识别60s内的短语音,当音频放在请求body中传输时整个请求大小不能超过1M,当音频以url方式传输时,音频时长不可超过60s。" + }, + "TextToVoice": { + "params": [ + { + "name": "Text", + "desc": "合成语音的源文本" + }, + { + "name": "SessionId", + "desc": "一次请求对应一个SessionId,会原样返回" + }, + { + "name": "ProjectId", + "desc": "项目id" + }, + { + "name": "ModelType", + "desc": "模型类型,1-默认模型" + }, + { + "name": "Volume", + "desc": "音量大小,暂仅支持默认值1.0" + }, + { + "name": "Speed", + "desc": "语速,暂仅支持默认值1.0" + }, + { + "name": "VoiceType", + "desc": "音色,1-默认音色" + }, + { + "name": "PrimaryLanguage", + "desc": "主语言类型
  • 1-中文(包括粤语),最大300字符
  • 2-英文,最大支持600字符
  • " + }, + { + "name": "SampleRate", + "desc": "音频采样率:暂仅支持16k" + } + ], + "desc": "腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。\n腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻;智能设备语音提醒;依靠网上现有节目或少量录音,快速合成明星语音,降低邀约成本;支持车载导航语音合成的个性化语音播报。\n内测期间免费使用。" } } \ No newline at end of file diff --git a/tccli/services/cbs/cbs_client.py b/tccli/services/cbs/cbs_client.py index c64de258e0..0df0074055 100644 --- a/tccli/services/cbs/cbs_client.py +++ b/tccli/services/cbs/cbs_client.py @@ -26,11 +26,11 @@ def doCreateDisks(argv, arglist): param = { "DiskType": Utils.try_to_json(argv, "--DiskType"), + "DiskChargeType": Utils.try_to_json(argv, "--DiskChargeType"), + "Placement": Utils.try_to_json(argv, "--Placement"), "DiskName": Utils.try_to_json(argv, "--DiskName"), "DiskCount": Utils.try_to_json(argv, "--DiskCount"), - "DiskChargeType": Utils.try_to_json(argv, "--DiskChargeType"), "DiskChargePrepaid": Utils.try_to_json(argv, "--DiskChargePrepaid"), - "Placement": Utils.try_to_json(argv, "--Placement"), "DiskSize": Utils.try_to_json(argv, "--DiskSize"), "SnapshotId": Utils.try_to_json(argv, "--SnapshotId"), "ClientToken": Utils.try_to_json(argv, "--ClientToken"), @@ -565,6 +565,7 @@ def doAttachDisks(argv, arglist): param = { "DiskIds": Utils.try_to_json(argv, "--DiskIds"), "InstanceId": Utils.try_to_json(argv, "--InstanceId"), + "DeleteWithInstance": Utils.try_to_json(argv, "--DeleteWithInstance"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) diff --git a/tccli/services/cbs/v20170312/help.py b/tccli/services/cbs/v20170312/help.py index f11bd8160f..7142f1cd52 100644 --- a/tccli/services/cbs/v20170312/help.py +++ b/tccli/services/cbs/v20170312/help.py @@ -7,6 +7,14 @@ "name": "DiskType", "desc": "硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘。" }, + { + "name": "DiskChargeType", + "desc": "云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。" + }, + { + "name": "Placement", + "desc": "实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。" + }, { "name": "DiskName", "desc": "云盘显示名称。不传则默认为“未命名”。最大长度不能超60个字节。" @@ -15,17 +23,9 @@ "name": "DiskCount", "desc": "创建云硬盘数量,不传则默认为1。单次请求最多可创建的云盘数有限制,具体参见[云硬盘使用限制](https://cloud.tencent.com/doc/product/362/5145)。" }, - { - "name": "DiskChargeType", - "desc": "付费模式,目前只有预付费,即只能取值为PREPAID。" - }, { "name": "DiskChargePrepaid", - "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的购买时长、是否设置自动续费等属性,创建预付费云盘该参数必传。" - }, - { - "name": "Placement", - "desc": "实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。" + "desc": "预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。" }, { "name": "DiskSize", @@ -92,7 +92,7 @@ "params": [ { "name": "DiskChargePrepaid", - "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。" + "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。
    在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。" }, { "name": "DiskId", @@ -148,15 +148,15 @@ }, { "name": "DiskSize", - "desc": "云盘大小,取值范围: 普通云硬盘:10GB ~ 4000G;高性能云硬盘:50GB ~ 4000GB;SSD云硬盘:100GB ~ 4000GB,步长均为10GB。" + "desc": "云硬盘大小,单位为GB。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。" }, { "name": "DiskChargeType", - "desc": "付费模式,目前只有预付费,即只能取值为PREPAID。" + "desc": "云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费" }, { "name": "DiskChargePrepaid", - "desc": "预付费相关参数设置,通过该参数可以指定包年包月云盘的购买时长,预付费云盘该参数必传。" + "desc": "预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。" }, { "name": "DiskCount", @@ -219,7 +219,7 @@ "desc": "需退还的云盘ID列表。" } ], - "desc": "本接口(TerminateDisks)用于退还云硬盘。\n\n* 当前仅支持退还包年包月云盘。\n* 支持批量操作,每次请求批量云硬盘的上限为50。如果批量云盘存在不允许操作的,请求会以特定错误码返回。" + "desc": "本接口(TerminateDisks)用于退还云硬盘。\n\n* 不再使用的云盘,可通过本接口主动退还。\n* 本接口支持退还预付费云盘和按小时后付费云盘。按小时后付费云盘可直接退还,预付费云盘需符合退还规则。\n* 支持批量操作,每次请求批量云硬盘的上限为50。如果批量云盘存在不允许操作的,请求会以特定错误码返回。" }, "DescribeDisks": { "params": [ @@ -229,7 +229,7 @@ }, { "name": "Filters", - "desc": "过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/api/213/9452#zone)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。" + "desc": "过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/api/213/9452#zone)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
  • tag - Array of [Tag](/document/product/362/15669) - 是否必填:否 -(过滤条件)按云盘绑定的标签过滤。" }, { "name": "Offset", @@ -305,6 +305,10 @@ { "name": "InstanceId", "desc": "云服务器实例ID。云盘将被挂载到此云服务器上,通过[DescribeInstances](/document/product/213/15728)接口查询。" + }, + { + "name": "DeleteWithInstance", + "desc": "可选参数,不传该参数则仅执行挂载操作。传入`True`时,会在挂载成功后将云硬盘设置为随云主机销毁模式,仅对按量计费云硬盘有效。" } ], "desc": "本接口(AttachDisks)用于挂载云硬盘。\n\n* 支持批量操作,将多块云盘挂载到同一云主机。如果多个云盘存在不允许挂载的云盘,则操作不执行,以返回特定的错误码返回。\n* 本接口为异步接口,当挂载云盘的请求成功返回时,表示后台已发起挂载云盘的操作,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHING”变为“ATTACHED”,则为挂载成功。" diff --git a/tccli/services/cws/cws_client.py b/tccli/services/cws/cws_client.py index 5a7fbfd55a..7a672739c0 100644 --- a/tccli/services/cws/cws_client.py +++ b/tccli/services/cws/cws_client.py @@ -18,6 +18,40 @@ from tccli.services.cws.v20180312 import help as v20180312_help +def doCreateVulsReport(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("CreateVulsReport", g_param[OptionsDefine.Version]) + return + + param = { + "SiteId": Utils.try_to_json(argv, "--SiteId"), + "MonitorId": Utils.try_to_json(argv, "--MonitorId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.CreateVulsReportRequest() + model.from_json_string(json.dumps(param)) + rsp = client.CreateVulsReport(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + def doDescribeVuls(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: @@ -370,6 +404,38 @@ def doModifyConfigAttribute(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) +def doDescribeVulsNumberTimeline(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeVulsNumberTimeline", g_param[OptionsDefine.Version]) + return + + param = { + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeVulsNumberTimelineRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeVulsNumberTimeline(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + def doVerifySites(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: @@ -507,6 +573,38 @@ def doDeleteSites(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) +def doDescribeVulsNumber(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeVulsNumber", g_param[OptionsDefine.Version]) + return + + param = { + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeVulsNumberRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeVulsNumber(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + def doDescribeMonitors(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: @@ -586,6 +684,7 @@ def doDescribeSiteQuota(argv, arglist): } ACTION_MAP = { + "CreateVulsReport": doCreateVulsReport, "DescribeVuls": doDescribeVuls, "ModifyMonitorAttribute": doModifyMonitorAttribute, "CreateSitesScans": doCreateSitesScans, @@ -596,10 +695,12 @@ def doDescribeSiteQuota(argv, arglist): "DescribeSitesVerification": doDescribeSitesVerification, "ModifySiteAttribute": doModifySiteAttribute, "ModifyConfigAttribute": doModifyConfigAttribute, + "DescribeVulsNumberTimeline": doDescribeVulsNumberTimeline, "VerifySites": doVerifySites, "DeleteMonitors": doDeleteMonitors, "CreateMonitors": doCreateMonitors, "DeleteSites": doDeleteSites, + "DescribeVulsNumber": doDescribeVulsNumber, "DescribeMonitors": doDescribeMonitors, "DescribeSiteQuota": doDescribeSiteQuota, diff --git a/tccli/services/cws/v20180312/help.py b/tccli/services/cws/v20180312/help.py index d37f84313c..0f41a5cdc1 100644 --- a/tccli/services/cws/v20180312/help.py +++ b/tccli/services/cws/v20180312/help.py @@ -1,6 +1,19 @@ # -*- coding: utf-8 -*- DESC = "cws-2018-03-12" INFO = { + "CreateVulsReport": { + "params": [ + { + "name": "SiteId", + "desc": "站点ID" + }, + { + "name": "MonitorId", + "desc": "监控任务ID" + } + ], + "desc": "本接口 (CreateVulsReport) 用于生成漏洞报告并返回下载链接。" + }, "DescribeVuls": { "params": [ { @@ -80,19 +93,6 @@ ], "desc": "本接口(CreateSitesScans)用于新增一个或多个站点的单次扫描任务。" }, - "DescribeConfig": { - "params": [], - "desc": "本接口 (DescribeConfig) 用于查询用户配置的详细信息。" - }, - "CreateVulsMisinformation": { - "params": [ - { - "name": "VulIds", - "desc": "漏洞ID列表" - } - ], - "desc": "本接口(CreateVulsMisinformation)用于新增一个或多个漏洞误报信息。" - }, "CreateSites": { "params": [ { @@ -106,6 +106,19 @@ ], "desc": "本接口(CreateSites)用于新增一个或多个站点。" }, + "CreateVulsMisinformation": { + "params": [ + { + "name": "VulIds", + "desc": "漏洞ID列表" + } + ], + "desc": "本接口(CreateVulsMisinformation)用于新增一个或多个漏洞误报信息。" + }, + "DescribeConfig": { + "params": [], + "desc": "本接口 (DescribeConfig) 用于查询用户配置的详细信息。" + }, "DescribeSites": { "params": [ { @@ -178,6 +191,10 @@ ], "desc": "本接口 (ModifyConfigAttribute) 用于修改用户配置的属性。" }, + "DescribeVulsNumberTimeline": { + "params": [], + "desc": "本接口 (DescribeVulsNumberTimeline) 用于查询漏洞数随时间变化统计信息。" + }, "DescribeMonitors": { "params": [ { @@ -246,6 +263,10 @@ ], "desc": "本接口 (DeleteSites) 用于删除站点。" }, + "DescribeVulsNumber": { + "params": [], + "desc": "本接口 (DescribeVulsNumber) 用于查询用户网站的漏洞总计数量。" + }, "VerifySites": { "params": [ { diff --git a/tccli/services/dts/__init__.py b/tccli/services/dts/__init__.py new file mode 100644 index 0000000000..eb7ff5cb88 --- /dev/null +++ b/tccli/services/dts/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from tccli.services.dts.dts_client import register_arg +from tccli.services.dts.dts_client import get_actions_info +from tccli.services.dts.dts_client import AVAILABLE_VERSION_LIST diff --git a/tccli/services/dts/dts_client.py b/tccli/services/dts/dts_client.py new file mode 100644 index 0000000000..fe237728ea --- /dev/null +++ b/tccli/services/dts/dts_client.py @@ -0,0 +1,504 @@ +# -*- coding: utf-8 -*- +import os +import json +import tccli.options_define as OptionsDefine +import tccli.format_output as FormatOutput +from tccli.nice_command import NiceCommand +import tccli.error_msg as ErrorMsg +import tccli.help_template as HelpTemplate +from tccli import __version__ +from tccli.utils import Utils +from tccli.configure import Configure +from tencentcloud.common import credential +from tencentcloud.common.profile.http_profile import HttpProfile +from tencentcloud.common.profile.client_profile import ClientProfile +from tencentcloud.dts.v20180330 import dts_client as dts_client_v20180330 +from tencentcloud.dts.v20180330 import models as models_v20180330 +from tccli.services.dts import v20180330 +from tccli.services.dts.v20180330 import help as v20180330_help + + +def doStartMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("StartMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.StartMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.StartMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeMigrateCheckJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeMigrateCheckJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeMigrateCheckJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeMigrateCheckJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doModifyMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("ModifyMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + "JobName": Utils.try_to_json(argv, "--JobName"), + "MigrateOption": Utils.try_to_json(argv, "--MigrateOption"), + "SrcAccessType": Utils.try_to_json(argv, "--SrcAccessType"), + "SrcInfo": Utils.try_to_json(argv, "--SrcInfo"), + "DstAccessType": Utils.try_to_json(argv, "--DstAccessType"), + "DstInfo": Utils.try_to_json(argv, "--DstInfo"), + "DatabaseInfo": Utils.try_to_json(argv, "--DatabaseInfo"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.ModifyMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.ModifyMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doCreateMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("CreateMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobName": Utils.try_to_json(argv, "--JobName"), + "MigrateOption": Utils.try_to_json(argv, "--MigrateOption"), + "SrcDatabaseType": Utils.try_to_json(argv, "--SrcDatabaseType"), + "SrcAccessType": Utils.try_to_json(argv, "--SrcAccessType"), + "SrcInfo": Utils.try_to_json(argv, "--SrcInfo"), + "DstDatabaseType": Utils.try_to_json(argv, "--DstDatabaseType"), + "DstAccessType": Utils.try_to_json(argv, "--DstAccessType"), + "DstInfo": Utils.try_to_json(argv, "--DstInfo"), + "DatabaseInfo": Utils.try_to_json(argv, "--DatabaseInfo"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.CreateMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.CreateMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDeleteMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DeleteMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DeleteMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DeleteMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doCreateMigrateCheckJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("CreateMigrateCheckJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.CreateMigrateCheckJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.CreateMigrateCheckJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doStopMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("StopMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.StopMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.StopMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeMigrateJobs(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeMigrateJobs", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + "JobName": Utils.try_to_json(argv, "--JobName"), + "Order": Utils.try_to_json(argv, "--Order"), + "OrderSeq": Utils.try_to_json(argv, "--OrderSeq"), + "Offset": Utils.try_to_json(argv, "--Offset"), + "Limit": Utils.try_to_json(argv, "--Limit"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeMigrateJobsRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeMigrateJobs(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doCompleteMigrateJob(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("CompleteMigrateJob", g_param[OptionsDefine.Version]) + return + + param = { + "JobId": Utils.try_to_json(argv, "--JobId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.CompleteMigrateJobRequest() + model.from_json_string(json.dumps(param)) + rsp = client.CompleteMigrateJob(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +CLIENT_MAP = { + "v20180330": dts_client_v20180330, + +} + +MODELS_MAP = { + "v20180330": models_v20180330, + +} + +ACTION_MAP = { + "StartMigrateJob": doStartMigrateJob, + "DescribeMigrateCheckJob": doDescribeMigrateCheckJob, + "ModifyMigrateJob": doModifyMigrateJob, + "CreateMigrateJob": doCreateMigrateJob, + "DeleteMigrateJob": doDeleteMigrateJob, + "CreateMigrateCheckJob": doCreateMigrateCheckJob, + "StopMigrateJob": doStopMigrateJob, + "DescribeMigrateJobs": doDescribeMigrateJobs, + "CompleteMigrateJob": doCompleteMigrateJob, + +} + +AVAILABLE_VERSION_LIST = [ + v20180330.version, + +] +AVAILABLE_VERSIONS = { + 'v' + v20180330.version.replace('-', ''): {"help": v20180330_help.INFO,"desc": v20180330_help.DESC}, + +} + + +def dts_action(argv, arglist): + if "help" in argv: + versions = sorted(AVAILABLE_VERSIONS.keys()) + opt_v = "--" + OptionsDefine.Version + version = versions[-1] + if opt_v in argv: + version = 'v' + argv[opt_v].replace('-', '') + if version not in versions: + print("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST)) + return + action_str = "" + docs = AVAILABLE_VERSIONS[version]["help"] + desc = AVAILABLE_VERSIONS[version]["desc"] + for action, info in docs.items(): + action_str += " %s\n" % action + action_str += Utils.split_str(" ", info["desc"], 120) + helpstr = HelpTemplate.SERVICE % {"name": "dts", "desc": desc, "actions": action_str} + print(helpstr) + else: + print(ErrorMsg.FEW_ARG) + + +def version_merge(): + help_merge = {} + for v in AVAILABLE_VERSIONS: + for action in AVAILABLE_VERSIONS[v]["help"]: + if action not in help_merge: + help_merge[action] = {} + help_merge[action]["cb"] = ACTION_MAP[action] + help_merge[action]["params"] = [] + for param in AVAILABLE_VERSIONS[v]["help"][action]["params"]: + if param["name"] not in help_merge[action]["params"]: + help_merge[action]["params"].append(param["name"]) + return help_merge + + +def register_arg(command): + cmd = NiceCommand("dts", dts_action) + command.reg_cmd(cmd) + cmd.reg_opt("help", "bool") + cmd.reg_opt(OptionsDefine.Version, "string") + help_merge = version_merge() + + for actionName, action in help_merge.items(): + c = NiceCommand(actionName, action["cb"]) + cmd.reg_cmd(c) + c.reg_opt("help", "bool") + for param in action["params"]: + c.reg_opt("--" + param, "string") + + for opt in OptionsDefine.ACTION_GLOBAL_OPT: + stropt = "--" + opt + c.reg_opt(stropt, "string") + + +def parse_global_arg(argv): + params = {} + for opt in OptionsDefine.ACTION_GLOBAL_OPT: + stropt = "--" + opt + if stropt in argv: + params[opt] = argv[stropt] + else: + params[opt] = None + if params[OptionsDefine.Version]: + params[OptionsDefine.Version] = "v" + params[OptionsDefine.Version].replace('-', '') + + config_handle = Configure() + profile = config_handle.profile + if ("--" + OptionsDefine.Profile) in argv: + profile = argv[("--" + OptionsDefine.Profile)] + + is_conexist, conf_path = config_handle._profile_existed(profile + "." + config_handle.configure) + is_creexist, cred_path = config_handle._profile_existed(profile + "." + config_handle.credential) + config = {} + cred = {} + if is_conexist: + config = config_handle._load_json_msg(conf_path) + if is_creexist: + cred = config_handle._load_json_msg(cred_path) + + for param in params.keys(): + if param == OptionsDefine.Version: + continue + if params[param] is None: + if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId]: + if param in cred: + params[param] = cred[param] + else: + raise Exception("%s is invalid" % param) + else: + if param in config: + params[param] = config[param] + elif param == OptionsDefine.Region: + raise Exception("%s is invalid" % OptionsDefine.Region) + try: + if params[OptionsDefine.Version] is None: + version = config["dts"][OptionsDefine.Version] + params[OptionsDefine.Version] = "v" + version.replace('-', '') + + if params[OptionsDefine.Endpoint] is None: + params[OptionsDefine.Endpoint] = config["dts"][OptionsDefine.Endpoint] + except Exception as err: + raise Exception("config file:%s error, %s" % (conf_path, str(err))) + versions = sorted(AVAILABLE_VERSIONS.keys()) + if params[OptionsDefine.Version] not in versions: + raise Exception("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST)) + return params + + +def show_help(action, version): + docs = AVAILABLE_VERSIONS[version]["help"][action] + desc = AVAILABLE_VERSIONS[version]["desc"] + docstr = "" + for param in docs["params"]: + docstr += " %s\n" % ("--" + param["name"]) + docstr += Utils.split_str(" ", param["desc"], 120) + + helpmsg = HelpTemplate.ACTION % {"name": action, "service": "dts", "desc": desc, "params": docstr} + print(helpmsg) + + +def get_actions_info(): + config = Configure() + new_version = max(AVAILABLE_VERSIONS.keys()) + version = new_version + try: + profile = config._load_json_msg(os.path.join(config.cli_path, "default.configure")) + version = profile["dts"]["version"] + version = "v" + version.replace('-', '') + except Exception: + pass + if version not in AVAILABLE_VERSIONS.keys(): + version = new_version + return AVAILABLE_VERSIONS[version]["help"] diff --git a/tccli/services/dts/v20180330/__init__.py b/tccli/services/dts/v20180330/__init__.py new file mode 100644 index 0000000000..16846fac1f --- /dev/null +++ b/tccli/services/dts/v20180330/__init__.py @@ -0,0 +1 @@ +version = "2018-03-30" \ No newline at end of file diff --git a/tccli/services/dts/v20180330/help.py b/tccli/services/dts/v20180330/help.py new file mode 100644 index 0000000000..7a743cca6f --- /dev/null +++ b/tccli/services/dts/v20180330/help.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +DESC = "dts-2018-03-30" +INFO = { + "StartMigrateJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "非定时任务会在调用后立即开始迁移,定时任务则会开始倒计时。\n调用此接口前,请务必先校验数据迁移任务通过。" + }, + "DescribeMigrateCheckJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "本接口用于创建校验后,获取校验的结果. 能查询到当前校验的状态和进度. \n若通过校验, 则可调用'StartMigrateJob' 开始迁移.\n若未通过校验, 则能查询到校验失败的原因. 请按照报错, 通过'ModifyMigrateJob'修改迁移配置或是调整源/目标实例的相关参数." + }, + "ModifyMigrateJob": { + "params": [ + { + "name": "JobId", + "desc": "待修改的数据迁移任务ID" + }, + { + "name": "JobName", + "desc": "数据迁移任务名称" + }, + { + "name": "MigrateOption", + "desc": "迁移任务配置选项" + }, + { + "name": "SrcAccessType", + "desc": "源实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例)" + }, + { + "name": "SrcInfo", + "desc": "源实例信息,具体内容跟迁移任务类型相关" + }, + { + "name": "DstAccessType", + "desc": "目标实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例). 目前只支持cdb." + }, + { + "name": "DstInfo", + "desc": "目标实例信息, 其中目标实例地域不允许修改." + }, + { + "name": "DatabaseInfo", + "desc": "当选择'指定库表'迁移的时候, 需要设置待迁移的源数据库表信息,用符合json数组格式的字符串描述, 如下所例。\n\n对于database-table两级结构的数据库:\n[{\"Database\":\"db1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db2\"}]\n对于database-schema-table三级结构:\n[{\"Database\":\"db1\",\"Schema\":\"s1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db1\",\"Schema\":\"s2\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db2\",\"Schema\":\"s1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db3\"},{\"Database\":\"db4\",\"Schema\":\"s1\"}]\n\n如果是'整个实例'的迁移模式,不需设置该字段" + } + ], + "desc": "修改数据迁移任务. \n当迁移任务处于下述状态时, 允许调用本接口: 迁移创建中, 创建完成, 校验成功, 校验失败, 迁移失败. \n源实例和目标实例类型不允许修改, 目标实例地域不允许修改。\n\n如果是金融区链路, 请使用域名: dts.ap-shenzhen-fsi.tencentcloudapi.com" + }, + "CreateMigrateJob": { + "params": [ + { + "name": "JobName", + "desc": "数据迁移任务名称" + }, + { + "name": "MigrateOption", + "desc": "迁移任务配置选项" + }, + { + "name": "SrcDatabaseType", + "desc": "源实例数据库类型:mysql,redis,mongodb" + }, + { + "name": "SrcAccessType", + "desc": "源实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例)" + }, + { + "name": "SrcInfo", + "desc": "源实例信息,具体内容跟迁移任务类型相关" + }, + { + "name": "DstDatabaseType", + "desc": "目标实例数据库类型,mysql,redis,mongodb" + }, + { + "name": "DstAccessType", + "desc": "目标实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例). 目前只支持cdb." + }, + { + "name": "DstInfo", + "desc": "目标实例信息" + }, + { + "name": "DatabaseInfo", + "desc": "需要迁移的源数据库表信息,用json格式的字符串描述。\n对于database-table两级结构的数据库:\n[{Database:db1,Table:[table1,table2]},{Database:db2}]\n对于database-schema-table三级结构:\n[{Database:db1,Schema:s1\nTable:[table1,table2]},{Database:db1,Schema:s2\nTable:[table1,table2]},{Database:db2,Schema:s1\nTable:[table1,table2]},{Database:db3},{Database:db4\nSchema:s1}]" + } + ], + "desc": "本接口用于创建数据迁移任务。\n\n如果是金融区链路, 请使用域名: dts.ap-shenzhen-fsi.tencentcloudapi.com" + }, + "DeleteMigrateJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "删除数据迁移任务. 正在校验和正在迁移的任务不允许删除" + }, + "CreateMigrateCheckJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "创建校验迁移任务\n在开始迁移前, 必须调用本接口创建校验, 且校验成功后才能开始迁移. 校验的结果可以通过DescribeMigrateCheckJob查看.\n校验成功后,迁移任务若有修改, 则必须重新创建校验并通过后, 才能开始迁移." + }, + "StopMigrateJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "撤销数据迁移任务.\n在迁移过程中允许调用该接口撤销迁移, 撤销迁移的任务会失败." + }, + "DescribeMigrateJobs": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + }, + { + "name": "JobName", + "desc": "数据迁移任务名称" + }, + { + "name": "Order", + "desc": "排序字段,可以取值为JobId、Status、JobName、MigrateType、RunMode、CreateTime" + }, + { + "name": "OrderSeq", + "desc": "排序方式,升序为ASC,降序为DESC" + }, + { + "name": "Offset", + "desc": "偏移量,默认为0" + }, + { + "name": "Limit", + "desc": "返回实例数量,默认20,有效区间[1,100]" + } + ], + "desc": "查询数据迁移任务.\n如果是金融区链路, 请使用域名: https://dts.ap-shenzhen-fsi.tencentcloudapi.com" + }, + "CompleteMigrateJob": { + "params": [ + { + "name": "JobId", + "desc": "数据迁移任务ID" + } + ], + "desc": "完成数据迁移任务.\n选择采用增量迁移方式的任务, 需要在迁移进度进入准备完成阶段后, 调用本接口, 停止迁移增量数据.\n只有当正在迁移的任务, 进入了准备完成阶段, 才能调用本接口完成迁移." + } +} \ No newline at end of file diff --git a/tccli/services/postgres/postgres_client.py b/tccli/services/postgres/postgres_client.py index cdf90b84a2..7d229cdb37 100644 --- a/tccli/services/postgres/postgres_client.py +++ b/tccli/services/postgres/postgres_client.py @@ -18,20 +18,482 @@ from tccli.services.postgres.v20170312 import help as v20170312_help +def doDescribeOrders(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeOrders", g_param[OptionsDefine.Version]) + return + + param = { + "DealNames": Utils.try_to_json(argv, "--DealNames"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeOrdersRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeOrders(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBBackups(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBBackups", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "Type": Utils.try_to_json(argv, "--Type"), + "StartTime": Utils.try_to_json(argv, "--StartTime"), + "EndTime": Utils.try_to_json(argv, "--EndTime"), + "Limit": Utils.try_to_json(argv, "--Limit"), + "Offset": Utils.try_to_json(argv, "--Offset"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBBackupsRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBBackups(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doResetAccountPassword(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("ResetAccountPassword", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "UserName": Utils.try_to_json(argv, "--UserName"), + "Password": Utils.try_to_json(argv, "--Password"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.ResetAccountPasswordRequest() + model.from_json_string(json.dumps(param)) + rsp = client.ResetAccountPassword(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBErrlogs(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBErrlogs", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "StartTime": Utils.try_to_json(argv, "--StartTime"), + "EndTime": Utils.try_to_json(argv, "--EndTime"), + "DatabaseName": Utils.try_to_json(argv, "--DatabaseName"), + "SearchKeys": Utils.try_to_json(argv, "--SearchKeys"), + "Limit": Utils.try_to_json(argv, "--Limit"), + "Offset": Utils.try_to_json(argv, "--Offset"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBErrlogsRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBErrlogs(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doRestartDBInstance(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("RestartDBInstance", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.RestartDBInstanceRequest() + model.from_json_string(json.dumps(param)) + rsp = client.RestartDBInstance(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + def doInquiryPriceCreateDBInstances(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("InquiryPriceCreateDBInstances", g_param[OptionsDefine.Version]) + show_help("InquiryPriceCreateDBInstances", g_param[OptionsDefine.Version]) + return + + param = { + "Zone": Utils.try_to_json(argv, "--Zone"), + "SpecCode": Utils.try_to_json(argv, "--SpecCode"), + "Storage": Utils.try_to_json(argv, "--Storage"), + "InstanceCount": Utils.try_to_json(argv, "--InstanceCount"), + "Period": Utils.try_to_json(argv, "--Period"), + "Pid": Utils.try_to_json(argv, "--Pid"), + "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.InquiryPriceCreateDBInstancesRequest() + model.from_json_string(json.dumps(param)) + rsp = client.InquiryPriceCreateDBInstances(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doOpenDBExtranetAccess(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("OpenDBExtranetAccess", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.OpenDBExtranetAccessRequest() + model.from_json_string(json.dumps(param)) + rsp = client.OpenDBExtranetAccess(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doModifyDBInstancesProject(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("ModifyDBInstancesProject", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceIdSet": Utils.try_to_json(argv, "--DBInstanceIdSet"), + "ProjectId": Utils.try_to_json(argv, "--ProjectId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.ModifyDBInstancesProjectRequest() + model.from_json_string(json.dumps(param)) + rsp = client.ModifyDBInstancesProject(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doModifyAccountRemark(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("ModifyAccountRemark", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "UserName": Utils.try_to_json(argv, "--UserName"), + "Remark": Utils.try_to_json(argv, "--Remark"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.ModifyAccountRemarkRequest() + model.from_json_string(json.dumps(param)) + rsp = client.ModifyAccountRemark(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBXlogs(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBXlogs", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "StartTime": Utils.try_to_json(argv, "--StartTime"), + "EndTime": Utils.try_to_json(argv, "--EndTime"), + "Offset": Utils.try_to_json(argv, "--Offset"), + "Limit": Utils.try_to_json(argv, "--Limit"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBXlogsRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBXlogs(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doSetAutoRenewFlag(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("SetAutoRenewFlag", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceIdSet": Utils.try_to_json(argv, "--DBInstanceIdSet"), + "AutoRenewFlag": Utils.try_to_json(argv, "--AutoRenewFlag"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.SetAutoRenewFlagRequest() + model.from_json_string(json.dumps(param)) + rsp = client.SetAutoRenewFlag(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBInstanceAttribute(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBInstanceAttribute", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBInstanceAttributeRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBInstanceAttribute(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doModifyDBInstanceName(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("ModifyDBInstanceName", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "InstanceName": Utils.try_to_json(argv, "--InstanceName"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.ModifyDBInstanceNameRequest() + model.from_json_string(json.dumps(param)) + rsp = client.ModifyDBInstanceName(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doCreateDBInstances(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("CreateDBInstances", g_param[OptionsDefine.Version]) return param = { - "Zone": Utils.try_to_json(argv, "--Zone"), "SpecCode": Utils.try_to_json(argv, "--SpecCode"), + "DBVersion": Utils.try_to_json(argv, "--DBVersion"), "Storage": Utils.try_to_json(argv, "--Storage"), "InstanceCount": Utils.try_to_json(argv, "--InstanceCount"), "Period": Utils.try_to_json(argv, "--Period"), - "Pid": Utils.try_to_json(argv, "--Pid"), + "Zone": Utils.try_to_json(argv, "--Zone"), + "ProjectId": Utils.try_to_json(argv, "--ProjectId"), "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"), + "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"), + "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"), + "VpcId": Utils.try_to_json(argv, "--VpcId"), + "SubnetId": Utils.try_to_json(argv, "--SubnetId"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -45,9 +507,112 @@ def doInquiryPriceCreateDBInstances(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.InquiryPriceCreateDBInstancesRequest() + model = models.CreateDBInstancesRequest() model.from_json_string(json.dumps(param)) - rsp = client.InquiryPriceCreateDBInstances(model) + rsp = client.CreateDBInstances(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doRenewInstance(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("RenewInstance", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "Period": Utils.try_to_json(argv, "--Period"), + "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"), + "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.RenewInstanceRequest() + model.from_json_string(json.dumps(param)) + rsp = client.RenewInstance(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBInstances(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBInstances", g_param[OptionsDefine.Version]) + return + + param = { + "Filters": Utils.try_to_json(argv, "--Filters"), + "Limit": Utils.try_to_json(argv, "--Limit"), + "Offset": Utils.try_to_json(argv, "--Offset"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBInstancesRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBInstances(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeZones(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeZones", g_param[OptionsDefine.Version]) + return + + param = { + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeZonesRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeZones(model) result = rsp.to_json_string() jsonobj = None try: @@ -93,6 +658,42 @@ def doInitDBInstances(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) +def doInquiryPriceUpgradeDBInstance(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("InquiryPriceUpgradeDBInstance", g_param[OptionsDefine.Version]) + return + + param = { + "Storage": Utils.try_to_json(argv, "--Storage"), + "Memory": Utils.try_to_json(argv, "--Memory"), + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.InquiryPriceUpgradeDBInstanceRequest() + model.from_json_string(json.dumps(param)) + rsp = client.InquiryPriceUpgradeDBInstance(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + def doDescribeRegions(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: @@ -125,14 +726,15 @@ def doDescribeRegions(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) -def doDescribeDBInstanceAttribute(argv, arglist): +def doInquiryPriceRenewDBInstance(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("DescribeDBInstanceAttribute", g_param[OptionsDefine.Version]) + show_help("InquiryPriceRenewDBInstance", g_param[OptionsDefine.Version]) return param = { "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "Period": Utils.try_to_json(argv, "--Period"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -146,9 +748,9 @@ def doDescribeDBInstanceAttribute(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.DescribeDBInstanceAttributeRequest() + model = models.InquiryPriceRenewDBInstanceRequest() model.from_json_string(json.dumps(param)) - rsp = client.DescribeDBInstanceAttribute(model) + rsp = client.InquiryPriceRenewDBInstance(model) result = rsp.to_json_string() jsonobj = None try: @@ -158,25 +760,14 @@ def doDescribeDBInstanceAttribute(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) -def doCreateDBInstances(argv, arglist): +def doCloseDBExtranetAccess(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("CreateDBInstances", g_param[OptionsDefine.Version]) + show_help("CloseDBExtranetAccess", g_param[OptionsDefine.Version]) return param = { - "ProjectId": Utils.try_to_json(argv, "--ProjectId"), - "SpecCode": Utils.try_to_json(argv, "--SpecCode"), - "DBVersion": Utils.try_to_json(argv, "--DBVersion"), - "Storage": Utils.try_to_json(argv, "--Storage"), - "InstanceCount": Utils.try_to_json(argv, "--InstanceCount"), - "Period": Utils.try_to_json(argv, "--Period"), - "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"), - "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"), - "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"), - "VpcId": Utils.try_to_json(argv, "--VpcId"), - "SubnetId": Utils.try_to_json(argv, "--SubnetId"), - "Zone": Utils.try_to_json(argv, "--Zone"), + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -190,9 +781,9 @@ def doCreateDBInstances(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.CreateDBInstancesRequest() + model = models.CloseDBExtranetAccessRequest() model.from_json_string(json.dumps(param)) - rsp = client.CreateDBInstances(model) + rsp = client.CloseDBExtranetAccess(model) result = rsp.to_json_string() jsonobj = None try: @@ -202,14 +793,18 @@ def doCreateDBInstances(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) -def doDescribeProductConfig(argv, arglist): +def doDescribeAccounts(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("DescribeProductConfig", g_param[OptionsDefine.Version]) + show_help("DescribeAccounts", g_param[OptionsDefine.Version]) return param = { - "Zone": Utils.try_to_json(argv, "--Zone"), + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "Limit": Utils.try_to_json(argv, "--Limit"), + "Offset": Utils.try_to_json(argv, "--Offset"), + "OrderBy": Utils.try_to_json(argv, "--OrderBy"), + "OrderByType": Utils.try_to_json(argv, "--OrderByType"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -223,9 +818,9 @@ def doDescribeProductConfig(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.DescribeProductConfigRequest() + model = models.DescribeAccountsRequest() model.from_json_string(json.dumps(param)) - rsp = client.DescribeProductConfig(model) + rsp = client.DescribeAccounts(model) result = rsp.to_json_string() jsonobj = None try: @@ -235,16 +830,18 @@ def doDescribeProductConfig(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) -def doDescribeDBInstances(argv, arglist): +def doUpgradeDBInstance(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("DescribeDBInstances", g_param[OptionsDefine.Version]) + show_help("UpgradeDBInstance", g_param[OptionsDefine.Version]) return param = { - "PageSize": Utils.try_to_json(argv, "--PageSize"), - "PageNumber": Utils.try_to_json(argv, "--PageNumber"), - "Filters": Utils.try_to_json(argv, "--Filters"), + "Memory": Utils.try_to_json(argv, "--Memory"), + "Storage": Utils.try_to_json(argv, "--Storage"), + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"), + "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -258,9 +855,9 @@ def doDescribeDBInstances(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.DescribeDBInstancesRequest() + model = models.UpgradeDBInstanceRequest() model.from_json_string(json.dumps(param)) - rsp = client.DescribeDBInstances(model) + rsp = client.UpgradeDBInstance(model) result = rsp.to_json_string() jsonobj = None try: @@ -270,13 +867,14 @@ def doDescribeDBInstances(argv, arglist): FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) -def doDescribeZones(argv, arglist): +def doDescribeProductConfig(argv, arglist): g_param = parse_global_arg(argv) if "help" in argv: - show_help("DescribeZones", g_param[OptionsDefine.Version]) + show_help("DescribeProductConfig", g_param[OptionsDefine.Version]) return param = { + "Zone": Utils.try_to_json(argv, "--Zone"), } cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) @@ -290,9 +888,49 @@ def doDescribeZones(argv, arglist): client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) client._sdkVersion += ("_CLI_" + __version__) models = MODELS_MAP[g_param[OptionsDefine.Version]] - model = models.DescribeZonesRequest() + model = models.DescribeProductConfigRequest() model.from_json_string(json.dumps(param)) - rsp = client.DescribeZones(model) + rsp = client.DescribeProductConfig(model) + result = rsp.to_json_string() + jsonobj = None + try: + jsonobj = json.loads(result) + except TypeError as e: + jsonobj = json.loads(result.decode('utf-8')) # python3.3 + FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter]) + + +def doDescribeDBSlowlogs(argv, arglist): + g_param = parse_global_arg(argv) + if "help" in argv: + show_help("DescribeDBSlowlogs", g_param[OptionsDefine.Version]) + return + + param = { + "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"), + "StartTime": Utils.try_to_json(argv, "--StartTime"), + "EndTime": Utils.try_to_json(argv, "--EndTime"), + "DatabaseName": Utils.try_to_json(argv, "--DatabaseName"), + "OrderBy": Utils.try_to_json(argv, "--OrderBy"), + "OrderByType": Utils.try_to_json(argv, "--OrderByType"), + "Limit": Utils.try_to_json(argv, "--Limit"), + "Offset": Utils.try_to_json(argv, "--Offset"), + + } + cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey]) + http_profile = HttpProfile( + reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]), + reqMethod="POST", + endpoint=g_param[OptionsDefine.Endpoint] + ) + profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256") + mod = CLIENT_MAP[g_param[OptionsDefine.Version]] + client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile) + client._sdkVersion += ("_CLI_" + __version__) + models = MODELS_MAP[g_param[OptionsDefine.Version]] + model = models.DescribeDBSlowlogsRequest() + model.from_json_string(json.dumps(param)) + rsp = client.DescribeDBSlowlogs(model) result = rsp.to_json_string() jsonobj = None try: @@ -313,14 +951,32 @@ def doDescribeZones(argv, arglist): } ACTION_MAP = { + "DescribeOrders": doDescribeOrders, + "DescribeDBBackups": doDescribeDBBackups, + "ResetAccountPassword": doResetAccountPassword, + "DescribeDBErrlogs": doDescribeDBErrlogs, + "RestartDBInstance": doRestartDBInstance, "InquiryPriceCreateDBInstances": doInquiryPriceCreateDBInstances, - "InitDBInstances": doInitDBInstances, - "DescribeRegions": doDescribeRegions, + "OpenDBExtranetAccess": doOpenDBExtranetAccess, + "ModifyDBInstancesProject": doModifyDBInstancesProject, + "ModifyAccountRemark": doModifyAccountRemark, + "DescribeDBXlogs": doDescribeDBXlogs, + "SetAutoRenewFlag": doSetAutoRenewFlag, "DescribeDBInstanceAttribute": doDescribeDBInstanceAttribute, + "ModifyDBInstanceName": doModifyDBInstanceName, "CreateDBInstances": doCreateDBInstances, - "DescribeProductConfig": doDescribeProductConfig, + "RenewInstance": doRenewInstance, "DescribeDBInstances": doDescribeDBInstances, "DescribeZones": doDescribeZones, + "InitDBInstances": doInitDBInstances, + "InquiryPriceUpgradeDBInstance": doInquiryPriceUpgradeDBInstance, + "DescribeRegions": doDescribeRegions, + "InquiryPriceRenewDBInstance": doInquiryPriceRenewDBInstance, + "CloseDBExtranetAccess": doCloseDBExtranetAccess, + "DescribeAccounts": doDescribeAccounts, + "UpgradeDBInstance": doUpgradeDBInstance, + "DescribeProductConfig": doDescribeProductConfig, + "DescribeDBSlowlogs": doDescribeDBSlowlogs, } diff --git a/tccli/services/postgres/v20170312/help.py b/tccli/services/postgres/v20170312/help.py index 59a94b198d..f16b25c777 100644 --- a/tccli/services/postgres/v20170312/help.py +++ b/tccli/services/postgres/v20170312/help.py @@ -1,50 +1,237 @@ # -*- coding: utf-8 -*- DESC = "postgres-2017-03-12" INFO = { - "InitDBInstances": { + "DescribeOrders": { "params": [ { - "name": "DBInstanceIdSet", - "desc": "实例ID集合。" + "name": "DealNames", + "desc": "订单名集合" + } + ], + "desc": "本接口(DescribeOrders)用于获取订单信息。" + }, + "DescribeDBBackups": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-4wdeb0zv。" }, { - "name": "AdminName", - "desc": "实例根账号用户名。" + "name": "Type", + "desc": "备份方式(1-全量)。目前只支持全量,取值为1。" }, { - "name": "AdminPassword", - "desc": "实例根账号用户名对应的密码。" + "name": "StartTime", + "desc": "查询开始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前" }, { - "name": "Charset", - "desc": "实例字符集,目前只支持:UTF8、LATIN1。" + "name": "EndTime", + "desc": "查询结束时间,形如2018-06-10 17:06:38" + }, + { + "name": "Limit", + "desc": "备份列表分页返回,每页返回数量,默认为 20,最小为1,最大值为 100。" + }, + { + "name": "Offset", + "desc": "返回结果中的第几页,从第0页开始。默认为0。" } ], - "desc": "本接口 (InitDBInstances) 用于初始化云数据库PostgreSQL实例。" + "desc": "本接口(DescribeDBBackups)用于查询实例备份列表。" }, - "DescribeZones": { - "params": [], - "desc": "本接口 (DescribeZones) 用于查询支持的可用区信息。" + "ResetAccountPassword": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-4wdeb0zv" + }, + { + "name": "UserName", + "desc": "实例账户名" + }, + { + "name": "Password", + "desc": "UserName账户对应的新密码" + } + ], + "desc": "本接口(ResetAccountPassword)用于重置实例的账户密码。" }, - "DescribeRegions": { - "params": [], - "desc": "本接口 (DescribeRegions) 用于查询售卖地域信息。" + "DescribeDBErrlogs": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-5bq3wfjd" + }, + { + "name": "StartTime", + "desc": "查询起始时间,形如2018-01-01 00:00:00,起始时间不得小于7天以前" + }, + { + "name": "EndTime", + "desc": "查询结束时间,形如2018-01-01 00:00:00" + }, + { + "name": "DatabaseName", + "desc": "数据库名字" + }, + { + "name": "SearchKeys", + "desc": "搜索关键字" + }, + { + "name": "Limit", + "desc": "分页返回,每页返回的最大数量。取值为1-100" + }, + { + "name": "Offset", + "desc": "分页返回,返回第几页的数据,从第0页开始计数" + } + ], + "desc": "本接口(DescribeDBErrlogs)用于获取错误日志。" }, "DescribeDBInstanceAttribute": { "params": [ { "name": "DBInstanceId", - "desc": "实例ID。" + "desc": "实例ID" } ], "desc": "本接口 (DescribeDBInstanceAttribute) 用于查询某个实例的详情信息。" }, - "CreateDBInstances": { + "InquiryPriceCreateDBInstances": { + "params": [ + { + "name": "Zone", + "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。" + }, + { + "name": "SpecCode", + "desc": "规格ID。该参数可以通过调用DescribeProductConfig接口的返回值中的SpecCode字段来获取。" + }, + { + "name": "Storage", + "desc": "存储容量大小,单位:GB。" + }, + { + "name": "InstanceCount", + "desc": "实例数量。目前最大数量不超过100,如需一次性创建更多实例,请联系客服支持。" + }, + { + "name": "Period", + "desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。" + }, + { + "name": "Pid", + "desc": "计费ID。该参数可以通过调用DescribeProductConfig接口的返回值中的Pid字段来获取。" + }, + { + "name": "InstanceChargeType", + "desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。" + } + ], + "desc": "本接口 (InquiryPriceCreateDBInstances) 用于查询购买一个或多个实例的价格信息。" + }, + "OpenDBExtranetAccess": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-hez4fh0v" + } + ], + "desc": "本接口(OpenDBExtranetAccess)用于开通外网。" + }, + "ModifyDBInstancesProject": { "params": [ + { + "name": "DBInstanceIdSet", + "desc": "postgresql实例ID数组" + }, { "name": "ProjectId", - "desc": "项目ID。" + "desc": "postgresql实例所属新项目的ID" + } + ], + "desc": "本接口(ModifyDBInstancesProject)用于将实例转至其他项目。" + }, + "ModifyAccountRemark": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-4wdeb0zv" + }, + { + "name": "UserName", + "desc": "实例用户名" }, + { + "name": "Remark", + "desc": "用户UserName对应的新备注" + } + ], + "desc": "本接口(ModifyAccountRemark)用于修改帐号备注。" + }, + "DescribeDBXlogs": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-4wdeb0zv。" + }, + { + "name": "StartTime", + "desc": "查询开始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前" + }, + { + "name": "EndTime", + "desc": "查询结束时间,形如2018-06-10 17:06:38" + }, + { + "name": "Offset", + "desc": "分页返回,表示返回第几页的条目。从第0页开始计数。" + }, + { + "name": "Limit", + "desc": "分页返回,表示每页有多少条目。取值为1-100。" + } + ], + "desc": "本接口(DescribeDBXlogs)用于获取实例Xlog列表。" + }, + "SetAutoRenewFlag": { + "params": [ + { + "name": "DBInstanceIdSet", + "desc": "实例ID数组" + }, + { + "name": "AutoRenewFlag", + "desc": "续费标记。0-正常续费;1-自动续费;2-到期不续费" + } + ], + "desc": "本接口(SetAutoRenewFlag)用于设置自动续费。" + }, + "RestartDBInstance": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-6r233v55" + } + ], + "desc": "本接口(RestartDBInstance)用于重启实例。" + }, + "ModifyDBInstanceName": { + "params": [ + { + "name": "DBInstanceId", + "desc": "数据库实例ID,形如postgres-6fego161" + }, + { + "name": "InstanceName", + "desc": "新的数据库实例名字" + } + ], + "desc": "本接口(ModifyDBInstanceName)用于修改postgresql实例名字。" + }, + "CreateDBInstances": { + "params": [ { "name": "SpecCode", "desc": "售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。" @@ -59,12 +246,20 @@ }, { "name": "InstanceCount", - "desc": "一次性购买的实例数量。" + "desc": "一次性购买的实例数量。取值1-100" }, { "name": "Period", "desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。" }, + { + "name": "Zone", + "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。" + }, + { + "name": "ProjectId", + "desc": "项目ID。" + }, { "name": "InstanceChargeType", "desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。" @@ -84,71 +279,214 @@ { "name": "SubnetId", "desc": "私有网络子网ID。" - }, - { - "name": "Zone", - "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。" } ], "desc": "本接口 (CreateDBInstances) 用于创建一个或者多个PostgreSQL实例。" }, - "DescribeProductConfig": { + "RenewInstance": { "params": [ { - "name": "Zone", - "desc": "可用区名称" + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-6fego161" + }, + { + "name": "Period", + "desc": "续费多少个月" + }, + { + "name": "AutoVoucher", + "desc": "是否自动使用代金券,1是,0否,默认不使用" + }, + { + "name": "VoucherIds", + "desc": "代金券ID列表,目前仅支持指定一张代金券" } ], - "desc": "本接口 (DescribeProductConfig) 用于查询售卖规格配置。" + "desc": "本接口(RenewInstance)用于续费实例。" }, "DescribeDBInstances": { "params": [ { - "name": "PageSize", - "desc": "每页显示数量,默认返回10条。" + "name": "Filters", + "desc": "过滤条件,目前支持:db-instance-id、db-instance-name两种。" }, { - "name": "PageNumber", - "desc": "分页序号,从1开始。" + "name": "Limit", + "desc": "每页显示数量,默认返回10条。" }, { - "name": "Filters", - "desc": "过滤条件,目前支持:db-instance-id、db-instance-name两种。" + "name": "Offset", + "desc": "分页序号,从0开始。" } ], "desc": "本接口 (DescribeDBInstances) 用于查询一个或多个实例的详细信息。" }, - "InquiryPriceCreateDBInstances": { + "DescribeZones": { + "params": [], + "desc": "本接口 (DescribeZones) 用于查询支持的可用区信息。" + }, + "InitDBInstances": { "params": [ { - "name": "Zone", - "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。" + "name": "DBInstanceIdSet", + "desc": "实例ID集合。" }, { - "name": "SpecCode", - "desc": "规格ID。该参数可以通过调用DescribeProductConfig接口的返回值中的SpecCode字段来获取。" + "name": "AdminName", + "desc": "实例根账号用户名。" }, + { + "name": "AdminPassword", + "desc": "实例根账号用户名对应的密码。" + }, + { + "name": "Charset", + "desc": "实例字符集,目前只支持:UTF8、LATIN1。" + } + ], + "desc": "本接口 (InitDBInstances) 用于初始化云数据库PostgreSQL实例。" + }, + "InquiryPriceUpgradeDBInstance": { + "params": [ { "name": "Storage", - "desc": "存储容量大小,单位:GB。" + "desc": "实例的磁盘大小,单位GB" }, { - "name": "InstanceCount", - "desc": "实例数量。目前最大数量不超过100,如需一次性创建更多实例,请联系客服支持。" + "name": "Memory", + "desc": "实例的内存大小,单位GB" + }, + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-hez4fh0v" + }, + { + "name": "InstanceChargeType", + "desc": "实例计费类型,预付费或者后付费。PREPAID-预付费。目前只支持预付费。" + } + ], + "desc": "本接口(InquiryPriceUpgradeDBInstance)用于查询升级实例的价格。" + }, + "DescribeRegions": { + "params": [], + "desc": "本接口 (DescribeRegions) 用于查询售卖地域信息。" + }, + "InquiryPriceRenewDBInstance": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID" }, { "name": "Period", - "desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。" + "desc": "续费周期,按月计算,最大不超过48" + } + ], + "desc": "本接口(InquiryPriceRenewDBInstance)用于查询续费实例的价格。" + }, + "CloseDBExtranetAccess": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-6r233v55" + } + ], + "desc": "本接口(CloseDBExtranetAccess)用于关闭实例外网链接。" + }, + "DescribeAccounts": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-6fego161" }, { - "name": "Pid", - "desc": "计费ID。该参数可以通过调用DescribeProductConfig接口的返回值中的Pid字段来获取。" + "name": "Limit", + "desc": "分页返回,每页最大返回数目,默认20,取值范围为1-100" }, { - "name": "InstanceChargeType", - "desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。" + "name": "Offset", + "desc": "分页返回,返回第几页的用户数据。页码从0开始计数" + }, + { + "name": "OrderBy", + "desc": "返回数据按照创建时间或者用户名排序。取值只能为createTime或者name。createTime-按照创建时间排序;name-按照用户名排序" + }, + { + "name": "OrderByType", + "desc": "返回结果是升序还是降序。取值只能为desc或者asc。desc-降序;asc-升序" } ], - "desc": "本接口 (InquiryPriceCreateDBInstances) 用于查询购买一个或多个实例的价格信息。" + "desc": "本接口(DescribeAccounts)用于获取实例用户列表。" + }, + "UpgradeDBInstance": { + "params": [ + { + "name": "Memory", + "desc": "升级后的实例内存大小,单位GB" + }, + { + "name": "Storage", + "desc": "升级后的实例磁盘大小,单位GB" + }, + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-lnp6j617" + }, + { + "name": "AutoVoucher", + "desc": "是否自动使用代金券,1是,0否,默认不使用" + }, + { + "name": "VoucherIds", + "desc": "代金券ID列表,目前仅支持指定一张代金券" + } + ], + "desc": "本接口(UpgradeDBInstance)用于升级实例。" + }, + "DescribeProductConfig": { + "params": [ + { + "name": "Zone", + "desc": "可用区名称" + } + ], + "desc": "本接口 (DescribeProductConfig) 用于查询售卖规格配置。" + }, + "DescribeDBSlowlogs": { + "params": [ + { + "name": "DBInstanceId", + "desc": "实例ID,形如postgres-lnp6j617" + }, + { + "name": "StartTime", + "desc": "查询起始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前" + }, + { + "name": "EndTime", + "desc": "查询结束时间,形如2018-06-10 17:06:38" + }, + { + "name": "DatabaseName", + "desc": "数据库名字" + }, + { + "name": "OrderBy", + "desc": "按照何种指标排序,取值为sum_calls或者sum_cost_time。sum_calls-总调用次数;sum_cost_time-总的花费时间" + }, + { + "name": "OrderByType", + "desc": "排序规则。desc-降序;asc-升序" + }, + { + "name": "Limit", + "desc": "分页返回结果,每页最大返回数量,取值为1-100,默认20" + }, + { + "name": "Offset", + "desc": "分页返回结果,返回结果的第几页,从0开始计数" + } + ], + "desc": "本接口(DescribeDBSlowlogs)用于获取慢查询日志。" } } \ No newline at end of file