RdsClient.go 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299
  1. // Copyright 2018 JDCLOUD.COM
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. //
  15. // NOTE: This class is auto generated by the jdcloud code generator program.
  16. package client
  17. import (
  18. "github.com/jdcloud-api/jdcloud-sdk-go/core"
  19. rds "github.com/jdcloud-api/jdcloud-sdk-go/services/rds/apis"
  20. "encoding/json"
  21. "errors"
  22. )
  23. type RdsClient struct {
  24. core.JDCloudClient
  25. }
  26. func NewRdsClient(credential *core.Credential) *RdsClient {
  27. if credential == nil {
  28. return nil
  29. }
  30. config := core.NewConfig()
  31. config.SetEndpoint("rds.jdcloud-api.com")
  32. return &RdsClient{
  33. core.JDCloudClient{
  34. Credential: *credential,
  35. Config: *config,
  36. ServiceName: "rds",
  37. Revision: "0.10.7",
  38. Logger: core.NewDefaultLogger(core.LogInfo),
  39. }}
  40. }
  41. func (c *RdsClient) SetConfig(config *core.Config) {
  42. c.Config = *config
  43. }
  44. func (c *RdsClient) SetLogger(logger core.Logger) {
  45. c.Logger = logger
  46. }
  47. func (c *RdsClient) DisableLogger() {
  48. c.Logger = core.NewDummyLogger()
  49. }
  50. /* 获取某个审计文件的下载链接,同时支持内链和外链,链接的有效时间为24小时<br>- 仅支持SQL Server */
  51. func (c *RdsClient) DescribeAuditDownloadURL(request *rds.DescribeAuditDownloadURLRequest) (*rds.DescribeAuditDownloadURLResponse, error) {
  52. if request == nil {
  53. return nil, errors.New("Request object is nil. ")
  54. }
  55. resp, err := c.Send(request, c.ServiceName)
  56. if err != nil {
  57. return nil, err
  58. }
  59. jdResp := &rds.DescribeAuditDownloadURLResponse{}
  60. err = json.Unmarshal(resp, jdResp)
  61. if err != nil {
  62. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  63. return nil, err
  64. }
  65. return jdResp, err
  66. }
  67. /* 查看开启高安全模式后,当前实例的 SQL 拦截记录<br>- 仅支持MySQL */
  68. func (c *RdsClient) DescribeInterceptResult(request *rds.DescribeInterceptResultRequest) (*rds.DescribeInterceptResultResponse, error) {
  69. if request == nil {
  70. return nil, errors.New("Request object is nil. ")
  71. }
  72. resp, err := c.Send(request, c.ServiceName)
  73. if err != nil {
  74. return nil, err
  75. }
  76. jdResp := &rds.DescribeInterceptResultResponse{}
  77. err = json.Unmarshal(resp, jdResp)
  78. if err != nil {
  79. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  80. return nil, err
  81. }
  82. return jdResp, err
  83. }
  84. /* 获取整个备份或备份中单个文件的下载链接。<br>- 当输入参数中有文件名时,获取该文件的下载链接。<br>- 输入参数中无文件名时,获取整个备份的下载链接。<br>由于备份机制的差异,使用该接口下载备份时,SQL Server必须输入文件名,每个文件逐一下载,不支持下载整个备份。SQL Server备份中的文件名(不包括后缀)即为备份的数据库名。例如文件名为my_test_db.bak,表示该文件是my_test_db数据库的备份。<br>MySQL可下载整个备份集,但不支持单个文件的下载。 */
  85. func (c *RdsClient) DescribeBackupDownloadURL(request *rds.DescribeBackupDownloadURLRequest) (*rds.DescribeBackupDownloadURLResponse, error) {
  86. if request == nil {
  87. return nil, errors.New("Request object is nil. ")
  88. }
  89. resp, err := c.Send(request, c.ServiceName)
  90. if err != nil {
  91. return nil, err
  92. }
  93. jdResp := &rds.DescribeBackupDownloadURLResponse{}
  94. err = json.Unmarshal(resp, jdResp)
  95. if err != nil {
  96. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  97. return nil, err
  98. }
  99. return jdResp, err
  100. }
  101. /* 拷贝参数组 */
  102. func (c *RdsClient) CopyParameterGroup(request *rds.CopyParameterGroupRequest) (*rds.CopyParameterGroupResponse, error) {
  103. if request == nil {
  104. return nil, errors.New("Request object is nil. ")
  105. }
  106. resp, err := c.Send(request, c.ServiceName)
  107. if err != nil {
  108. return nil, err
  109. }
  110. jdResp := &rds.CopyParameterGroupResponse{}
  111. err = json.Unmarshal(resp, jdResp)
  112. if err != nil {
  113. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  114. return nil, err
  115. }
  116. return jdResp, err
  117. }
  118. /* 通过 PT-OSC 服务来处理 DDL 命令, 避免锁表。此接口暂是对部分用户开放 */
  119. func (c *RdsClient) AlterTableWithOnlineDDL(request *rds.AlterTableWithOnlineDDLRequest) (*rds.AlterTableWithOnlineDDLResponse, error) {
  120. if request == nil {
  121. return nil, errors.New("Request object is nil. ")
  122. }
  123. resp, err := c.Send(request, c.ServiceName)
  124. if err != nil {
  125. return nil, err
  126. }
  127. jdResp := &rds.AlterTableWithOnlineDDLResponse{}
  128. err = json.Unmarshal(resp, jdResp)
  129. if err != nil {
  130. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  131. return nil, err
  132. }
  133. return jdResp, err
  134. }
  135. /* 修改实例的可用区,例如将实例的可用区从单可用区调整为多可用区 */
  136. func (c *RdsClient) ModifyInstanceAz(request *rds.ModifyInstanceAzRequest) (*rds.ModifyInstanceAzResponse, error) {
  137. if request == nil {
  138. return nil, errors.New("Request object is nil. ")
  139. }
  140. resp, err := c.Send(request, c.ServiceName)
  141. if err != nil {
  142. return nil, err
  143. }
  144. jdResp := &rds.ModifyInstanceAzResponse{}
  145. err = json.Unmarshal(resp, jdResp)
  146. if err != nil {
  147. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  148. return nil, err
  149. }
  150. return jdResp, err
  151. }
  152. /* 根据源实例备份创建一个新实例,并通过追加日志的方式,将新实例的数据恢复到跟源实例指定时间点的数据状态一样。<br>例如根据实例A在“2018-06-18 23:00:00”时间点创建一个实例B,就是新建一个实例B,该实例B的数据跟实例A在“2018-06-18 23:00:00”这个时间点的数据完全一致。<br>对于SQL Server,主备切换后30分钟内,不支持按时间点恢复/创建,例如在10:05分用户进行了主备切换,那么10:05 ~ 10:35这个时间段不能进行按时间点恢复/创建。 */
  153. func (c *RdsClient) CreateInstanceByTime(request *rds.CreateInstanceByTimeRequest) (*rds.CreateInstanceByTimeResponse, error) {
  154. if request == nil {
  155. return nil, errors.New("Request object is nil. ")
  156. }
  157. resp, err := c.Send(request, c.ServiceName)
  158. if err != nil {
  159. return nil, err
  160. }
  161. jdResp := &rds.CreateInstanceByTimeResponse{}
  162. err = json.Unmarshal(resp, jdResp)
  163. if err != nil {
  164. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  165. return nil, err
  166. }
  167. return jdResp, err
  168. }
  169. /* 获取当前实例下的所有审计结果文件的列表<br>- 仅支持SQL Server */
  170. func (c *RdsClient) DescribeAuditFiles(request *rds.DescribeAuditFilesRequest) (*rds.DescribeAuditFilesResponse, error) {
  171. if request == nil {
  172. return nil, errors.New("Request object is nil. ")
  173. }
  174. resp, err := c.Send(request, c.ServiceName)
  175. if err != nil {
  176. return nil, err
  177. }
  178. jdResp := &rds.DescribeAuditFilesResponse{}
  179. err = json.Unmarshal(resp, jdResp)
  180. if err != nil {
  181. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  182. return nil, err
  183. }
  184. return jdResp, err
  185. }
  186. /* 创建数据库账号,用户可以使用客户端,应用程序等通过该账号和密码登录RDS数据库实例。<br>为便于管理和恢复,RDS对账号进行了限制,数据库账号只能通过控制台或者OpenAPI进行创建、删除账号以及对账号授权等,用户不能通过SQL语句对账号进行相关操作。 */
  187. func (c *RdsClient) CreateAccount(request *rds.CreateAccountRequest) (*rds.CreateAccountResponse, error) {
  188. if request == nil {
  189. return nil, errors.New("Request object is nil. ")
  190. }
  191. resp, err := c.Send(request, c.ServiceName)
  192. if err != nil {
  193. return nil, err
  194. }
  195. jdResp := &rds.CreateAccountResponse{}
  196. err = json.Unmarshal(resp, jdResp)
  197. if err != nil {
  198. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  199. return nil, err
  200. }
  201. return jdResp, err
  202. }
  203. /* 授予账号的数据库访问权限,即该账号对数据库拥有什么权限。一个账号可以对多个数据库具有访问权限。<br>为便于管理,RDS对权限进行了归类,目前提供以下两种权限<br>- ro:只读权限,用户只能读取数据库中的数据,不能进行创建、插入、删除、更改等操作。<br>- rw:读写权限,用户可以对数据库进行增删改查等操作 */
  204. func (c *RdsClient) GrantPrivilege(request *rds.GrantPrivilegeRequest) (*rds.GrantPrivilegeResponse, error) {
  205. if request == nil {
  206. return nil, errors.New("Request object is nil. ")
  207. }
  208. resp, err := c.Send(request, c.ServiceName)
  209. if err != nil {
  210. return nil, err
  211. }
  212. jdResp := &rds.GrantPrivilegeResponse{}
  213. err = json.Unmarshal(resp, jdResp)
  214. if err != nil {
  215. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  216. return nil, err
  217. }
  218. return jdResp, err
  219. }
  220. /* 关闭读写分离代理服务的外网访问功能。关闭后,用户无法通过 Internet 连接读写分离代理服务,但可以在京东云内网通过内网域名连接<br>- 仅支持MySQL */
  221. func (c *RdsClient) DisableReadWriteProxyInternetAccess(request *rds.DisableReadWriteProxyInternetAccessRequest) (*rds.DisableReadWriteProxyInternetAccessResponse, error) {
  222. if request == nil {
  223. return nil, errors.New("Request object is nil. ")
  224. }
  225. resp, err := c.Send(request, c.ServiceName)
  226. if err != nil {
  227. return nil, err
  228. }
  229. jdResp := &rds.DisableReadWriteProxyInternetAccessResponse{}
  230. err = json.Unmarshal(resp, jdResp)
  231. if err != nil {
  232. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  233. return nil, err
  234. }
  235. return jdResp, err
  236. }
  237. /* 查看指定RDS读写分离代理详情<br>- 仅支持MySQL */
  238. func (c *RdsClient) DescribeReadWriteProxyAttribute(request *rds.DescribeReadWriteProxyAttributeRequest) (*rds.DescribeReadWriteProxyAttributeResponse, error) {
  239. if request == nil {
  240. return nil, errors.New("Request object is nil. ")
  241. }
  242. resp, err := c.Send(request, c.ServiceName)
  243. if err != nil {
  244. return nil, err
  245. }
  246. jdResp := &rds.DescribeReadWriteProxyAttributeResponse{}
  247. err = json.Unmarshal(resp, jdResp)
  248. if err != nil {
  249. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  250. return nil, err
  251. }
  252. return jdResp, err
  253. }
  254. /* 查看指定地域下各种RDS数据库支持的可用区,不同类型的RDS支持的可用区不一样 */
  255. func (c *RdsClient) DescribeAzs(request *rds.DescribeAzsRequest) (*rds.DescribeAzsResponse, error) {
  256. if request == nil {
  257. return nil, errors.New("Request object is nil. ")
  258. }
  259. resp, err := c.Send(request, c.ServiceName)
  260. if err != nil {
  261. return nil, err
  262. }
  263. jdResp := &rds.DescribeAzsResponse{}
  264. err = json.Unmarshal(resp, jdResp)
  265. if err != nil {
  266. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  267. return nil, err
  268. }
  269. return jdResp, err
  270. }
  271. /* 获取单库上云工具上传文件的需要的Key。单库上云工具需要正确的key值方能连接到京东云<br>- 仅支持SQL Server */
  272. func (c *RdsClient) GetUploadKey(request *rds.GetUploadKeyRequest) (*rds.GetUploadKeyResponse, error) {
  273. if request == nil {
  274. return nil, errors.New("Request object is nil. ")
  275. }
  276. resp, err := c.Send(request, c.ServiceName)
  277. if err != nil {
  278. return nil, err
  279. }
  280. jdResp := &rds.GetUploadKeyResponse{}
  281. err = json.Unmarshal(resp, jdResp)
  282. if err != nil {
  283. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  284. return nil, err
  285. }
  286. return jdResp, err
  287. }
  288. /* 从用户通过单库上云工具上传到云上的备份文件中恢复单个数据库<br>- 仅支持SQL Server */
  289. func (c *RdsClient) RestoreDatabaseFromFile(request *rds.RestoreDatabaseFromFileRequest) (*rds.RestoreDatabaseFromFileResponse, error) {
  290. if request == nil {
  291. return nil, errors.New("Request object is nil. ")
  292. }
  293. resp, err := c.Send(request, c.ServiceName)
  294. if err != nil {
  295. return nil, err
  296. }
  297. jdResp := &rds.RestoreDatabaseFromFileResponse{}
  298. err = json.Unmarshal(resp, jdResp)
  299. if err != nil {
  300. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  301. return nil, err
  302. }
  303. return jdResp, err
  304. }
  305. /* 查询RDS实例(MySQL、SQL Server等)的详细信息以及MySQL/PostgreSQL只读实例详细信息 */
  306. func (c *RdsClient) DescribeInstanceAttributes(request *rds.DescribeInstanceAttributesRequest) (*rds.DescribeInstanceAttributesResponse, error) {
  307. if request == nil {
  308. return nil, errors.New("Request object is nil. ")
  309. }
  310. resp, err := c.Send(request, c.ServiceName)
  311. if err != nil {
  312. return nil, err
  313. }
  314. jdResp := &rds.DescribeInstanceAttributesResponse{}
  315. err = json.Unmarshal(resp, jdResp)
  316. if err != nil {
  317. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  318. return nil, err
  319. }
  320. return jdResp, err
  321. }
  322. /* 实例扩容,支持升级实例的CPU,内存及磁盘。 */
  323. func (c *RdsClient) ModifyInstanceSpec(request *rds.ModifyInstanceSpecRequest) (*rds.ModifyInstanceSpecResponse, error) {
  324. if request == nil {
  325. return nil, errors.New("Request object is nil. ")
  326. }
  327. resp, err := c.Send(request, c.ServiceName)
  328. if err != nil {
  329. return nil, err
  330. }
  331. jdResp := &rds.ModifyInstanceSpecResponse{}
  332. err = json.Unmarshal(resp, jdResp)
  333. if err != nil {
  334. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  335. return nil, err
  336. }
  337. return jdResp, err
  338. }
  339. /* 删除一个跨地域备份同步服务。 */
  340. func (c *RdsClient) DeleteBackupSynchronicity(request *rds.DeleteBackupSynchronicityRequest) (*rds.DeleteBackupSynchronicityResponse, error) {
  341. if request == nil {
  342. return nil, errors.New("Request object is nil. ")
  343. }
  344. resp, err := c.Send(request, c.ServiceName)
  345. if err != nil {
  346. return nil, err
  347. }
  348. jdResp := &rds.DeleteBackupSynchronicityResponse{}
  349. err = json.Unmarshal(resp, jdResp)
  350. if err != nil {
  351. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  352. return nil, err
  353. }
  354. return jdResp, err
  355. }
  356. /* 删除用户通过单库上云工具上传的数据库备份文件<br>- 仅支持SQL Server */
  357. func (c *RdsClient) DeleteImportFile(request *rds.DeleteImportFileRequest) (*rds.DeleteImportFileResponse, error) {
  358. if request == nil {
  359. return nil, errors.New("Request object is nil. ")
  360. }
  361. resp, err := c.Send(request, c.ServiceName)
  362. if err != nil {
  363. return nil, err
  364. }
  365. jdResp := &rds.DeleteImportFileResponse{}
  366. err = json.Unmarshal(resp, jdResp)
  367. if err != nil {
  368. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  369. return nil, err
  370. }
  371. return jdResp, err
  372. }
  373. /* 修改当前的审计选项。当前已有审计选项可以通过describeAudit获得,支持的全部选项可以通过getAuditOptions获得。<br>- 仅支持SQL Server */
  374. func (c *RdsClient) ModifyAudit(request *rds.ModifyAuditRequest) (*rds.ModifyAuditResponse, error) {
  375. if request == nil {
  376. return nil, errors.New("Request object is nil. ")
  377. }
  378. resp, err := c.Send(request, c.ServiceName)
  379. if err != nil {
  380. return nil, err
  381. }
  382. jdResp := &rds.ModifyAuditResponse{}
  383. err = json.Unmarshal(resp, jdResp)
  384. if err != nil {
  385. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  386. return nil, err
  387. }
  388. return jdResp, err
  389. }
  390. /* 获取SQL Server实例按时间点恢复/创建时,可恢复到的最后的一个时间点<br>- 仅支持SQL Server */
  391. func (c *RdsClient) DescribeLatestRestoreTime(request *rds.DescribeLatestRestoreTimeRequest) (*rds.DescribeLatestRestoreTimeResponse, error) {
  392. if request == nil {
  393. return nil, errors.New("Request object is nil. ")
  394. }
  395. resp, err := c.Send(request, c.ServiceName)
  396. if err != nil {
  397. return nil, err
  398. }
  399. jdResp := &rds.DescribeLatestRestoreTimeResponse{}
  400. err = json.Unmarshal(resp, jdResp)
  401. if err != nil {
  402. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  403. return nil, err
  404. }
  405. return jdResp, err
  406. }
  407. /* 获取SQL Server 错误日志及下载信息<br>- 仅支持SQL Server */
  408. func (c *RdsClient) DescribeErrorLogs(request *rds.DescribeErrorLogsRequest) (*rds.DescribeErrorLogsResponse, error) {
  409. if request == nil {
  410. return nil, errors.New("Request object is nil. ")
  411. }
  412. resp, err := c.Send(request, c.ServiceName)
  413. if err != nil {
  414. return nil, err
  415. }
  416. jdResp := &rds.DescribeErrorLogsResponse{}
  417. err = json.Unmarshal(resp, jdResp)
  418. if err != nil {
  419. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  420. return nil, err
  421. }
  422. return jdResp, err
  423. }
  424. /* 开启数据库的TDE功能 */
  425. func (c *RdsClient) EnableTde(request *rds.EnableTdeRequest) (*rds.EnableTdeResponse, error) {
  426. if request == nil {
  427. return nil, errors.New("Request object is nil. ")
  428. }
  429. resp, err := c.Send(request, c.ServiceName)
  430. if err != nil {
  431. return nil, err
  432. }
  433. jdResp := &rds.EnableTdeResponse{}
  434. err = json.Unmarshal(resp, jdResp)
  435. if err != nil {
  436. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  437. return nil, err
  438. }
  439. return jdResp, err
  440. }
  441. /* 根据源实例全量备份创建一个新实例,新实例的数据跟源实例在创建备份时的数据状态一样。<br>例如根据源实例A的一个全量备份“mybak”新建一个实例B,该备份是在“‘2018-8-18 03:23:54”创建的。那么新建实例B的数据状态跟实例A‘2018-8-18 03:23:54’的状态一致 */
  442. func (c *RdsClient) CreateInstanceFromBackup(request *rds.CreateInstanceFromBackupRequest) (*rds.CreateInstanceFromBackupResponse, error) {
  443. if request == nil {
  444. return nil, errors.New("Request object is nil. ")
  445. }
  446. resp, err := c.Send(request, c.ServiceName)
  447. if err != nil {
  448. return nil, err
  449. }
  450. jdResp := &rds.CreateInstanceFromBackupResponse{}
  451. err = json.Unmarshal(resp, jdResp)
  452. if err != nil {
  453. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  454. return nil, err
  455. }
  456. return jdResp, err
  457. }
  458. /* 查看SQL Server实例的配置参数<br>- 仅支持SQL Server */
  459. func (c *RdsClient) DescribeParameters(request *rds.DescribeParametersRequest) (*rds.DescribeParametersResponse, error) {
  460. if request == nil {
  461. return nil, errors.New("Request object is nil. ")
  462. }
  463. resp, err := c.Send(request, c.ServiceName)
  464. if err != nil {
  465. return nil, err
  466. }
  467. jdResp := &rds.DescribeParametersResponse{}
  468. err = json.Unmarshal(resp, jdResp)
  469. if err != nil {
  470. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  471. return nil, err
  472. }
  473. return jdResp, err
  474. }
  475. /* 修改SQL Server实例的配置参数,目前支持以下参数:max_worker_threads,max_degree_of_parallelism,max_server_memory_(MB)。 部分参数修改后,需要重启才能生效,具体可以参考微软的相关文档。<br>- 仅支持SQL Server */
  476. func (c *RdsClient) ModifyParameters(request *rds.ModifyParametersRequest) (*rds.ModifyParametersResponse, error) {
  477. if request == nil {
  478. return nil, errors.New("Request object is nil. ")
  479. }
  480. resp, err := c.Send(request, c.ServiceName)
  481. if err != nil {
  482. return nil, err
  483. }
  484. jdResp := &rds.ModifyParametersResponse{}
  485. err = json.Unmarshal(resp, jdResp)
  486. if err != nil {
  487. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  488. return nil, err
  489. }
  490. return jdResp, err
  491. }
  492. /* 设置日志文件的下载链接过期时间,重新生成 PostgreSQL 的日志文件下载地址 */
  493. func (c *RdsClient) UpdateLogDownloadURLInternal(request *rds.UpdateLogDownloadURLInternalRequest) (*rds.UpdateLogDownloadURLInternalResponse, error) {
  494. if request == nil {
  495. return nil, errors.New("Request object is nil. ")
  496. }
  497. resp, err := c.Send(request, c.ServiceName)
  498. if err != nil {
  499. return nil, err
  500. }
  501. jdResp := &rds.UpdateLogDownloadURLInternalResponse{}
  502. err = json.Unmarshal(resp, jdResp)
  503. if err != nil {
  504. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  505. return nil, err
  506. }
  507. return jdResp, err
  508. }
  509. /* 根据日志文件的下载链接过期时间,生成日志文件下载地址 仅支持 PostgreSQL, MySQL, Percona, MariaDB */
  510. func (c *RdsClient) DescribeLogDownloadURL(request *rds.DescribeLogDownloadURLRequest) (*rds.DescribeLogDownloadURLResponse, error) {
  511. if request == nil {
  512. return nil, errors.New("Request object is nil. ")
  513. }
  514. resp, err := c.Send(request, c.ServiceName)
  515. if err != nil {
  516. return nil, err
  517. }
  518. jdResp := &rds.DescribeLogDownloadURLResponse{}
  519. err = json.Unmarshal(resp, jdResp)
  520. if err != nil {
  521. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  522. return nil, err
  523. }
  524. return jdResp, err
  525. }
  526. /* 查询PostgreSQL实例的错误日志的概要信息。<br>- 仅支持PostgreSQL */
  527. func (c *RdsClient) DescribeErrorLog(request *rds.DescribeErrorLogRequest) (*rds.DescribeErrorLogResponse, error) {
  528. if request == nil {
  529. return nil, errors.New("Request object is nil. ")
  530. }
  531. resp, err := c.Send(request, c.ServiceName)
  532. if err != nil {
  533. return nil, err
  534. }
  535. jdResp := &rds.DescribeErrorLogResponse{}
  536. err = json.Unmarshal(resp, jdResp)
  537. if err != nil {
  538. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  539. return nil, err
  540. }
  541. return jdResp, err
  542. }
  543. /* 交换两个实例的域名,包括内网域名和外网域名。如果一个实例有外网域名,一个没有,则不允许交换。<br>- 仅支持SQL Server */
  544. func (c *RdsClient) ExchangeInstanceDns(request *rds.ExchangeInstanceDnsRequest) (*rds.ExchangeInstanceDnsResponse, error) {
  545. if request == nil {
  546. return nil, errors.New("Request object is nil. ")
  547. }
  548. resp, err := c.Send(request, c.ServiceName)
  549. if err != nil {
  550. return nil, err
  551. }
  552. jdResp := &rds.ExchangeInstanceDnsResponse{}
  553. err = json.Unmarshal(resp, jdResp)
  554. if err != nil {
  555. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  556. return nil, err
  557. }
  558. return jdResp, err
  559. }
  560. /* 关闭数据库的高安全模式<br>- 仅支持MySQL */
  561. func (c *RdsClient) DisableIntercept(request *rds.DisableInterceptRequest) (*rds.DisableInterceptResponse, error) {
  562. if request == nil {
  563. return nil, errors.New("Request object is nil. ")
  564. }
  565. resp, err := c.Send(request, c.ServiceName)
  566. if err != nil {
  567. return nil, err
  568. }
  569. jdResp := &rds.DisableInterceptResponse{}
  570. err = json.Unmarshal(resp, jdResp)
  571. if err != nil {
  572. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  573. return nil, err
  574. }
  575. return jdResp, err
  576. }
  577. /* 仅支持MySQL实例关闭数据库审计<br>- 仅支持 MySQL 5.6, MySQL 5.7, Percona, MariaDB, PostgreSQL */
  578. func (c *RdsClient) DisableAudit(request *rds.DisableAuditRequest) (*rds.DisableAuditResponse, error) {
  579. if request == nil {
  580. return nil, errors.New("Request object is nil. ")
  581. }
  582. resp, err := c.Send(request, c.ServiceName)
  583. if err != nil {
  584. return nil, err
  585. }
  586. jdResp := &rds.DisableAuditResponse{}
  587. err = json.Unmarshal(resp, jdResp)
  588. if err != nil {
  589. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  590. return nil, err
  591. }
  592. return jdResp, err
  593. }
  594. /* 创建一个数据库。 为了实例的管理和数据恢复,RDS对用户权限进行了限制,用户仅能通过控制台或本接口创建数据库 */
  595. func (c *RdsClient) CreateDatabase(request *rds.CreateDatabaseRequest) (*rds.CreateDatabaseResponse, error) {
  596. if request == nil {
  597. return nil, errors.New("Request object is nil. ")
  598. }
  599. resp, err := c.Send(request, c.ServiceName)
  600. if err != nil {
  601. return nil, err
  602. }
  603. jdResp := &rds.CreateDatabaseResponse{}
  604. err = json.Unmarshal(resp, jdResp)
  605. if err != nil {
  606. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  607. return nil, err
  608. }
  609. return jdResp, err
  610. }
  611. /* 设置或取消上传文件是否共享给同一账号下的其他实例。缺省情况下,文件仅在上传的实例上可见并可导入,其他实例不可见不可导入。如果需要该文件在其他实例上也可导入,可将此文件设置为共享<br>- 仅支持SQL Server */
  612. func (c *RdsClient) SetImportFileShared(request *rds.SetImportFileSharedRequest) (*rds.SetImportFileSharedResponse, error) {
  613. if request == nil {
  614. return nil, errors.New("Request object is nil. ")
  615. }
  616. resp, err := c.Send(request, c.ServiceName)
  617. if err != nil {
  618. return nil, err
  619. }
  620. jdResp := &rds.SetImportFileSharedResponse{}
  621. err = json.Unmarshal(resp, jdResp)
  622. if err != nil {
  623. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  624. return nil, err
  625. }
  626. return jdResp, err
  627. }
  628. /* 获取当前实例的所有数据库详细信息的列表 */
  629. func (c *RdsClient) DescribeDatabases(request *rds.DescribeDatabasesRequest) (*rds.DescribeDatabasesResponse, error) {
  630. if request == nil {
  631. return nil, errors.New("Request object is nil. ")
  632. }
  633. resp, err := c.Send(request, c.ServiceName)
  634. if err != nil {
  635. return nil, err
  636. }
  637. jdResp := &rds.DescribeDatabasesResponse{}
  638. err = json.Unmarshal(resp, jdResp)
  639. if err != nil {
  640. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  641. return nil, err
  642. }
  643. return jdResp, err
  644. }
  645. /* 开启数据库的加密连接, 同时会重启数据库实例 */
  646. func (c *RdsClient) EnableSSL(request *rds.EnableSSLRequest) (*rds.EnableSSLResponse, error) {
  647. if request == nil {
  648. return nil, errors.New("Request object is nil. ")
  649. }
  650. resp, err := c.Send(request, c.ServiceName)
  651. if err != nil {
  652. return nil, err
  653. }
  654. jdResp := &rds.EnableSSLResponse{}
  655. err = json.Unmarshal(resp, jdResp)
  656. if err != nil {
  657. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  658. return nil, err
  659. }
  660. return jdResp, err
  661. }
  662. /* 根据用户定义的查询条件,获取索引性能的统计信息,并提供缺失索引及索引创建建议。用户可以根据这些信息查找与索引相关的性能瓶颈,并进行优化。<br>- 仅支持SQL Server */
  663. func (c *RdsClient) DescribeIndexPerformance(request *rds.DescribeIndexPerformanceRequest) (*rds.DescribeIndexPerformanceResponse, error) {
  664. if request == nil {
  665. return nil, errors.New("Request object is nil. ")
  666. }
  667. resp, err := c.Send(request, c.ServiceName)
  668. if err != nil {
  669. return nil, err
  670. }
  671. jdResp := &rds.DescribeIndexPerformanceResponse{}
  672. err = json.Unmarshal(resp, jdResp)
  673. if err != nil {
  674. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  675. return nil, err
  676. }
  677. return jdResp, err
  678. }
  679. /* 查看RDS实例的账号的权限信息 - 仅支持 MySQL,Percona,MariaDB */
  680. func (c *RdsClient) DescribeAccountPrivilege(request *rds.DescribeAccountPrivilegeRequest) (*rds.DescribeAccountPrivilegeResponse, error) {
  681. if request == nil {
  682. return nil, errors.New("Request object is nil. ")
  683. }
  684. resp, err := c.Send(request, c.ServiceName)
  685. if err != nil {
  686. return nil, err
  687. }
  688. jdResp := &rds.DescribeAccountPrivilegeResponse{}
  689. err = json.Unmarshal(resp, jdResp)
  690. if err != nil {
  691. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  692. return nil, err
  693. }
  694. return jdResp, err
  695. }
  696. /* 开启SQL Server的数据库审计功能,目前支持实例级的数据库审计。用户可以根据需要开启、关闭审计、自定义审计策略,并下载审计文件。审计文件为原生的SQL Server审计文件,缺省保存6个月。<br>- 仅支持SQL Server */
  697. func (c *RdsClient) CreateAudit(request *rds.CreateAuditRequest) (*rds.CreateAuditResponse, error) {
  698. if request == nil {
  699. return nil, errors.New("Request object is nil. ")
  700. }
  701. resp, err := c.Send(request, c.ServiceName)
  702. if err != nil {
  703. return nil, err
  704. }
  705. jdResp := &rds.CreateAuditResponse{}
  706. err = json.Unmarshal(resp, jdResp)
  707. if err != nil {
  708. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  709. return nil, err
  710. }
  711. return jdResp, err
  712. }
  713. /* 修改实例名称,可支持中文,实例名的具体规则可参见帮助中心文档:[名称及密码限制](../../../documentation/Database-and-Cache-Service/RDS/Introduction/Restrictions/SQLServer-Restrictions.md) */
  714. func (c *RdsClient) ModifyInstanceName(request *rds.ModifyInstanceNameRequest) (*rds.ModifyInstanceNameResponse, error) {
  715. if request == nil {
  716. return nil, errors.New("Request object is nil. ")
  717. }
  718. resp, err := c.Send(request, c.ServiceName)
  719. if err != nil {
  720. return nil, err
  721. }
  722. jdResp := &rds.ModifyInstanceNameResponse{}
  723. err = json.Unmarshal(resp, jdResp)
  724. if err != nil {
  725. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  726. return nil, err
  727. }
  728. return jdResp, err
  729. }
  730. /* 删除RDS 实例的读写分离代理<br>- 仅支持MySQL */
  731. func (c *RdsClient) DeleteReadWriteProxy(request *rds.DeleteReadWriteProxyRequest) (*rds.DeleteReadWriteProxyResponse, error) {
  732. if request == nil {
  733. return nil, errors.New("Request object is nil. ")
  734. }
  735. resp, err := c.Send(request, c.ServiceName)
  736. if err != nil {
  737. return nil, err
  738. }
  739. jdResp := &rds.DeleteReadWriteProxyResponse{}
  740. err = json.Unmarshal(resp, jdResp)
  741. if err != nil {
  742. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  743. return nil, err
  744. }
  745. return jdResp, err
  746. }
  747. /* 仅支持MySQL实例开启数据库审计<br>- 仅支持 MySQL 5.6, MySQL 5.7, Percona, MariaDB, PostgreSQL */
  748. func (c *RdsClient) EnableAudit(request *rds.EnableAuditRequest) (*rds.EnableAuditResponse, error) {
  749. if request == nil {
  750. return nil, errors.New("Request object is nil. ")
  751. }
  752. resp, err := c.Send(request, c.ServiceName)
  753. if err != nil {
  754. return nil, err
  755. }
  756. jdResp := &rds.EnableAuditResponse{}
  757. err = json.Unmarshal(resp, jdResp)
  758. if err != nil {
  759. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  760. return nil, err
  761. }
  762. return jdResp, err
  763. }
  764. /* 开启读写分离代理服务的外网访问功能。开启后,用户可以通过 internet 连接读写分离代理服务<br>- 仅支持MySQL */
  765. func (c *RdsClient) EnableReadWriteProxyInternetAccess(request *rds.EnableReadWriteProxyInternetAccessRequest) (*rds.EnableReadWriteProxyInternetAccessResponse, error) {
  766. if request == nil {
  767. return nil, errors.New("Request object is nil. ")
  768. }
  769. resp, err := c.Send(request, c.ServiceName)
  770. if err != nil {
  771. return nil, err
  772. }
  773. jdResp := &rds.EnableReadWriteProxyInternetAccessResponse{}
  774. err = json.Unmarshal(resp, jdResp)
  775. if err != nil {
  776. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  777. return nil, err
  778. }
  779. return jdResp, err
  780. }
  781. /* 创建一个RDS实例全量备份,可以对整个实例或者部分数据库(仅SQL Server支持)进行全量备份。同一时间点,只能有一个正在运行的备份任务 */
  782. func (c *RdsClient) CreateBackup(request *rds.CreateBackupRequest) (*rds.CreateBackupResponse, error) {
  783. if request == nil {
  784. return nil, errors.New("Request object is nil. ")
  785. }
  786. resp, err := c.Send(request, c.ServiceName)
  787. if err != nil {
  788. return nil, err
  789. }
  790. jdResp := &rds.CreateBackupResponse{}
  791. err = json.Unmarshal(resp, jdResp)
  792. if err != nil {
  793. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  794. return nil, err
  795. }
  796. return jdResp, err
  797. }
  798. /* 修改RDS实例备份策略,目前仅支持用户修改“自动备份开始时间窗口”这个参数,其他参数暂不开放修改 */
  799. func (c *RdsClient) ModifyBackupPolicy(request *rds.ModifyBackupPolicyRequest) (*rds.ModifyBackupPolicyResponse, error) {
  800. if request == nil {
  801. return nil, errors.New("Request object is nil. ")
  802. }
  803. resp, err := c.Send(request, c.ServiceName)
  804. if err != nil {
  805. return nil, err
  806. }
  807. jdResp := &rds.ModifyBackupPolicyResponse{}
  808. err = json.Unmarshal(resp, jdResp)
  809. if err != nil {
  810. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  811. return nil, err
  812. }
  813. return jdResp, err
  814. }
  815. /* 使用实例的全量备份覆盖恢复当前实例 */
  816. func (c *RdsClient) RestoreInstance(request *rds.RestoreInstanceRequest) (*rds.RestoreInstanceResponse, error) {
  817. if request == nil {
  818. return nil, errors.New("Request object is nil. ")
  819. }
  820. resp, err := c.Send(request, c.ServiceName)
  821. if err != nil {
  822. return nil, err
  823. }
  824. jdResp := &rds.RestoreInstanceResponse{}
  825. err = json.Unmarshal(resp, jdResp)
  826. if err != nil {
  827. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  828. return nil, err
  829. }
  830. return jdResp, err
  831. }
  832. /* 获取用户通过单库上云工具上传到该实例上的文件列表<br>- 仅支持SQL Server */
  833. func (c *RdsClient) DescribeImportFiles(request *rds.DescribeImportFilesRequest) (*rds.DescribeImportFilesResponse, error) {
  834. if request == nil {
  835. return nil, errors.New("Request object is nil. ")
  836. }
  837. resp, err := c.Send(request, c.ServiceName)
  838. if err != nil {
  839. return nil, err
  840. }
  841. jdResp := &rds.DescribeImportFilesResponse{}
  842. err = json.Unmarshal(resp, jdResp)
  843. if err != nil {
  844. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  845. return nil, err
  846. }
  847. return jdResp, err
  848. }
  849. /* 获取当前账号下所有的参数组列表<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  850. func (c *RdsClient) DescribeParameterGroups(request *rds.DescribeParameterGroupsRequest) (*rds.DescribeParameterGroupsResponse, error) {
  851. if request == nil {
  852. return nil, errors.New("Request object is nil. ")
  853. }
  854. resp, err := c.Send(request, c.ServiceName)
  855. if err != nil {
  856. return nil, err
  857. }
  858. jdResp := &rds.DescribeParameterGroupsResponse{}
  859. err = json.Unmarshal(resp, jdResp)
  860. if err != nil {
  861. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  862. return nil, err
  863. }
  864. return jdResp, err
  865. }
  866. /* 授予账号的数据库细粒度的访问权限 - 仅支持 MySQL,Percona,MariaDB */
  867. func (c *RdsClient) GrantAccountPrivilege(request *rds.GrantAccountPrivilegeRequest) (*rds.GrantAccountPrivilegeResponse, error) {
  868. if request == nil {
  869. return nil, errors.New("Request object is nil. ")
  870. }
  871. resp, err := c.Send(request, c.ServiceName)
  872. if err != nil {
  873. return nil, err
  874. }
  875. jdResp := &rds.GrantAccountPrivilegeResponse{}
  876. err = json.Unmarshal(resp, jdResp)
  877. if err != nil {
  878. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  879. return nil, err
  880. }
  881. return jdResp, err
  882. }
  883. /* 从备份中恢复单个数据库,支持从其他实例(但必须是同一个账号下的实例)备份中恢复。例如可以从生产环境的数据库实例的备份恢复到测试环境的数据库中。<br>- 仅支持SQL Server */
  884. func (c *RdsClient) RestoreDatabaseFromBackup(request *rds.RestoreDatabaseFromBackupRequest) (*rds.RestoreDatabaseFromBackupResponse, error) {
  885. if request == nil {
  886. return nil, errors.New("Request object is nil. ")
  887. }
  888. resp, err := c.Send(request, c.ServiceName)
  889. if err != nil {
  890. return nil, err
  891. }
  892. jdResp := &rds.RestoreDatabaseFromBackupResponse{}
  893. err = json.Unmarshal(resp, jdResp)
  894. if err != nil {
  895. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  896. return nil, err
  897. }
  898. return jdResp, err
  899. }
  900. /* 创建数据库读写分离代理服务<br>- 仅支持MySQL */
  901. func (c *RdsClient) CreateReadWriteProxy(request *rds.CreateReadWriteProxyRequest) (*rds.CreateReadWriteProxyResponse, error) {
  902. if request == nil {
  903. return nil, errors.New("Request object is nil. ")
  904. }
  905. resp, err := c.Send(request, c.ServiceName)
  906. if err != nil {
  907. return nil, err
  908. }
  909. jdResp := &rds.CreateReadWriteProxyResponse{}
  910. err = json.Unmarshal(resp, jdResp)
  911. if err != nil {
  912. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  913. return nil, err
  914. }
  915. return jdResp, err
  916. }
  917. /* 查看RDS实例当前白名单。白名单是允许访问当前实例的IP/IP段列表,缺省情况下,白名单对本VPC开放。如果用户开启了外网访问的功能,还需要对外网的IP配置白名单。 */
  918. func (c *RdsClient) DescribeWhiteList(request *rds.DescribeWhiteListRequest) (*rds.DescribeWhiteListResponse, error) {
  919. if request == nil {
  920. return nil, errors.New("Request object is nil. ")
  921. }
  922. resp, err := c.Send(request, c.ServiceName)
  923. if err != nil {
  924. return nil, err
  925. }
  926. jdResp := &rds.DescribeWhiteListResponse{}
  927. err = json.Unmarshal(resp, jdResp)
  928. if err != nil {
  929. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  930. return nil, err
  931. }
  932. return jdResp, err
  933. }
  934. /* 对RDS实例进行主备切换。<br>注意:如果实例正在进行备份,那么主备切换将会终止备份操作。可以查看备份策略中的备份开始时间确认是否有备份正在运行。如果确实需要在实例备份时进行主备切换,建议切换完成 后,手工进行一次实例的全备<br>对于SQL Server,主备切换后30分钟内,不支持按时间点恢复/创建,例如在10:05分用户进行了主备切换,那么10:05 ~ 10:35这个时间段不能进行按时间点恢复/创建。<br>- 仅支持SQL Server */
  935. func (c *RdsClient) FailoverInstance(request *rds.FailoverInstanceRequest) (*rds.FailoverInstanceResponse, error) {
  936. if request == nil {
  937. return nil, errors.New("Request object is nil. ")
  938. }
  939. resp, err := c.Send(request, c.ServiceName)
  940. if err != nil {
  941. return nil, err
  942. }
  943. jdResp := &rds.FailoverInstanceResponse{}
  944. err = json.Unmarshal(resp, jdResp)
  945. if err != nil {
  946. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  947. return nil, err
  948. }
  949. return jdResp, err
  950. }
  951. /* 开启增强备份模式,开启后,备份保留天数可大于7天。 免费备份额度外的备份将按照备份占用的空间收费。开启后,不支持关闭。<br>- 仅支持SQL Server */
  952. func (c *RdsClient) EnableEnhancedBackup(request *rds.EnableEnhancedBackupRequest) (*rds.EnableEnhancedBackupResponse, error) {
  953. if request == nil {
  954. return nil, errors.New("Request object is nil. ")
  955. }
  956. resp, err := c.Send(request, c.ServiceName)
  957. if err != nil {
  958. return nil, err
  959. }
  960. jdResp := &rds.EnableEnhancedBackupResponse{}
  961. err = json.Unmarshal(resp, jdResp)
  962. if err != nil {
  963. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  964. return nil, err
  965. }
  966. return jdResp, err
  967. }
  968. /* 查看当前实例已开启的安全模式。如果开启数据库的高安全模式,会返回配置信息<br>- 仅支持MySQL */
  969. func (c *RdsClient) DescribeIntercept(request *rds.DescribeInterceptRequest) (*rds.DescribeInterceptResponse, error) {
  970. if request == nil {
  971. return nil, errors.New("Request object is nil. ")
  972. }
  973. resp, err := c.Send(request, c.ServiceName)
  974. if err != nil {
  975. return nil, err
  976. }
  977. jdResp := &rds.DescribeInterceptResponse{}
  978. err = json.Unmarshal(resp, jdResp)
  979. if err != nil {
  980. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  981. return nil, err
  982. }
  983. return jdResp, err
  984. }
  985. /* 查看云数据库 RDS 的权限信息 - 仅支持 MySQL,Percona,MariaDB */
  986. func (c *RdsClient) DescribePrivilege(request *rds.DescribePrivilegeRequest) (*rds.DescribePrivilegeResponse, error) {
  987. if request == nil {
  988. return nil, errors.New("Request object is nil. ")
  989. }
  990. resp, err := c.Send(request, c.ServiceName)
  991. if err != nil {
  992. return nil, err
  993. }
  994. jdResp := &rds.DescribePrivilegeResponse{}
  995. err = json.Unmarshal(resp, jdResp)
  996. if err != nil {
  997. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  998. return nil, err
  999. }
  1000. return jdResp, err
  1001. }
  1002. /* 清理本地的binlog并释放空间。 系统只会清理已经备份到存储的binlog,不会影响MySQL实例的备份恢复<br>- 仅支持MySQL */
  1003. func (c *RdsClient) ClearBinlogs(request *rds.ClearBinlogsRequest) (*rds.ClearBinlogsResponse, error) {
  1004. if request == nil {
  1005. return nil, errors.New("Request object is nil. ")
  1006. }
  1007. resp, err := c.Send(request, c.ServiceName)
  1008. if err != nil {
  1009. return nil, err
  1010. }
  1011. jdResp := &rds.ClearBinlogsResponse{}
  1012. err = json.Unmarshal(resp, jdResp)
  1013. if err != nil {
  1014. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1015. return nil, err
  1016. }
  1017. return jdResp, err
  1018. }
  1019. /* 查看RDS实例备份策略。根据数据库类型的不同,支持的备份策略也略有差异,具体请看返回参数中的详细说明 */
  1020. func (c *RdsClient) DescribeBackupPolicy(request *rds.DescribeBackupPolicyRequest) (*rds.DescribeBackupPolicyResponse, error) {
  1021. if request == nil {
  1022. return nil, errors.New("Request object is nil. ")
  1023. }
  1024. resp, err := c.Send(request, c.ServiceName)
  1025. if err != nil {
  1026. return nil, err
  1027. }
  1028. jdResp := &rds.DescribeBackupPolicyResponse{}
  1029. err = json.Unmarshal(resp, jdResp)
  1030. if err != nil {
  1031. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1032. return nil, err
  1033. }
  1034. return jdResp, err
  1035. }
  1036. /* 获取MySQL实例中binlog的详细信息<br>- 仅支持 MySQL, Percona, MariaDB */
  1037. func (c *RdsClient) DescribeBinlogs(request *rds.DescribeBinlogsRequest) (*rds.DescribeBinlogsResponse, error) {
  1038. if request == nil {
  1039. return nil, errors.New("Request object is nil. ")
  1040. }
  1041. resp, err := c.Send(request, c.ServiceName)
  1042. if err != nil {
  1043. return nil, err
  1044. }
  1045. jdResp := &rds.DescribeBinlogsResponse{}
  1046. err = json.Unmarshal(resp, jdResp)
  1047. if err != nil {
  1048. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1049. return nil, err
  1050. }
  1051. return jdResp, err
  1052. }
  1053. /* 删除一个RDS实例或者MySQL/PostgreSQL的只读实例。删除MySQL/PostgreSQL主实例时,会同时将对应的MySQL/PostgreSQL只读实例也删除 [MFA enabled] */
  1054. func (c *RdsClient) DeleteInstance(request *rds.DeleteInstanceRequest) (*rds.DeleteInstanceResponse, error) {
  1055. if request == nil {
  1056. return nil, errors.New("Request object is nil. ")
  1057. }
  1058. resp, err := c.Send(request, c.ServiceName)
  1059. if err != nil {
  1060. return nil, err
  1061. }
  1062. jdResp := &rds.DeleteInstanceResponse{}
  1063. err = json.Unmarshal(resp, jdResp)
  1064. if err != nil {
  1065. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1066. return nil, err
  1067. }
  1068. return jdResp, err
  1069. }
  1070. /* 创建一个参数组<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1071. func (c *RdsClient) CreateParameterGroup(request *rds.CreateParameterGroupRequest) (*rds.CreateParameterGroupResponse, error) {
  1072. if request == nil {
  1073. return nil, errors.New("Request object is nil. ")
  1074. }
  1075. resp, err := c.Send(request, c.ServiceName)
  1076. if err != nil {
  1077. return nil, err
  1078. }
  1079. jdResp := &rds.CreateParameterGroupResponse{}
  1080. err = json.Unmarshal(resp, jdResp)
  1081. if err != nil {
  1082. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1083. return nil, err
  1084. }
  1085. return jdResp, err
  1086. }
  1087. /* 修改数据库临时运维账号属性。<br>- 仅支持 MySQL,Percona,MariaDB */
  1088. func (c *RdsClient) ModifyAccountForOps(request *rds.ModifyAccountForOpsRequest) (*rds.ModifyAccountForOpsResponse, error) {
  1089. if request == nil {
  1090. return nil, errors.New("Request object is nil. ")
  1091. }
  1092. resp, err := c.Send(request, c.ServiceName)
  1093. if err != nil {
  1094. return nil, err
  1095. }
  1096. jdResp := &rds.ModifyAccountForOpsResponse{}
  1097. err = json.Unmarshal(resp, jdResp)
  1098. if err != nil {
  1099. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1100. return nil, err
  1101. }
  1102. return jdResp, err
  1103. }
  1104. /* 查看该RDS实例下所有备份的详细信息,返回的备份列表按照备份开始时间(backupStartTime)降序排列。 */
  1105. func (c *RdsClient) DescribeBackups(request *rds.DescribeBackupsRequest) (*rds.DescribeBackupsResponse, error) {
  1106. if request == nil {
  1107. return nil, errors.New("Request object is nil. ")
  1108. }
  1109. resp, err := c.Send(request, c.ServiceName)
  1110. if err != nil {
  1111. return nil, err
  1112. }
  1113. jdResp := &rds.DescribeBackupsResponse{}
  1114. err = json.Unmarshal(resp, jdResp)
  1115. if err != nil {
  1116. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1117. return nil, err
  1118. }
  1119. return jdResp, err
  1120. }
  1121. /* 修改MySQL实例的连接模式:标准模式(standard) 和高安全模式(security).<br>- **标准模式**:响应时间短,但没有 SQL 审计和拦截的能力。<br>- **高安全模式**:具备一定的 SQL注入拦截能力(通过分析表达式、关键系统函数等来实现防御 SQL 注入攻击),并可开启 SQL 审计,但会增加一定的响应时间。<br>- 仅支持MySQL */
  1122. func (c *RdsClient) ModifyConnectionMode(request *rds.ModifyConnectionModeRequest) (*rds.ModifyConnectionModeResponse, error) {
  1123. if request == nil {
  1124. return nil, errors.New("Request object is nil. ")
  1125. }
  1126. resp, err := c.Send(request, c.ServiceName)
  1127. if err != nil {
  1128. return nil, err
  1129. }
  1130. jdResp := &rds.ModifyConnectionModeResponse{}
  1131. err = json.Unmarshal(resp, jdResp)
  1132. if err != nil {
  1133. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1134. return nil, err
  1135. }
  1136. return jdResp, err
  1137. }
  1138. /* 关闭数据库审计。关闭数据库审计后,以前生成的审计结果文件并不会被立即删除。审计结果文件会过期后由系统自动删除,过期时间缺省为6个月<br>- 仅支持SQL Server */
  1139. func (c *RdsClient) DeleteAudit(request *rds.DeleteAuditRequest) (*rds.DeleteAuditResponse, error) {
  1140. if request == nil {
  1141. return nil, errors.New("Request object is nil. ")
  1142. }
  1143. resp, err := c.Send(request, c.ServiceName)
  1144. if err != nil {
  1145. return nil, err
  1146. }
  1147. jdResp := &rds.DeleteAuditResponse{}
  1148. err = json.Unmarshal(resp, jdResp)
  1149. if err != nil {
  1150. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1151. return nil, err
  1152. }
  1153. return jdResp, err
  1154. }
  1155. /* 查看某个RDS实例下所有账号信息,包括账号名称、对各个数据库的访问权限信息等 */
  1156. func (c *RdsClient) DescribeAccounts(request *rds.DescribeAccountsRequest) (*rds.DescribeAccountsResponse, error) {
  1157. if request == nil {
  1158. return nil, errors.New("Request object is nil. ")
  1159. }
  1160. resp, err := c.Send(request, c.ServiceName)
  1161. if err != nil {
  1162. return nil, err
  1163. }
  1164. jdResp := &rds.DescribeAccountsResponse{}
  1165. err = json.Unmarshal(resp, jdResp)
  1166. if err != nil {
  1167. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1168. return nil, err
  1169. }
  1170. return jdResp, err
  1171. }
  1172. /* 开启RDS实例的外网访问功能。开启后,用户可以通过internet访问RDS实例 */
  1173. func (c *RdsClient) EnableInternetAccess(request *rds.EnableInternetAccessRequest) (*rds.EnableInternetAccessResponse, error) {
  1174. if request == nil {
  1175. return nil, errors.New("Request object is nil. ")
  1176. }
  1177. resp, err := c.Send(request, c.ServiceName)
  1178. if err != nil {
  1179. return nil, err
  1180. }
  1181. jdResp := &rds.EnableInternetAccessResponse{}
  1182. err = json.Unmarshal(resp, jdResp)
  1183. if err != nil {
  1184. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1185. return nil, err
  1186. }
  1187. return jdResp, err
  1188. }
  1189. /* 修改RDS实例的参数组<br>- 仅支持MySQL */
  1190. func (c *RdsClient) ModifyParameterGroup(request *rds.ModifyParameterGroupRequest) (*rds.ModifyParameterGroupResponse, error) {
  1191. if request == nil {
  1192. return nil, errors.New("Request object is nil. ")
  1193. }
  1194. resp, err := c.Send(request, c.ServiceName)
  1195. if err != nil {
  1196. return nil, err
  1197. }
  1198. jdResp := &rds.ModifyParameterGroupResponse{}
  1199. err = json.Unmarshal(resp, jdResp)
  1200. if err != nil {
  1201. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1202. return nil, err
  1203. }
  1204. return jdResp, err
  1205. }
  1206. /* 查看参数的修改历史<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1207. func (c *RdsClient) DescribeParameterModifyRecords(request *rds.DescribeParameterModifyRecordsRequest) (*rds.DescribeParameterModifyRecordsResponse, error) {
  1208. if request == nil {
  1209. return nil, errors.New("Request object is nil. ")
  1210. }
  1211. resp, err := c.Send(request, c.ServiceName)
  1212. if err != nil {
  1213. return nil, err
  1214. }
  1215. jdResp := &rds.DescribeParameterModifyRecordsResponse{}
  1216. err = json.Unmarshal(resp, jdResp)
  1217. if err != nil {
  1218. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1219. return nil, err
  1220. }
  1221. return jdResp, err
  1222. }
  1223. /* 获取MySQL实例的binlog的下载链接<br>- 仅支持 MySQL, Percona, MariaDB */
  1224. func (c *RdsClient) DescribeBinlogDownloadURL(request *rds.DescribeBinlogDownloadURLRequest) (*rds.DescribeBinlogDownloadURLResponse, error) {
  1225. if request == nil {
  1226. return nil, errors.New("Request object is nil. ")
  1227. }
  1228. resp, err := c.Send(request, c.ServiceName)
  1229. if err != nil {
  1230. return nil, err
  1231. }
  1232. jdResp := &rds.DescribeBinlogDownloadURLResponse{}
  1233. err = json.Unmarshal(resp, jdResp)
  1234. if err != nil {
  1235. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1236. return nil, err
  1237. }
  1238. return jdResp, err
  1239. }
  1240. /* 获取当前实例的指定库的表列表信息 - 仅支持 MySQL,Percona,MariaDB */
  1241. func (c *RdsClient) DescribeTables(request *rds.DescribeTablesRequest) (*rds.DescribeTablesResponse, error) {
  1242. if request == nil {
  1243. return nil, errors.New("Request object is nil. ")
  1244. }
  1245. resp, err := c.Send(request, c.ServiceName)
  1246. if err != nil {
  1247. return nil, err
  1248. }
  1249. jdResp := &rds.DescribeTablesResponse{}
  1250. err = json.Unmarshal(resp, jdResp)
  1251. if err != nil {
  1252. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1253. return nil, err
  1254. }
  1255. return jdResp, err
  1256. }
  1257. /* 取消该账号对某个数据库的所有权限。权限取消后,该账号将不能访问此数据库。取消账号对某个数据库的访问权限,不影响该账号对其他数据库的访问权限 */
  1258. func (c *RdsClient) RevokePrivilege(request *rds.RevokePrivilegeRequest) (*rds.RevokePrivilegeResponse, error) {
  1259. if request == nil {
  1260. return nil, errors.New("Request object is nil. ")
  1261. }
  1262. resp, err := c.Send(request, c.ServiceName)
  1263. if err != nil {
  1264. return nil, err
  1265. }
  1266. jdResp := &rds.RevokePrivilegeResponse{}
  1267. err = json.Unmarshal(resp, jdResp)
  1268. if err != nil {
  1269. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1270. return nil, err
  1271. }
  1272. return jdResp, err
  1273. }
  1274. /* 创建数据库临时运维账号。<br>如果在使用数据库过程中需要京东云提供技术支持,并且需要对您的实例进行操作,您可以把临时运维账号提供给技术支持人员。<br>临时运维账号默认授予全局Select、Process权限,且账号只能通过控制台或者OpenAPI进行创建、删除账号以及对账号授权等,用户不能通过SQL语句对账号进行相关操作。<br>- 仅支持 MySQL,Percona,MariaDB */
  1275. func (c *RdsClient) CreateAccountForOps(request *rds.CreateAccountForOpsRequest) (*rds.CreateAccountForOpsResponse, error) {
  1276. if request == nil {
  1277. return nil, errors.New("Request object is nil. ")
  1278. }
  1279. resp, err := c.Send(request, c.ServiceName)
  1280. if err != nil {
  1281. return nil, err
  1282. }
  1283. jdResp := &rds.CreateAccountForOpsResponse{}
  1284. err = json.Unmarshal(resp, jdResp)
  1285. if err != nil {
  1286. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1287. return nil, err
  1288. }
  1289. return jdResp, err
  1290. }
  1291. /* 修改SQL Server对接的Active Directory 服务。支持SQL Server 2012 及2012以上以上的版本。<br>注意:修改目录服务后,需重启SQL Server实例才能生效 */
  1292. func (c *RdsClient) ModifyActiveDirectory(request *rds.ModifyActiveDirectoryRequest) (*rds.ModifyActiveDirectoryResponse, error) {
  1293. if request == nil {
  1294. return nil, errors.New("Request object is nil. ")
  1295. }
  1296. resp, err := c.Send(request, c.ServiceName)
  1297. if err != nil {
  1298. return nil, err
  1299. }
  1300. jdResp := &rds.ModifyActiveDirectoryResponse{}
  1301. err = json.Unmarshal(resp, jdResp)
  1302. if err != nil {
  1303. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1304. return nil, err
  1305. }
  1306. return jdResp, err
  1307. }
  1308. /* 查看当前实例已开启的审计选项。如当前实例未开启审计,则返回空<br>- 仅支持SQL Server */
  1309. func (c *RdsClient) DescribeAudit(request *rds.DescribeAuditRequest) (*rds.DescribeAuditResponse, error) {
  1310. if request == nil {
  1311. return nil, errors.New("Request object is nil. ")
  1312. }
  1313. resp, err := c.Send(request, c.ServiceName)
  1314. if err != nil {
  1315. return nil, err
  1316. }
  1317. jdResp := &rds.DescribeAuditResponse{}
  1318. err = json.Unmarshal(resp, jdResp)
  1319. if err != nil {
  1320. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1321. return nil, err
  1322. }
  1323. return jdResp, err
  1324. }
  1325. /* 根据用户定义的查询条件,获取SQL执行的性能统计信息,例如慢SQL等。用户可以根据这些信息查找与SQL执行相关的性能瓶颈,并进行优化。<br>- 仅支持SQL Server */
  1326. func (c *RdsClient) DescribeQueryPerformance(request *rds.DescribeQueryPerformanceRequest) (*rds.DescribeQueryPerformanceResponse, error) {
  1327. if request == nil {
  1328. return nil, errors.New("Request object is nil. ")
  1329. }
  1330. resp, err := c.Send(request, c.ServiceName)
  1331. if err != nil {
  1332. return nil, err
  1333. }
  1334. jdResp := &rds.DescribeQueryPerformanceResponse{}
  1335. err = json.Unmarshal(resp, jdResp)
  1336. if err != nil {
  1337. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1338. return nil, err
  1339. }
  1340. return jdResp, err
  1341. }
  1342. /* 查看参数组绑定的云数据库实例<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1343. func (c *RdsClient) DescribeParameterGroupAttachedInstances(request *rds.DescribeParameterGroupAttachedInstancesRequest) (*rds.DescribeParameterGroupAttachedInstancesResponse, error) {
  1344. if request == nil {
  1345. return nil, errors.New("Request object is nil. ")
  1346. }
  1347. resp, err := c.Send(request, c.ServiceName)
  1348. if err != nil {
  1349. return nil, err
  1350. }
  1351. jdResp := &rds.DescribeParameterGroupAttachedInstancesResponse{}
  1352. err = json.Unmarshal(resp, jdResp)
  1353. if err != nil {
  1354. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1355. return nil, err
  1356. }
  1357. return jdResp, err
  1358. }
  1359. /* 查看当前实例是否开启TDE */
  1360. func (c *RdsClient) DescribeTde(request *rds.DescribeTdeRequest) (*rds.DescribeTdeResponse, error) {
  1361. if request == nil {
  1362. return nil, errors.New("Request object is nil. ")
  1363. }
  1364. resp, err := c.Send(request, c.ServiceName)
  1365. if err != nil {
  1366. return nil, err
  1367. }
  1368. jdResp := &rds.DescribeTdeResponse{}
  1369. err = json.Unmarshal(resp, jdResp)
  1370. if err != nil {
  1371. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1372. return nil, err
  1373. }
  1374. return jdResp, err
  1375. }
  1376. /* 创建一个跨地域备份同步服务。 */
  1377. func (c *RdsClient) CreateBackupSynchronicity(request *rds.CreateBackupSynchronicityRequest) (*rds.CreateBackupSynchronicityResponse, error) {
  1378. if request == nil {
  1379. return nil, errors.New("Request object is nil. ")
  1380. }
  1381. resp, err := c.Send(request, c.ServiceName)
  1382. if err != nil {
  1383. return nil, err
  1384. }
  1385. jdResp := &rds.CreateBackupSynchronicityResponse{}
  1386. err = json.Unmarshal(resp, jdResp)
  1387. if err != nil {
  1388. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1389. return nil, err
  1390. }
  1391. return jdResp, err
  1392. }
  1393. /* 查询MySQL实例的慢日志的详细信息。<br>- 仅支持MySQL */
  1394. func (c *RdsClient) DescribeSlowLogAttributes(request *rds.DescribeSlowLogAttributesRequest) (*rds.DescribeSlowLogAttributesResponse, error) {
  1395. if request == nil {
  1396. return nil, errors.New("Request object is nil. ")
  1397. }
  1398. resp, err := c.Send(request, c.ServiceName)
  1399. if err != nil {
  1400. return nil, err
  1401. }
  1402. jdResp := &rds.DescribeSlowLogAttributesResponse{}
  1403. err = json.Unmarshal(resp, jdResp)
  1404. if err != nil {
  1405. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1406. return nil, err
  1407. }
  1408. return jdResp, err
  1409. }
  1410. /* 修改参数组名称,描述<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1411. func (c *RdsClient) ModifyParameterGroupAttribute(request *rds.ModifyParameterGroupAttributeRequest) (*rds.ModifyParameterGroupAttributeResponse, error) {
  1412. if request == nil {
  1413. return nil, errors.New("Request object is nil. ")
  1414. }
  1415. resp, err := c.Send(request, c.ServiceName)
  1416. if err != nil {
  1417. return nil, err
  1418. }
  1419. jdResp := &rds.ModifyParameterGroupAttributeResponse{}
  1420. err = json.Unmarshal(resp, jdResp)
  1421. if err != nil {
  1422. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1423. return nil, err
  1424. }
  1425. return jdResp, err
  1426. }
  1427. /* 仅支持查看MySQL实例的审计内容<br>- 仅支持 MySQL 5.6, MySQL 5.7, Percona, MariaDB, PostgreSQL */
  1428. func (c *RdsClient) DescribeAuditResult(request *rds.DescribeAuditResultRequest) (*rds.DescribeAuditResultResponse, error) {
  1429. if request == nil {
  1430. return nil, errors.New("Request object is nil. ")
  1431. }
  1432. resp, err := c.Send(request, c.ServiceName)
  1433. if err != nil {
  1434. return nil, err
  1435. }
  1436. jdResp := &rds.DescribeAuditResultResponse{}
  1437. err = json.Unmarshal(resp, jdResp)
  1438. if err != nil {
  1439. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1440. return nil, err
  1441. }
  1442. return jdResp, err
  1443. }
  1444. /* 查询MySQL实例的慢日志的概要信息。<br>- 仅支持MySQL */
  1445. func (c *RdsClient) DescribeSlowLogs(request *rds.DescribeSlowLogsRequest) (*rds.DescribeSlowLogsResponse, error) {
  1446. if request == nil {
  1447. return nil, errors.New("Request object is nil. ")
  1448. }
  1449. resp, err := c.Send(request, c.ServiceName)
  1450. if err != nil {
  1451. return nil, err
  1452. }
  1453. jdResp := &rds.DescribeSlowLogsResponse{}
  1454. err = json.Unmarshal(resp, jdResp)
  1455. if err != nil {
  1456. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1457. return nil, err
  1458. }
  1459. return jdResp, err
  1460. }
  1461. /* 从RDS实例中删除数据库。为便于管理和数据恢复,RDS对用户权限进行了控制,用户仅能通过控制台或本接口删除数据库 [MFA enabled] */
  1462. func (c *RdsClient) DeleteDatabase(request *rds.DeleteDatabaseRequest) (*rds.DeleteDatabaseResponse, error) {
  1463. if request == nil {
  1464. return nil, errors.New("Request object is nil. ")
  1465. }
  1466. resp, err := c.Send(request, c.ServiceName)
  1467. if err != nil {
  1468. return nil, err
  1469. }
  1470. jdResp := &rds.DeleteDatabaseResponse{}
  1471. err = json.Unmarshal(resp, jdResp)
  1472. if err != nil {
  1473. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1474. return nil, err
  1475. }
  1476. return jdResp, err
  1477. }
  1478. /* 根据用户定义的查询条件,获取正在执行中的SQL执行的性能信息。用户可以根据这些信息查找与SQL执行相关的性能瓶颈,并进行优化。<br>- 仅支持SQL Server */
  1479. func (c *RdsClient) DescribeActiveQueryPerformance(request *rds.DescribeActiveQueryPerformanceRequest) (*rds.DescribeActiveQueryPerformanceResponse, error) {
  1480. if request == nil {
  1481. return nil, errors.New("Request object is nil. ")
  1482. }
  1483. resp, err := c.Send(request, c.ServiceName)
  1484. if err != nil {
  1485. return nil, err
  1486. }
  1487. jdResp := &rds.DescribeActiveQueryPerformanceResponse{}
  1488. err = json.Unmarshal(resp, jdResp)
  1489. if err != nil {
  1490. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1491. return nil, err
  1492. }
  1493. return jdResp, err
  1494. }
  1495. /* 创建数据库账号,用户可以使用客户端,应用程序等通过该账号和密码登录RDS数据库实例。<br>为便于管理和恢复,RDS对账号进行了限制,数据库账号只能通过控制台或者OpenAPI进行创建、删除账号以及对账号授权等,用户不能通过SQL语句对账号进行相关操作。 */
  1496. func (c *RdsClient) CreateSuperAccount(request *rds.CreateSuperAccountRequest) (*rds.CreateSuperAccountResponse, error) {
  1497. if request == nil {
  1498. return nil, errors.New("Request object is nil. ")
  1499. }
  1500. resp, err := c.Send(request, c.ServiceName)
  1501. if err != nil {
  1502. return nil, err
  1503. }
  1504. jdResp := &rds.CreateSuperAccountResponse{}
  1505. err = json.Unmarshal(resp, jdResp)
  1506. if err != nil {
  1507. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1508. return nil, err
  1509. }
  1510. return jdResp, err
  1511. }
  1512. /* 重置数据库账号密码。如果用户忘记账号的密码,可以使用该接口重置指定账号密码。密码重置后,以前的密码将无法使用,必须使用重置后的新密码登录或连接数据库实例。 */
  1513. func (c *RdsClient) ResetPassword(request *rds.ResetPasswordRequest) (*rds.ResetPasswordResponse, error) {
  1514. if request == nil {
  1515. return nil, errors.New("Request object is nil. ")
  1516. }
  1517. resp, err := c.Send(request, c.ServiceName)
  1518. if err != nil {
  1519. return nil, err
  1520. }
  1521. jdResp := &rds.ResetPasswordResponse{}
  1522. err = json.Unmarshal(resp, jdResp)
  1523. if err != nil {
  1524. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1525. return nil, err
  1526. }
  1527. return jdResp, err
  1528. }
  1529. /* 关闭数据库的加密连接, 需要重启数据库实例才生效<br>- 仅支持SQL Server */
  1530. func (c *RdsClient) DisableSSL(request *rds.DisableSSLRequest) (*rds.DisableSSLResponse, error) {
  1531. if request == nil {
  1532. return nil, errors.New("Request object is nil. ")
  1533. }
  1534. resp, err := c.Send(request, c.ServiceName)
  1535. if err != nil {
  1536. return nil, err
  1537. }
  1538. jdResp := &rds.DisableSSLResponse{}
  1539. err = json.Unmarshal(resp, jdResp)
  1540. if err != nil {
  1541. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1542. return nil, err
  1543. }
  1544. return jdResp, err
  1545. }
  1546. /* 修改允许访问实例的IP白名单。白名单是允许访问当前实例的IP/IP段列表,缺省情况下,白名单对本VPC开放。如果用户开启了外网访问的功能,还需要对外网的IP配置白名单。 */
  1547. func (c *RdsClient) ModifyWhiteList(request *rds.ModifyWhiteListRequest) (*rds.ModifyWhiteListResponse, error) {
  1548. if request == nil {
  1549. return nil, errors.New("Request object is nil. ")
  1550. }
  1551. resp, err := c.Send(request, c.ServiceName)
  1552. if err != nil {
  1553. return nil, err
  1554. }
  1555. jdResp := &rds.ModifyWhiteListResponse{}
  1556. err = json.Unmarshal(resp, jdResp)
  1557. if err != nil {
  1558. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1559. return nil, err
  1560. }
  1561. return jdResp, err
  1562. }
  1563. /* 开启数据库的高安全模式<br>- 仅支持MySQL */
  1564. func (c *RdsClient) EnableIntercept(request *rds.EnableInterceptRequest) (*rds.EnableInterceptResponse, error) {
  1565. if request == nil {
  1566. return nil, errors.New("Request object is nil. ")
  1567. }
  1568. resp, err := c.Send(request, c.ServiceName)
  1569. if err != nil {
  1570. return nil, err
  1571. }
  1572. jdResp := &rds.EnableInterceptResponse{}
  1573. err = json.Unmarshal(resp, jdResp)
  1574. if err != nil {
  1575. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1576. return nil, err
  1577. }
  1578. return jdResp, err
  1579. }
  1580. /* 重启RDS实例,例如修改了一些配置参数后,需要重启实例才能生效。可以结合主备切换的功能,轮流重启备机,降低对业务的影响<br>**注意:如果实例正在进行备份,那么重启主实例将会终止备份操作。** 可以查看备份策略中的备份开始时间确认是否有备份正在运行。如果确实需要在实例备份时重启主实例,建议重启后,手工进行一次实例的全备。 */
  1581. func (c *RdsClient) RebootInstance(request *rds.RebootInstanceRequest) (*rds.RebootInstanceResponse, error) {
  1582. if request == nil {
  1583. return nil, errors.New("Request object is nil. ")
  1584. }
  1585. resp, err := c.Send(request, c.ServiceName)
  1586. if err != nil {
  1587. return nil, err
  1588. }
  1589. jdResp := &rds.RebootInstanceResponse{}
  1590. err = json.Unmarshal(resp, jdResp)
  1591. if err != nil {
  1592. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1593. return nil, err
  1594. }
  1595. return jdResp, err
  1596. }
  1597. /* 查看当前实例已开启加密连接。 */
  1598. func (c *RdsClient) DescribeSSL(request *rds.DescribeSSLRequest) (*rds.DescribeSSLResponse, error) {
  1599. if request == nil {
  1600. return nil, errors.New("Request object is nil. ")
  1601. }
  1602. resp, err := c.Send(request, c.ServiceName)
  1603. if err != nil {
  1604. return nil, err
  1605. }
  1606. jdResp := &rds.DescribeSSLResponse{}
  1607. err = json.Unmarshal(resp, jdResp)
  1608. if err != nil {
  1609. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1610. return nil, err
  1611. }
  1612. return jdResp, err
  1613. }
  1614. /* 查看RDS读写分离代理列表<br>- 仅支持MySQL */
  1615. func (c *RdsClient) DescribeReadWriteProxies(request *rds.DescribeReadWriteProxiesRequest) (*rds.DescribeReadWriteProxiesResponse, error) {
  1616. if request == nil {
  1617. return nil, errors.New("Request object is nil. ")
  1618. }
  1619. resp, err := c.Send(request, c.ServiceName)
  1620. if err != nil {
  1621. return nil, err
  1622. }
  1623. jdResp := &rds.DescribeReadWriteProxiesResponse{}
  1624. err = json.Unmarshal(resp, jdResp)
  1625. if err != nil {
  1626. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1627. return nil, err
  1628. }
  1629. return jdResp, err
  1630. }
  1631. /* 查看某个RDS实例下的运维账号信息。<br>- 仅支持 MySQL,Percona,MariaDB */
  1632. func (c *RdsClient) DescribeAccountsForOps(request *rds.DescribeAccountsForOpsRequest) (*rds.DescribeAccountsForOpsResponse, error) {
  1633. if request == nil {
  1634. return nil, errors.New("Request object is nil. ")
  1635. }
  1636. resp, err := c.Send(request, c.ServiceName)
  1637. if err != nil {
  1638. return nil, err
  1639. }
  1640. jdResp := &rds.DescribeAccountsForOpsResponse{}
  1641. err = json.Unmarshal(resp, jdResp)
  1642. if err != nil {
  1643. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1644. return nil, err
  1645. }
  1646. return jdResp, err
  1647. }
  1648. /* 查询该用户pin关联的备份的计费信息。仅当该用户开启了增强备份后有效。如用户未开启增强备份,返回null<br>- 仅支持SQL Server */
  1649. func (c *RdsClient) DescribeBackupCharge(request *rds.DescribeBackupChargeRequest) (*rds.DescribeBackupChargeResponse, error) {
  1650. if request == nil {
  1651. return nil, errors.New("Request object is nil. ")
  1652. }
  1653. resp, err := c.Send(request, c.ServiceName)
  1654. if err != nil {
  1655. return nil, err
  1656. }
  1657. jdResp := &rds.DescribeBackupChargeResponse{}
  1658. err = json.Unmarshal(resp, jdResp)
  1659. if err != nil {
  1660. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1661. return nil, err
  1662. }
  1663. return jdResp, err
  1664. }
  1665. /* 删除参数组<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1666. func (c *RdsClient) DeleteParameterGroup(request *rds.DeleteParameterGroupRequest) (*rds.DeleteParameterGroupResponse, error) {
  1667. if request == nil {
  1668. return nil, errors.New("Request object is nil. ")
  1669. }
  1670. resp, err := c.Send(request, c.ServiceName)
  1671. if err != nil {
  1672. return nil, err
  1673. }
  1674. jdResp := &rds.DeleteParameterGroupResponse{}
  1675. err = json.Unmarshal(resp, jdResp)
  1676. if err != nil {
  1677. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1678. return nil, err
  1679. }
  1680. return jdResp, err
  1681. }
  1682. /* 创建一个RDS实例,用户可以使用相应的数据库客户端或者应用程序通过域名和端口链接到该RDS实例上,进行操作。 */
  1683. func (c *RdsClient) CreateInstance(request *rds.CreateInstanceRequest) (*rds.CreateInstanceResponse, error) {
  1684. if request == nil {
  1685. return nil, errors.New("Request object is nil. ")
  1686. }
  1687. resp, err := c.Send(request, c.ServiceName)
  1688. if err != nil {
  1689. return nil, err
  1690. }
  1691. jdResp := &rds.CreateInstanceResponse{}
  1692. err = json.Unmarshal(resp, jdResp)
  1693. if err != nil {
  1694. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1695. return nil, err
  1696. }
  1697. return jdResp, err
  1698. }
  1699. /* 获取日志文件列表<br>- 仅支持PostgreSQL, MySQL, Percona, MariaDB */
  1700. func (c *RdsClient) DescribeLogs(request *rds.DescribeLogsRequest) (*rds.DescribeLogsResponse, error) {
  1701. if request == nil {
  1702. return nil, errors.New("Request object is nil. ")
  1703. }
  1704. resp, err := c.Send(request, c.ServiceName)
  1705. if err != nil {
  1706. return nil, err
  1707. }
  1708. jdResp := &rds.DescribeLogsResponse{}
  1709. err = json.Unmarshal(resp, jdResp)
  1710. if err != nil {
  1711. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1712. return nil, err
  1713. }
  1714. return jdResp, err
  1715. }
  1716. /* 从上传到OSS的备份文件中恢复单个数据库<br>- 仅支持SQL Server */
  1717. func (c *RdsClient) RestoreDatabaseFromOSS(request *rds.RestoreDatabaseFromOSSRequest) (*rds.RestoreDatabaseFromOSSResponse, error) {
  1718. if request == nil {
  1719. return nil, errors.New("Request object is nil. ")
  1720. }
  1721. resp, err := c.Send(request, c.ServiceName)
  1722. if err != nil {
  1723. return nil, err
  1724. }
  1725. jdResp := &rds.RestoreDatabaseFromOSSResponse{}
  1726. err = json.Unmarshal(resp, jdResp)
  1727. if err != nil {
  1728. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1729. return nil, err
  1730. }
  1731. return jdResp, err
  1732. }
  1733. /* 删除RDS实例备份,仅允许删除用户生成的备份,系统自动备份不允许删除。 */
  1734. func (c *RdsClient) DeleteBackup(request *rds.DeleteBackupRequest) (*rds.DeleteBackupResponse, error) {
  1735. if request == nil {
  1736. return nil, errors.New("Request object is nil. ")
  1737. }
  1738. resp, err := c.Send(request, c.ServiceName)
  1739. if err != nil {
  1740. return nil, err
  1741. }
  1742. jdResp := &rds.DeleteBackupResponse{}
  1743. err = json.Unmarshal(resp, jdResp)
  1744. if err != nil {
  1745. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1746. return nil, err
  1747. }
  1748. return jdResp, err
  1749. }
  1750. /* 查询跨地域备份同步服务列表。 */
  1751. func (c *RdsClient) DescribeBackupSynchronicities(request *rds.DescribeBackupSynchronicitiesRequest) (*rds.DescribeBackupSynchronicitiesResponse, error) {
  1752. if request == nil {
  1753. return nil, errors.New("Request object is nil. ")
  1754. }
  1755. resp, err := c.Send(request, c.ServiceName)
  1756. if err != nil {
  1757. return nil, err
  1758. }
  1759. jdResp := &rds.DescribeBackupSynchronicitiesResponse{}
  1760. err = json.Unmarshal(resp, jdResp)
  1761. if err != nil {
  1762. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1763. return nil, err
  1764. }
  1765. return jdResp, err
  1766. }
  1767. /* 查看参数组的参数<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1768. func (c *RdsClient) DescribeParameterGroupParameters(request *rds.DescribeParameterGroupParametersRequest) (*rds.DescribeParameterGroupParametersResponse, error) {
  1769. if request == nil {
  1770. return nil, errors.New("Request object is nil. ")
  1771. }
  1772. resp, err := c.Send(request, c.ServiceName)
  1773. if err != nil {
  1774. return nil, err
  1775. }
  1776. jdResp := &rds.DescribeParameterGroupParametersResponse{}
  1777. err = json.Unmarshal(resp, jdResp)
  1778. if err != nil {
  1779. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1780. return nil, err
  1781. }
  1782. return jdResp, err
  1783. }
  1784. /* 当实例开启增强备份模式后,查询实例备份的空间使用情况<br>- 仅支持SQL Server */
  1785. func (c *RdsClient) DescribeBackupSpace(request *rds.DescribeBackupSpaceRequest) (*rds.DescribeBackupSpaceResponse, error) {
  1786. if request == nil {
  1787. return nil, errors.New("Request object is nil. ")
  1788. }
  1789. resp, err := c.Send(request, c.ServiceName)
  1790. if err != nil {
  1791. return nil, err
  1792. }
  1793. jdResp := &rds.DescribeBackupSpaceResponse{}
  1794. err = json.Unmarshal(resp, jdResp)
  1795. if err != nil {
  1796. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1797. return nil, err
  1798. }
  1799. return jdResp, err
  1800. }
  1801. /* 修改数据库读写分离代理服务配置<br>- 仅支持MySQL */
  1802. func (c *RdsClient) ModifyReadWriteProxy(request *rds.ModifyReadWriteProxyRequest) (*rds.ModifyReadWriteProxyResponse, error) {
  1803. if request == nil {
  1804. return nil, errors.New("Request object is nil. ")
  1805. }
  1806. resp, err := c.Send(request, c.ServiceName)
  1807. if err != nil {
  1808. return nil, err
  1809. }
  1810. jdResp := &rds.ModifyReadWriteProxyResponse{}
  1811. err = json.Unmarshal(resp, jdResp)
  1812. if err != nil {
  1813. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1814. return nil, err
  1815. }
  1816. return jdResp, err
  1817. }
  1818. /* 关闭RDS实例的外网访问功能。关闭后,用户无法通过Internet访问RDS,但可以在京东云内网通过内网域名访问 */
  1819. func (c *RdsClient) DisableInternetAccess(request *rds.DisableInternetAccessRequest) (*rds.DisableInternetAccessResponse, error) {
  1820. if request == nil {
  1821. return nil, errors.New("Request object is nil. ")
  1822. }
  1823. resp, err := c.Send(request, c.ServiceName)
  1824. if err != nil {
  1825. return nil, err
  1826. }
  1827. jdResp := &rds.DisableInternetAccessResponse{}
  1828. err = json.Unmarshal(resp, jdResp)
  1829. if err != nil {
  1830. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1831. return nil, err
  1832. }
  1833. return jdResp, err
  1834. }
  1835. /* 获取当前账号下所有RDS实例及MySQL/PostgreSQL只读实例的概要信息,例如实例类型,版本,计费信息等 */
  1836. func (c *RdsClient) DescribeInstances(request *rds.DescribeInstancesRequest) (*rds.DescribeInstancesResponse, error) {
  1837. if request == nil {
  1838. return nil, errors.New("Request object is nil. ")
  1839. }
  1840. resp, err := c.Send(request, c.ServiceName)
  1841. if err != nil {
  1842. return nil, err
  1843. }
  1844. jdResp := &rds.DescribeInstancesResponse{}
  1845. err = json.Unmarshal(resp, jdResp)
  1846. if err != nil {
  1847. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1848. return nil, err
  1849. }
  1850. return jdResp, err
  1851. }
  1852. /* 创建MySQL的只读实例<br> - 仅支持MySQL<br> - 创建的只读实例跟主实例在同一个VPC同一个子网中<br> * 只读实例只支持按配置计费 */
  1853. func (c *RdsClient) CreateROInstance(request *rds.CreateROInstanceRequest) (*rds.CreateROInstanceResponse, error) {
  1854. if request == nil {
  1855. return nil, errors.New("Request object is nil. ")
  1856. }
  1857. resp, err := c.Send(request, c.ServiceName)
  1858. if err != nil {
  1859. return nil, err
  1860. }
  1861. jdResp := &rds.CreateROInstanceResponse{}
  1862. err = json.Unmarshal(resp, jdResp)
  1863. if err != nil {
  1864. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1865. return nil, err
  1866. }
  1867. return jdResp, err
  1868. }
  1869. /* 获取当前系统所支持的各种数据库版本的审计选项及相应的推荐选项<br>- 仅支持SQL Server */
  1870. func (c *RdsClient) DescribeAuditOptions(request *rds.DescribeAuditOptionsRequest) (*rds.DescribeAuditOptionsResponse, error) {
  1871. if request == nil {
  1872. return nil, errors.New("Request object is nil. ")
  1873. }
  1874. resp, err := c.Send(request, c.ServiceName)
  1875. if err != nil {
  1876. return nil, err
  1877. }
  1878. jdResp := &rds.DescribeAuditOptionsResponse{}
  1879. err = json.Unmarshal(resp, jdResp)
  1880. if err != nil {
  1881. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1882. return nil, err
  1883. }
  1884. return jdResp, err
  1885. }
  1886. /* 删除数据库账号,账号删除后不可恢复,用户无法再使用该账号登录RDS实例 */
  1887. func (c *RdsClient) DeleteAccount(request *rds.DeleteAccountRequest) (*rds.DeleteAccountResponse, error) {
  1888. if request == nil {
  1889. return nil, errors.New("Request object is nil. ")
  1890. }
  1891. resp, err := c.Send(request, c.ServiceName)
  1892. if err != nil {
  1893. return nil, err
  1894. }
  1895. jdResp := &rds.DeleteAccountResponse{}
  1896. err = json.Unmarshal(resp, jdResp)
  1897. if err != nil {
  1898. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1899. return nil, err
  1900. }
  1901. return jdResp, err
  1902. }
  1903. /* 修改参数组的参数<br>- 仅支持MySQL,Percona,MariaDB,PostgreSQL */
  1904. func (c *RdsClient) ModifyParameterGroupParameters(request *rds.ModifyParameterGroupParametersRequest) (*rds.ModifyParameterGroupParametersResponse, error) {
  1905. if request == nil {
  1906. return nil, errors.New("Request object is nil. ")
  1907. }
  1908. resp, err := c.Send(request, c.ServiceName)
  1909. if err != nil {
  1910. return nil, err
  1911. }
  1912. jdResp := &rds.ModifyParameterGroupParametersResponse{}
  1913. err = json.Unmarshal(resp, jdResp)
  1914. if err != nil {
  1915. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1916. return nil, err
  1917. }
  1918. return jdResp, err
  1919. }
  1920. /* 根据跨地域备份同步服务时间点创建实例。 */
  1921. func (c *RdsClient) CreateInstanceByTimeInCrossRegion(request *rds.CreateInstanceByTimeInCrossRegionRequest) (*rds.CreateInstanceByTimeInCrossRegionResponse, error) {
  1922. if request == nil {
  1923. return nil, errors.New("Request object is nil. ")
  1924. }
  1925. resp, err := c.Send(request, c.ServiceName)
  1926. if err != nil {
  1927. return nil, err
  1928. }
  1929. jdResp := &rds.CreateInstanceByTimeInCrossRegionResponse{}
  1930. err = json.Unmarshal(resp, jdResp)
  1931. if err != nil {
  1932. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1933. return nil, err
  1934. }
  1935. return jdResp, err
  1936. }
  1937. /* 根据时间点,选择单表恢复当前实例<br>- 仅支持MySQL */
  1938. func (c *RdsClient) RestoreInstanceByTime(request *rds.RestoreInstanceByTimeRequest) (*rds.RestoreInstanceByTimeResponse, error) {
  1939. if request == nil {
  1940. return nil, errors.New("Request object is nil. ")
  1941. }
  1942. resp, err := c.Send(request, c.ServiceName)
  1943. if err != nil {
  1944. return nil, err
  1945. }
  1946. jdResp := &rds.RestoreInstanceByTimeResponse{}
  1947. err = json.Unmarshal(resp, jdResp)
  1948. if err != nil {
  1949. c.Logger.Log(core.LogError, "Unmarshal json failed, resp: %s", string(resp))
  1950. return nil, err
  1951. }
  1952. return jdResp, err
  1953. }