# frozen_string_literal: true

# Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

require 'json'

module TencentCloud
  module Tcaplusdb
    module V20190823
      class Client < TencentCloud::Common::AbstractClient

        def initialize(credential, region, profile = nil)
            api_version = '2019-08-23'
            api_endpoint = 'tcaplusdb.tencentcloudapi.com'
            sdk_version = 'TCAPLUSDB_' + File.read(File.expand_path('../VERSION', __dir__)).strip
            super(credential, region, api_version, api_endpoint, sdk_version, profile)
        end


        # 根据给定的表信息,清除表数据。

        # @param request: Request instance for ClearTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ClearTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ClearTablesResponse`
        def ClearTables(request)
          body = send_request('ClearTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ClearTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 选中目标表格,上传并校验改表文件,返回是否允许修改表格结构的结果。

        # @param request: Request instance for CompareIdlFiles.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CompareIdlFilesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CompareIdlFilesResponse`
        def CompareIdlFiles(request)
          body = send_request('CompareIdlFiles', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CompareIdlFilesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 用户创建备份任务

        # @param request: Request instance for CreateBackup.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CreateBackupRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CreateBackupResponse`
        def CreateBackup(request)
          body = send_request('CreateBackup', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CreateBackupResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 本接口用于创建TcaplusDB集群

        # @param request: Request instance for CreateCluster.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CreateClusterRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CreateClusterResponse`
        def CreateCluster(request)
          body = send_request('CreateCluster', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CreateClusterResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 构造表格过去时间点的快照

        # @param request: Request instance for CreateSnapshots.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CreateSnapshotsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CreateSnapshotsResponse`
        def CreateSnapshots(request)
          body = send_request('CreateSnapshots', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CreateSnapshotsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 在TcaplusDB集群下创建表格组

        # @param request: Request instance for CreateTableGroup.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CreateTableGroupRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CreateTableGroupResponse`
        def CreateTableGroup(request)
          body = send_request('CreateTableGroup', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CreateTableGroupResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 根据选择的IDL文件列表,批量创建表格

        # @param request: Request instance for CreateTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::CreateTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::CreateTablesResponse`
        def CreateTables(request)
          body = send_request('CreateTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = CreateTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除手工备份

        # @param request: Request instance for DeleteBackupRecords.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteBackupRecordsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteBackupRecordsResponse`
        def DeleteBackupRecords(request)
          body = send_request('DeleteBackupRecords', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteBackupRecordsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除TcaplusDB集群,必须在集群所属所有资源(包括表格组,表)都已经释放的情况下才会成功。

        # @param request: Request instance for DeleteCluster.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteClusterRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteClusterResponse`
        def DeleteCluster(request)
          body = send_request('DeleteCluster', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteClusterResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 指定集群ID和待删除IDL文件的信息,删除目标文件,如果文件正在被表关联则删除失败。

        # @param request: Request instance for DeleteIdlFiles.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteIdlFilesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteIdlFilesResponse`
        def DeleteIdlFiles(request)
          body = send_request('DeleteIdlFiles', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteIdlFilesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除表格的快照

        # @param request: Request instance for DeleteSnapshots.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteSnapshotsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteSnapshotsResponse`
        def DeleteSnapshots(request)
          body = send_request('DeleteSnapshots', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteSnapshotsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除表格的数据订阅

        # @param request: Request instance for DeleteTableDataFlow.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableDataFlowRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableDataFlowResponse`
        def DeleteTableDataFlow(request)
          body = send_request('DeleteTableDataFlow', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteTableDataFlowResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除表格组

        # @param request: Request instance for DeleteTableGroup.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableGroupRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableGroupResponse`
        def DeleteTableGroup(request)
          body = send_request('DeleteTableGroup', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteTableGroupResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除表格的分布式索引

        # @param request: Request instance for DeleteTableIndex.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableIndexRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTableIndexResponse`
        def DeleteTableIndex(request)
          body = send_request('DeleteTableIndex', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteTableIndexResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 删除指定的表,第一次调用此接口代表将表移动至回收站,再次调用代表将此表格从回收站中彻底删除。

        # @param request: Request instance for DeleteTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DeleteTablesResponse`
        def DeleteTables(request)
          body = send_request('DeleteTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DeleteTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 获取审批管理的申请单

        # @param request: Request instance for DescribeApplications.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeApplicationsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeApplicationsResponse`
        def DescribeApplications(request)
          body = send_request('DescribeApplications', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeApplicationsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询备份记录

        # 查询集群级别时, 将TableGroupId设置为"-1", 将TableName设置为"-1"
        # 查询集群+表格组级别时, 将TableName设置为"-1"
        # 查询集群+表格组+表格级别时, 都不能设置为“-1”

        # @param request: Request instance for DescribeBackupRecords.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeBackupRecordsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeBackupRecordsResponse`
        def DescribeBackupRecords(request)
          body = send_request('DescribeBackupRecords', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeBackupRecordsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 获取集群关联的标签列表

        # @param request: Request instance for DescribeClusterTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeClusterTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeClusterTagsResponse`
        def DescribeClusterTags(request)
          body = send_request('DescribeClusterTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeClusterTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询TcaplusDB集群列表,包含集群详细信息。

        # @param request: Request instance for DescribeClusters.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeClustersRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeClustersResponse`
        def DescribeClusters(request)
          body = send_request('DescribeClusters', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeClustersResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询表描述文件详情

        # @param request: Request instance for DescribeIdlFileInfos.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeIdlFileInfosRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeIdlFileInfosResponse`
        def DescribeIdlFileInfos(request)
          body = send_request('DescribeIdlFileInfos', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeIdlFileInfosResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询独占集群可以申请的剩余机器

        # @param request: Request instance for DescribeMachine.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeMachineRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeMachineResponse`
        def DescribeMachine(request)
          body = send_request('DescribeMachine', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeMachineResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询TcaplusDB服务支持的地域列表

        # @param request: Request instance for DescribeRegions.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeRegionsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeRegionsResponse`
        def DescribeRegions(request)
          body = send_request('DescribeRegions', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeRegionsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询快照列表

        # @param request: Request instance for DescribeSnapshots.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeSnapshotsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeSnapshotsResponse`
        def DescribeSnapshots(request)
          body = send_request('DescribeSnapshots', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeSnapshotsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 获取表格组关联的标签列表

        # @param request: Request instance for DescribeTableGroupTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableGroupTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableGroupTagsResponse`
        def DescribeTableGroupTags(request)
          body = send_request('DescribeTableGroupTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTableGroupTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询表格组列表

        # @param request: Request instance for DescribeTableGroups.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableGroupsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableGroupsResponse`
        def DescribeTableGroups(request)
          body = send_request('DescribeTableGroups', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTableGroupsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 获取表格标签

        # @param request: Request instance for DescribeTableTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTableTagsResponse`
        def DescribeTableTags(request)
          body = send_request('DescribeTableTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTableTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询表详情

        # @param request: Request instance for DescribeTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTablesResponse`
        def DescribeTables(request)
          body = send_request('DescribeTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询回收站中的表详情

        # @param request: Request instance for DescribeTablesInRecycle.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTablesInRecycleRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTablesInRecycleResponse`
        def DescribeTablesInRecycle(request)
          body = send_request('DescribeTablesInRecycle', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTablesInRecycleResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询任务列表

        # @param request: Request instance for DescribeTasks.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTasksRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeTasksResponse`
        def DescribeTasks(request)
          body = send_request('DescribeTasks', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeTasksResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 查询本用户是否在白名单中,控制是否能创建TDR类型的APP或表

        # @param request: Request instance for DescribeUinInWhitelist.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeUinInWhitelistRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DescribeUinInWhitelistResponse`
        def DescribeUinInWhitelist(request)
          body = send_request('DescribeUinInWhitelist', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DescribeUinInWhitelistResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 当restful api为关闭状态时,可以通过此接口关闭restful api

        # @param request: Request instance for DisableRestProxy.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::DisableRestProxyRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::DisableRestProxyResponse`
        def DisableRestProxy(request)
          body = send_request('DisableRestProxy', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = DisableRestProxyResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 当restful api为关闭状态时,可以通过此接口开启restful apu

        # @param request: Request instance for EnableRestProxy.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::EnableRestProxyRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::EnableRestProxyResponse`
        def EnableRestProxy(request)
          body = send_request('EnableRestProxy', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = EnableRestProxyResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 将快照数据导入到新表或当前表

        # @param request: Request instance for ImportSnapshots.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ImportSnapshotsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ImportSnapshotsResponse`
        def ImportSnapshots(request)
          body = send_request('ImportSnapshots', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ImportSnapshotsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 合并指定表格

        # @param request: Request instance for MergeTablesData.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::MergeTablesDataRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::MergeTablesDataResponse`
        def MergeTablesData(request)
          body = send_request('MergeTablesData', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = MergeTablesDataResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改集群审批状态

        # @param request: Request instance for ModifyCensorship.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyCensorshipRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyCensorshipResponse`
        def ModifyCensorship(request)
          body = send_request('ModifyCensorship', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyCensorshipResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改独占集群机器

        # @param request: Request instance for ModifyClusterMachine.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterMachineRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterMachineResponse`
        def ModifyClusterMachine(request)
          body = send_request('ModifyClusterMachine', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyClusterMachineResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改指定的集群名称

        # @param request: Request instance for ModifyClusterName.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterNameRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterNameResponse`
        def ModifyClusterName(request)
          body = send_request('ModifyClusterName', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyClusterNameResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改指定集群的密码,后台将在旧密码失效之前同时支持TcaplusDB SDK使用旧密码和新密码访问数据库。在旧密码失效之前不能提交新的密码修改请求,在旧密码失效之后不能提交修改旧密码过期时间的请求。

        # @param request: Request instance for ModifyClusterPassword.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterPasswordRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterPasswordResponse`
        def ModifyClusterPassword(request)
          body = send_request('ModifyClusterPassword', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyClusterPasswordResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改集群标签

        # @param request: Request instance for ModifyClusterTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyClusterTagsResponse`
        def ModifyClusterTags(request)
          body = send_request('ModifyClusterTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyClusterTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改表格快照的过期时间

        # @param request: Request instance for ModifySnapshots.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifySnapshotsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifySnapshotsResponse`
        def ModifySnapshots(request)
          body = send_request('ModifySnapshots', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifySnapshotsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改TcaplusDB表格组名称

        # @param request: Request instance for ModifyTableGroupName.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableGroupNameRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableGroupNameResponse`
        def ModifyTableGroupName(request)
          body = send_request('ModifyTableGroupName', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTableGroupNameResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改表格组标签

        # @param request: Request instance for ModifyTableGroupTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableGroupTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableGroupTagsResponse`
        def ModifyTableGroupTags(request)
          body = send_request('ModifyTableGroupTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTableGroupTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改表备注信息

        # @param request: Request instance for ModifyTableMemos.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableMemosRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableMemosResponse`
        def ModifyTableMemos(request)
          body = send_request('ModifyTableMemos', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTableMemosResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 表格扩缩容

        # @param request: Request instance for ModifyTableQuotas.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableQuotasRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableQuotasResponse`
        def ModifyTableQuotas(request)
          body = send_request('ModifyTableQuotas', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTableQuotasResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 修改表格标签

        # @param request: Request instance for ModifyTableTags.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableTagsRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTableTagsResponse`
        def ModifyTableTags(request)
          body = send_request('ModifyTableTags', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTableTagsResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 根据用户选定的表定义IDL文件,批量修改指定的表

        # @param request: Request instance for ModifyTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::ModifyTablesResponse`
        def ModifyTables(request)
          body = send_request('ModifyTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = ModifyTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 恢复回收站中,用户自行删除的表。对欠费待释放的表无效。

        # @param request: Request instance for RecoverRecycleTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::RecoverRecycleTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::RecoverRecycleTablesResponse`
        def RecoverRecycleTables(request)
          body = send_request('RecoverRecycleTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = RecoverRecycleTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 表格数据回档

        # @param request: Request instance for RollbackTables.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::RollbackTablesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::RollbackTablesResponse`
        def RollbackTables(request)
          body = send_request('RollbackTables', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = RollbackTablesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 新增、删除、修改备份过期策略, ClusterId必须为具体的集群Id(appid)

        # @param request: Request instance for SetBackupExpireRule.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::SetBackupExpireRuleRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::SetBackupExpireRuleResponse`
        def SetBackupExpireRule(request)
          body = send_request('SetBackupExpireRule', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = SetBackupExpireRuleResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 新增、修改表格数据订阅

        # @param request: Request instance for SetTableDataFlow.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::SetTableDataFlowRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::SetTableDataFlowResponse`
        def SetTableDataFlow(request)
          body = send_request('SetTableDataFlow', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = SetTableDataFlowResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 设置表格分布式索引

        # @param request: Request instance for SetTableIndex.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::SetTableIndexRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::SetTableIndexResponse`
        def SetTableIndex(request)
          body = send_request('SetTableIndex', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = SetTableIndexResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 更新申请单状态

        # @param request: Request instance for UpdateApply.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::UpdateApplyRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::UpdateApplyResponse`
        def UpdateApply(request)
          body = send_request('UpdateApply', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = UpdateApplyResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end

        # 上传并校验创建表格文件,返回校验合法的表格定义

        # @param request: Request instance for VerifyIdlFiles.
        # @type request: :class:`Tencentcloud::tcaplusdb::V20190823::VerifyIdlFilesRequest`
        # @rtype: :class:`Tencentcloud::tcaplusdb::V20190823::VerifyIdlFilesResponse`
        def VerifyIdlFiles(request)
          body = send_request('VerifyIdlFiles', request.serialize)
          response = JSON.parse(body)
          if response['Response'].key?('Error') == false
            model = VerifyIdlFilesResponse.new
            model.deserialize(response['Response'])
            model
          else
            code = response['Response']['Error']['Code']
            message = response['Response']['Error']['Message']
            reqid = response['Response']['RequestId']
            raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
          end
        rescue TencentCloud::Common::TencentCloudSDKException => e
          raise e
        rescue StandardError => e
          raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
        end


      end
    end
  end
end