diff --git a/CHANGELOG.md b/CHANGELOG.md index c06ddf50de..421df2ea6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ ## 1.37.0 (Unreleased) + +FEATURES: + +* **New Data Source**: `tencentcloud_sqlserver_zone_config` + ## 1.36.1 (June 12, 2020) ENHANCEMENTS: diff --git a/examples/tencentcloud-sqlserver/main.tf b/examples/tencentcloud-sqlserver/main.tf new file mode 100644 index 0000000000..f4f8bcbe59 --- /dev/null +++ b/examples/tencentcloud-sqlserver/main.tf @@ -0,0 +1,2 @@ +data "tencentcloud_sqlserver_zone_config" "mysqlserver" { +} diff --git a/examples/tencentcloud-sqlserver/variable.tf b/examples/tencentcloud-sqlserver/variable.tf new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/tencentcloud-sqlserver/version.tf b/examples/tencentcloud-sqlserver/version.tf new file mode 100644 index 0000000000..133d0d73e7 --- /dev/null +++ b/examples/tencentcloud-sqlserver/version.tf @@ -0,0 +1,3 @@ +terraform { + required_version = ">= 0.12" +} \ No newline at end of file diff --git a/go.sum b/go.sum index 32c8c71a1d..1e1ca648b5 100644 --- a/go.sum +++ b/go.sum @@ -456,6 +456,8 @@ github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0K github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tencentcloud/tencentcloud-sdk-go v3.0.187+incompatible h1:9hr93p945INwxa67N68EUJuIkUE2iGnMq/YZ6x3JHik= github.com/tencentcloud/tencentcloud-sdk-go v3.0.187+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= +github.com/tencentcloud/tencentcloud-sdk-go v3.0.191+incompatible h1:cycv0fIQDSo9sjWkupzKnKMc+ZT8cKAfoq2WX3b8ozk= +github.com/tencentcloud/tencentcloud-sdk-go v3.0.191+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= github.com/tetafro/godot v0.3.7 h1:+mecr7RKrUKB5UQ1gwqEMn13sDKTyDR8KNIquB9mm+8= github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e h1:RumXZ56IrCj4CL+g1b9OL/oH0QnsF976bC8xQFYUD5Q= diff --git a/tencentcloud/connectivity/client.go b/tencentcloud/connectivity/client.go index 39d6a99d34..8dca16841c 100644 --- a/tencentcloud/connectivity/client.go +++ b/tencentcloud/connectivity/client.go @@ -26,6 +26,7 @@ import ( monitor "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724" redis "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412" scf "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416" + sqlserver "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328" sts "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813" tag "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag/v20180813" tcaplusdb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcaplusdb/v20190823" @@ -41,29 +42,30 @@ type TencentCloudClient struct { Protocol string Domain string - cosConn *s3.S3 - mysqlConn *cdb.Client - redisConn *redis.Client - asConn *as.Client - vpcConn *vpc.Client - cbsConn *cbs.Client - cvmConn *cvm.Client - clbConn *clb.Client - dayuConn *dayu.Client - dcConn *dc.Client - tagConn *tag.Client - mongodbConn *mongodb.Client - tkeConn *tke.Client - camConn *cam.Client - stsConn *sts.Client - gaapConn *gaap.Client - sslConn *ssl.Client - cfsConn *cfs.Client - scfConn *scf.Client - tcaplusConn *tcaplusdb.Client - cdnConn *cdn.Client - monitorConn *monitor.Client - esConn *es.Client + cosConn *s3.S3 + mysqlConn *cdb.Client + redisConn *redis.Client + asConn *as.Client + vpcConn *vpc.Client + cbsConn *cbs.Client + cvmConn *cvm.Client + clbConn *clb.Client + dayuConn *dayu.Client + dcConn *dc.Client + tagConn *tag.Client + mongodbConn *mongodb.Client + tkeConn *tke.Client + camConn *cam.Client + stsConn *sts.Client + gaapConn *gaap.Client + sslConn *ssl.Client + cfsConn *cfs.Client + scfConn *scf.Client + tcaplusConn *tcaplusdb.Client + cdnConn *cdn.Client + monitorConn *monitor.Client + esConn *es.Client + sqlserverConn *sqlserver.Client } // NewClientProfile returns a new ClientProfile @@ -398,3 +400,16 @@ func (me *TencentCloudClient) UseEsClient() *es.Client { return me.esConn } + +// UseSqlserverClient returns sqlserver client for service +func (me *TencentCloudClient) UseSqlserverClient() *sqlserver.Client { + if me.sqlserverConn != nil { + return me.sqlserverConn + } + + cpf := me.NewClientProfile(300) + me.sqlserverConn, _ = sqlserver.NewClient(me.Credential, me.Region, cpf) + me.sqlserverConn.WithHttpTransport(&LogRoundTripper{}) + + return me.sqlserverConn +} diff --git a/tencentcloud/data_source_tc_sqlserver_zone_config.go b/tencentcloud/data_source_tc_sqlserver_zone_config.go new file mode 100644 index 0000000000..1608f57e88 --- /dev/null +++ b/tencentcloud/data_source_tc_sqlserver_zone_config.go @@ -0,0 +1,178 @@ +/* +Use this data source to query purchasable specification configuration for each availability zone in this specific region. + +Example Usage + +```hcl +data "tencentcloud_sqlserver_zone_config" "mysqlserver" { +} +``` +*/ +package tencentcloud + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" +) + +func dataSourceTencentSqlserverZoneConfig() *schema.Resource { + return &schema.Resource{ + Read: dataSourceTencentSqlserverZoneConfigRead, + Schema: map[string]*schema.Schema{ + "result_output_file": { + Type: schema.TypeString, + Optional: true, + Description: "Used to store results.", + }, + "zone_list": { + Type: schema.TypeList, + Computed: true, + Description: "A list of availability zones. Each element contains the following attributes:", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "availability_zone": { + Type: schema.TypeString, + Computed: true, + Description: "Alphabet ID of availability zone.", + }, + "zone_id": { + Type: schema.TypeInt, + Computed: true, + Description: "Number ID of availability zone.", + }, + "specinfo_list": { + Type: schema.TypeList, + Computed: true, + Description: "A list of specinfo configurations for the specific availability zone. Each element contains the following attributes:", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "spec_id": { + Type: schema.TypeInt, + Computed: true, + Description: "Instance specification ID.", + }, + "machine_type": { + Type: schema.TypeString, + Computed: true, + Description: "Model ID.", + }, + "db_version": { + Type: schema.TypeString, + Computed: true, + Description: "Database version information. Valid values: `2008R2 (SQL Server 2008 Enterprise)`, `2012SP3 (SQL Server 2012 Enterprise)`, `2016SP1 (SQL Server 2016 Enterprise)`, `201602 (SQL Server 2016 Standard)`, `2017 (SQL Server 2017 Enterprise)`.", + }, + "db_version_name": { + Type: schema.TypeString, + Computed: true, + Description: "Version name corresponding to the `db_version` field.", + }, + "memory": { + Type: schema.TypeInt, + Computed: true, + Description: "Memory size in GB.", + }, + "cpu": { + Type: schema.TypeInt, + Computed: true, + Description: "Number of CPU cores.", + }, + "min_storage_size": { + Type: schema.TypeInt, + Computed: true, + Description: "Minimum disk size under this specification in GB.", + }, + "max_storage_size": { + Type: schema.TypeInt, + Computed: true, + Description: "Maximum disk size under this specification in GB.", + }, + "qps": { + Type: schema.TypeInt, + Computed: true, + Description: "QPS of this specification.", + }, + "charge_type": { + Type: schema.TypeString, + Computed: true, + Description: "Billing mode under this specification. Valid values are `POSTPAID_BY_HOUR`, `PREPAID` and `ALL` which means both POSTPAID_BY_HOUR and PREPAID.", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func dataSourceTencentSqlserverZoneConfigRead(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("data_source.tencent_sqlserver_zone_config.read")() + + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + sqlserverService := SqlserverService{client: meta.(*TencentCloudClient).apiV3Conn} + + // get zoneinfo + zoneInfoList, err := sqlserverService.DescribeZones(ctx) + if err != nil { + return fmt.Errorf("api[DescribeZones]fail, return %s", err.Error()) + } + zoneSet := make(map[string]map[string]interface{}) + for _, zoneInfo := range zoneInfoList { + zoneSetInfo := make(map[string]interface{}, 1) + zoneSetInfo["id"] = zoneInfo.ZoneId + zoneSet[*zoneInfo.Zone] = zoneSetInfo + } + + var zoneList []interface{} + for k, v := range zoneSet { + var zoneListItem = make(map[string]interface{}) + zoneListItem["availability_zone"] = k + zoneListItem["zone_id"] = v["id"] + + // get specinfo for each zone + specinfoList, err := sqlserverService.DescribeProductConfig(ctx, k) + if err != nil { + return fmt.Errorf("api[DescribeProductConfig]fail, return %s", err.Error()) + } + var specinfoConfigs []interface{} + for _, specinfoItem := range specinfoList { + var specinfoConfig = make(map[string]interface{}) + specinfoConfig["spec_id"] = specinfoItem.SpecId + specinfoConfig["machine_type"] = specinfoItem.MachineType + specinfoConfig["db_version"] = specinfoItem.Version + specinfoConfig["db_version_name"] = specinfoItem.VersionName + specinfoConfig["memory"] = specinfoItem.Memory + specinfoConfig["cpu"] = specinfoItem.CPU + specinfoConfig["min_storage_size"] = specinfoItem.MinStorage + specinfoConfig["max_storage_size"] = specinfoItem.MaxStorage + specinfoConfig["qps"] = specinfoItem.QPS + specinfoConfig["charge_type"] = SQLSERVER_CHARGE_TYPE_NAME[*specinfoItem.PayModeStatus] + + specinfoConfigs = append(specinfoConfigs, specinfoConfig) + } + zoneListItem["specinfo_list"] = specinfoConfigs + zoneList = append(zoneList, zoneListItem) + } + + // set zone_list + if err := d.Set("zone_list", zoneList); err != nil { + return fmt.Errorf("[CRITAL]%s provider set zone_list fail, reason:%s\n ", logId, err.Error()) + } + + d.SetId("zone_config") + + if output, ok := d.GetOk("result_output_file"); ok && output.(string) != "" { + if err := writeToFile(output.(string), zoneList); err != nil { + log.Printf("[CRITAL]%s output file[%s] fail, reason[%s]\n", + logId, output.(string), err.Error()) + } + + } + return nil +} diff --git a/tencentcloud/data_source_tc_sqlserver_zone_config_test.go b/tencentcloud/data_source_tc_sqlserver_zone_config_test.go new file mode 100644 index 0000000000..59d60cd4b0 --- /dev/null +++ b/tencentcloud/data_source_tc_sqlserver_zone_config_test.go @@ -0,0 +1,39 @@ +package tencentcloud + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" +) + +func TestAccDataSourceTencentCloudSqlserverZoneConfig_basic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: TestAccDataSourceTencentCloudSqlserverZoneConfig, + Check: resource.ComposeTestCheckFunc( + testAccCheckTencentCloudDataSourceID("data.tencentcloud_sqlserver_zone_config.foo"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.availability_zone"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.zone_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.spec_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.machine_type"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.db_version"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.db_version_name"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.memory"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.cpu"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.min_storage_size"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.max_storage_size"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.qps"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.charge_type"), + ), + }, + }, + }) +} + +const TestAccDataSourceTencentCloudSqlserverZoneConfig = ` +data "tencentcloud_sqlserver_zone_config" "foo" { +} +` diff --git a/tencentcloud/extension_sqlserver.go b/tencentcloud/extension_sqlserver.go new file mode 100644 index 0000000000..44387f21d5 --- /dev/null +++ b/tencentcloud/extension_sqlserver.go @@ -0,0 +1,12 @@ +package tencentcloud + +const ( + SQLSERVER_CHARGE_TYPE_PREPAID = "PREPAID" + SQLSERVER_CHARGE_TYPE_POSTPAID = "POSTPAID_BY_HOUR" +) + +var SQLSERVER_CHARGE_TYPE_NAME = map[string]string{ + "PRE": SQLSERVER_CHARGE_TYPE_PREPAID, + "POST": SQLSERVER_CHARGE_TYPE_POSTPAID, + "ALL": "ALL", +} diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 2ec65cc31e..dd5aacf4d4 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -303,6 +303,10 @@ Serverless Cloud Function(SCF) tencentcloud_scf_function tencentcloud_scf_namespace +SQLServer + Data Source + tencentcloud_sqlserver_zone_config + SSL Certificates Data Source tencentcloud_ssl_certificates @@ -582,6 +586,7 @@ func Provider() terraform.ResourceProvider { "tencentcloud_monitor_policy_groups": dataSourceTencentMonitorPolicyGroups(), "tencentcloud_monitor_product_namespace": dataSourceTencentMonitorProductNamespace(), "tencentcloud_elasticsearch_instances": dataSourceTencentCloudElasticsearchInstances(), + "tencentcloud_sqlserver_zone_config": dataSourceTencentSqlserverZoneConfig(), }, ResourcesMap: map[string]*schema.Resource{ diff --git a/tencentcloud/service_tencentcloud_sqlserver.go b/tencentcloud/service_tencentcloud_sqlserver.go new file mode 100644 index 0000000000..db21840af3 --- /dev/null +++ b/tencentcloud/service_tencentcloud_sqlserver.go @@ -0,0 +1,80 @@ +package tencentcloud + +import ( + "context" + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" + "log" + + sqlserver "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328" + "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/connectivity" + "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/ratelimit" +) + +type SqlserverService struct { + client *connectivity.TencentCloudClient +} + +func (me *SqlserverService) DescribeZones(ctx context.Context) (zoneInfoList []*sqlserver.ZoneInfo, errRet error) { + logId := getLogId(ctx) + request := sqlserver.NewDescribeZonesRequest() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", + logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + var response *sqlserver.DescribeZonesResponse + err := resource.Retry(10*readRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseSqlserverClient().DescribeZones(request) + if e != nil { + log.Printf("[CRITAL]%s DescribeZones fail, reason:%s\n", logId, e.Error()) + return retryError(e) + } + response = result + return nil + }) + if err != nil { + errRet = err + return + } + if response != nil && response.Response != nil { + zoneInfoList = response.Response.ZoneSet + } + return +} + +func (me *SqlserverService) DescribeProductConfig(ctx context.Context, zone string) (specInfoList []*sqlserver.SpecInfo, errRet error) { + logId := getLogId(ctx) + request := sqlserver.NewDescribeProductConfigRequest() + request.Zone = &zone + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", + logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + var response *sqlserver.DescribeProductConfigResponse + err := resource.Retry(10*readRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseSqlserverClient().DescribeProductConfig(request) + if e != nil { + log.Printf("[CRITAL]%s DescribeProductConfig fail, reason:%s\n", logId, e.Error()) + return retryError(e) + } + response = result + return nil + }) + if err != nil { + errRet = err + return + } + if response != nil && response.Response != nil { + specInfoList = response.Response.SpecInfoList + } + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/client.go new file mode 100644 index 0000000000..6eeef6faa6 --- /dev/null +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/client.go @@ -0,0 +1,1044 @@ +// 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. + +package v20180328 + +import ( + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" + tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" +) + +const APIVersion = "2018-03-28" + +type Client struct { + common.Client +} + +// Deprecated +func NewClientWithSecretId(secretId, secretKey, region string) (client *Client, err error) { + cpf := profile.NewClientProfile() + client = &Client{} + client.Init(region).WithSecretId(secretId, secretKey).WithProfile(cpf) + return +} + +func NewClient(credential *common.Credential, region string, clientProfile *profile.ClientProfile) (client *Client, err error) { + client = &Client{} + client.Init(region). + WithCredential(credential). + WithProfile(clientProfile) + return +} + + +func NewCreateAccountRequest() (request *CreateAccountRequest) { + request = &CreateAccountRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "CreateAccount") + return +} + +func NewCreateAccountResponse() (response *CreateAccountResponse) { + response = &CreateAccountResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CreateAccount)用于创建实例账号 +func (c *Client) CreateAccount(request *CreateAccountRequest) (response *CreateAccountResponse, err error) { + if request == nil { + request = NewCreateAccountRequest() + } + response = NewCreateAccountResponse() + err = c.Send(request, response) + return +} + +func NewCreateBackupRequest() (request *CreateBackupRequest) { + request = &CreateBackupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "CreateBackup") + return +} + +func NewCreateBackupResponse() (response *CreateBackupResponse) { + response = &CreateBackupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CreateBackup)用于创建备份。 +func (c *Client) CreateBackup(request *CreateBackupRequest) (response *CreateBackupResponse, err error) { + if request == nil { + request = NewCreateBackupRequest() + } + response = NewCreateBackupResponse() + err = c.Send(request, response) + return +} + +func NewCreateDBRequest() (request *CreateDBRequest) { + request = &CreateDBRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "CreateDB") + return +} + +func NewCreateDBResponse() (response *CreateDBResponse) { + response = &CreateDBResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CreateDB)用于创建数据库。 +func (c *Client) CreateDB(request *CreateDBRequest) (response *CreateDBResponse, err error) { + if request == nil { + request = NewCreateDBRequest() + } + response = NewCreateDBResponse() + err = c.Send(request, response) + return +} + +func NewCreateDBInstancesRequest() (request *CreateDBInstancesRequest) { + request = &CreateDBInstancesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "CreateDBInstances") + return +} + +func NewCreateDBInstancesResponse() (response *CreateDBInstancesResponse) { + response = &CreateDBInstancesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CreateDBInstances)用于创建实例。 +func (c *Client) CreateDBInstances(request *CreateDBInstancesRequest) (response *CreateDBInstancesResponse, err error) { + if request == nil { + request = NewCreateDBInstancesRequest() + } + response = NewCreateDBInstancesResponse() + err = c.Send(request, response) + return +} + +func NewCreateMigrationRequest() (request *CreateMigrationRequest) { + request = &CreateMigrationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "CreateMigration") + return +} + +func NewCreateMigrationResponse() (response *CreateMigrationResponse) { + response = &CreateMigrationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(CreateMigration)作用是创建一个迁移任务 +func (c *Client) CreateMigration(request *CreateMigrationRequest) (response *CreateMigrationResponse, err error) { + if request == nil { + request = NewCreateMigrationRequest() + } + response = NewCreateMigrationResponse() + err = c.Send(request, response) + return +} + +func NewDeleteAccountRequest() (request *DeleteAccountRequest) { + request = &DeleteAccountRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DeleteAccount") + return +} + +func NewDeleteAccountResponse() (response *DeleteAccountResponse) { + response = &DeleteAccountResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DeleteAccount)用于删除实例账号。 +func (c *Client) DeleteAccount(request *DeleteAccountRequest) (response *DeleteAccountResponse, err error) { + if request == nil { + request = NewDeleteAccountRequest() + } + response = NewDeleteAccountResponse() + err = c.Send(request, response) + return +} + +func NewDeleteDBRequest() (request *DeleteDBRequest) { + request = &DeleteDBRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DeleteDB") + return +} + +func NewDeleteDBResponse() (response *DeleteDBResponse) { + response = &DeleteDBResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DeleteDB)用于删除数据库。 +func (c *Client) DeleteDB(request *DeleteDBRequest) (response *DeleteDBResponse, err error) { + if request == nil { + request = NewDeleteDBRequest() + } + response = NewDeleteDBResponse() + err = c.Send(request, response) + return +} + +func NewDeleteMigrationRequest() (request *DeleteMigrationRequest) { + request = &DeleteMigrationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DeleteMigration") + return +} + +func NewDeleteMigrationResponse() (response *DeleteMigrationResponse) { + response = &DeleteMigrationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DeleteMigration)用于删除迁移任务 +func (c *Client) DeleteMigration(request *DeleteMigrationRequest) (response *DeleteMigrationResponse, err error) { + if request == nil { + request = NewDeleteMigrationRequest() + } + response = NewDeleteMigrationResponse() + err = c.Send(request, response) + return +} + +func NewDescribeAccountsRequest() (request *DescribeAccountsRequest) { + request = &DescribeAccountsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeAccounts") + return +} + +func NewDescribeAccountsResponse() (response *DescribeAccountsResponse) { + response = &DescribeAccountsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeAccounts)用于拉取实例账户列表。 +func (c *Client) DescribeAccounts(request *DescribeAccountsRequest) (response *DescribeAccountsResponse, err error) { + if request == nil { + request = NewDescribeAccountsRequest() + } + response = NewDescribeAccountsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeBackupsRequest() (request *DescribeBackupsRequest) { + request = &DescribeBackupsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeBackups") + return +} + +func NewDescribeBackupsResponse() (response *DescribeBackupsResponse) { + response = &DescribeBackupsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeBackups)用于查询备份列表。 +func (c *Client) DescribeBackups(request *DescribeBackupsRequest) (response *DescribeBackupsResponse, err error) { + if request == nil { + request = NewDescribeBackupsRequest() + } + response = NewDescribeBackupsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeDBInstancesRequest() (request *DescribeDBInstancesRequest) { + request = &DescribeDBInstancesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeDBInstances") + return +} + +func NewDescribeDBInstancesResponse() (response *DescribeDBInstancesResponse) { + response = &DescribeDBInstancesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeDBInstances)用于查询实例列表。 +func (c *Client) DescribeDBInstances(request *DescribeDBInstancesRequest) (response *DescribeDBInstancesResponse, err error) { + if request == nil { + request = NewDescribeDBInstancesRequest() + } + response = NewDescribeDBInstancesResponse() + err = c.Send(request, response) + return +} + +func NewDescribeDBsRequest() (request *DescribeDBsRequest) { + request = &DescribeDBsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeDBs") + return +} + +func NewDescribeDBsResponse() (response *DescribeDBsResponse) { + response = &DescribeDBsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeDBs)用于查询数据库列表。 +func (c *Client) DescribeDBs(request *DescribeDBsRequest) (response *DescribeDBsResponse, err error) { + if request == nil { + request = NewDescribeDBsRequest() + } + response = NewDescribeDBsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeFlowStatusRequest() (request *DescribeFlowStatusRequest) { + request = &DescribeFlowStatusRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeFlowStatus") + return +} + +func NewDescribeFlowStatusResponse() (response *DescribeFlowStatusResponse) { + response = &DescribeFlowStatusResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeFlowStatus)用于查询流程状态。 +func (c *Client) DescribeFlowStatus(request *DescribeFlowStatusRequest) (response *DescribeFlowStatusResponse, err error) { + if request == nil { + request = NewDescribeFlowStatusRequest() + } + response = NewDescribeFlowStatusResponse() + err = c.Send(request, response) + return +} + +func NewDescribeMigrationDetailRequest() (request *DescribeMigrationDetailRequest) { + request = &DescribeMigrationDetailRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeMigrationDetail") + return +} + +func NewDescribeMigrationDetailResponse() (response *DescribeMigrationDetailResponse) { + response = &DescribeMigrationDetailResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeMigrationDetail)用于查询迁移任务的详细情况 +func (c *Client) DescribeMigrationDetail(request *DescribeMigrationDetailRequest) (response *DescribeMigrationDetailResponse, err error) { + if request == nil { + request = NewDescribeMigrationDetailRequest() + } + response = NewDescribeMigrationDetailResponse() + err = c.Send(request, response) + return +} + +func NewDescribeMigrationsRequest() (request *DescribeMigrationsRequest) { + request = &DescribeMigrationsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeMigrations") + return +} + +func NewDescribeMigrationsResponse() (response *DescribeMigrationsResponse) { + response = &DescribeMigrationsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeMigrations)根据输入的限定条件,查询符合条件的迁移任务列表 +func (c *Client) DescribeMigrations(request *DescribeMigrationsRequest) (response *DescribeMigrationsResponse, err error) { + if request == nil { + request = NewDescribeMigrationsRequest() + } + response = NewDescribeMigrationsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeOrdersRequest() (request *DescribeOrdersRequest) { + request = &DescribeOrdersRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeOrders") + return +} + +func NewDescribeOrdersResponse() (response *DescribeOrdersResponse) { + response = &DescribeOrdersResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeOrders)用于查询订单信息 +func (c *Client) DescribeOrders(request *DescribeOrdersRequest) (response *DescribeOrdersResponse, err error) { + if request == nil { + request = NewDescribeOrdersRequest() + } + response = NewDescribeOrdersResponse() + err = c.Send(request, response) + return +} + +func NewDescribeProductConfigRequest() (request *DescribeProductConfigRequest) { + request = &DescribeProductConfigRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeProductConfig") + return +} + +func NewDescribeProductConfigResponse() (response *DescribeProductConfigResponse) { + response = &DescribeProductConfigResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口 (DescribeProductConfig) 用于查询售卖规格配置。 +func (c *Client) DescribeProductConfig(request *DescribeProductConfigRequest) (response *DescribeProductConfigResponse, err error) { + if request == nil { + request = NewDescribeProductConfigRequest() + } + response = NewDescribeProductConfigResponse() + err = c.Send(request, response) + return +} + +func NewDescribeRegionsRequest() (request *DescribeRegionsRequest) { + request = &DescribeRegionsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeRegions") + return +} + +func NewDescribeRegionsResponse() (response *DescribeRegionsResponse) { + response = &DescribeRegionsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口 (DescribeRegions) 用于查询售卖地域信息。 +func (c *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) { + if request == nil { + request = NewDescribeRegionsRequest() + } + response = NewDescribeRegionsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeRollbackTimeRequest() (request *DescribeRollbackTimeRequest) { + request = &DescribeRollbackTimeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeRollbackTime") + return +} + +func NewDescribeRollbackTimeResponse() (response *DescribeRollbackTimeResponse) { + response = &DescribeRollbackTimeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeRollbackTime)用于查询实例可回档时间范围 +func (c *Client) DescribeRollbackTime(request *DescribeRollbackTimeRequest) (response *DescribeRollbackTimeResponse, err error) { + if request == nil { + request = NewDescribeRollbackTimeRequest() + } + response = NewDescribeRollbackTimeResponse() + err = c.Send(request, response) + return +} + +func NewDescribeSlowlogsRequest() (request *DescribeSlowlogsRequest) { + request = &DescribeSlowlogsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeSlowlogs") + return +} + +func NewDescribeSlowlogsResponse() (response *DescribeSlowlogsResponse) { + response = &DescribeSlowlogsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(DescribeSlowlogs)用于获取慢查询日志文件信息 +func (c *Client) DescribeSlowlogs(request *DescribeSlowlogsRequest) (response *DescribeSlowlogsResponse, err error) { + if request == nil { + request = NewDescribeSlowlogsRequest() + } + response = NewDescribeSlowlogsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeZonesRequest() (request *DescribeZonesRequest) { + request = &DescribeZonesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "DescribeZones") + return +} + +func NewDescribeZonesResponse() (response *DescribeZonesResponse) { + response = &DescribeZonesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口 (DescribeZones) 用于查询当前可售卖的可用区信息。 +func (c *Client) DescribeZones(request *DescribeZonesRequest) (response *DescribeZonesResponse, err error) { + if request == nil { + request = NewDescribeZonesRequest() + } + response = NewDescribeZonesResponse() + err = c.Send(request, response) + return +} + +func NewInquiryPriceCreateDBInstancesRequest() (request *InquiryPriceCreateDBInstancesRequest) { + request = &InquiryPriceCreateDBInstancesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "InquiryPriceCreateDBInstances") + return +} + +func NewInquiryPriceCreateDBInstancesResponse() (response *InquiryPriceCreateDBInstancesResponse) { + response = &InquiryPriceCreateDBInstancesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(InquiryPriceCreateDBInstances)用于查询申请实例价格。 +func (c *Client) InquiryPriceCreateDBInstances(request *InquiryPriceCreateDBInstancesRequest) (response *InquiryPriceCreateDBInstancesResponse, err error) { + if request == nil { + request = NewInquiryPriceCreateDBInstancesRequest() + } + response = NewInquiryPriceCreateDBInstancesResponse() + err = c.Send(request, response) + return +} + +func NewInquiryPriceRenewDBInstanceRequest() (request *InquiryPriceRenewDBInstanceRequest) { + request = &InquiryPriceRenewDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "InquiryPriceRenewDBInstance") + return +} + +func NewInquiryPriceRenewDBInstanceResponse() (response *InquiryPriceRenewDBInstanceResponse) { + response = &InquiryPriceRenewDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(InquiryPriceRenewDBInstance)用于查询续费实例的价格。 +func (c *Client) InquiryPriceRenewDBInstance(request *InquiryPriceRenewDBInstanceRequest) (response *InquiryPriceRenewDBInstanceResponse, err error) { + if request == nil { + request = NewInquiryPriceRenewDBInstanceRequest() + } + response = NewInquiryPriceRenewDBInstanceResponse() + err = c.Send(request, response) + return +} + +func NewInquiryPriceUpgradeDBInstanceRequest() (request *InquiryPriceUpgradeDBInstanceRequest) { + request = &InquiryPriceUpgradeDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "InquiryPriceUpgradeDBInstance") + return +} + +func NewInquiryPriceUpgradeDBInstanceResponse() (response *InquiryPriceUpgradeDBInstanceResponse) { + response = &InquiryPriceUpgradeDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(InquiryPriceUpgradeDBInstance)用于查询升级实例的价格。 +func (c *Client) InquiryPriceUpgradeDBInstance(request *InquiryPriceUpgradeDBInstanceRequest) (response *InquiryPriceUpgradeDBInstanceResponse, err error) { + if request == nil { + request = NewInquiryPriceUpgradeDBInstanceRequest() + } + response = NewInquiryPriceUpgradeDBInstanceResponse() + err = c.Send(request, response) + return +} + +func NewModifyAccountPrivilegeRequest() (request *ModifyAccountPrivilegeRequest) { + request = &ModifyAccountPrivilegeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyAccountPrivilege") + return +} + +func NewModifyAccountPrivilegeResponse() (response *ModifyAccountPrivilegeResponse) { + response = &ModifyAccountPrivilegeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyAccountPrivilege)用于修改实例账户权限。 +func (c *Client) ModifyAccountPrivilege(request *ModifyAccountPrivilegeRequest) (response *ModifyAccountPrivilegeResponse, err error) { + if request == nil { + request = NewModifyAccountPrivilegeRequest() + } + response = NewModifyAccountPrivilegeResponse() + err = c.Send(request, response) + return +} + +func NewModifyAccountRemarkRequest() (request *ModifyAccountRemarkRequest) { + request = &ModifyAccountRemarkRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyAccountRemark") + return +} + +func NewModifyAccountRemarkResponse() (response *ModifyAccountRemarkResponse) { + response = &ModifyAccountRemarkResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyAccountRemark)用于修改账户备注。 +func (c *Client) ModifyAccountRemark(request *ModifyAccountRemarkRequest) (response *ModifyAccountRemarkResponse, err error) { + if request == nil { + request = NewModifyAccountRemarkRequest() + } + response = NewModifyAccountRemarkResponse() + err = c.Send(request, response) + return +} + +func NewModifyDBInstanceNameRequest() (request *ModifyDBInstanceNameRequest) { + request = &ModifyDBInstanceNameRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyDBInstanceName") + return +} + +func NewModifyDBInstanceNameResponse() (response *ModifyDBInstanceNameResponse) { + response = &ModifyDBInstanceNameResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDBInstanceName)用于修改实例名字。 +func (c *Client) ModifyDBInstanceName(request *ModifyDBInstanceNameRequest) (response *ModifyDBInstanceNameResponse, err error) { + if request == nil { + request = NewModifyDBInstanceNameRequest() + } + response = NewModifyDBInstanceNameResponse() + err = c.Send(request, response) + return +} + +func NewModifyDBInstanceProjectRequest() (request *ModifyDBInstanceProjectRequest) { + request = &ModifyDBInstanceProjectRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyDBInstanceProject") + return +} + +func NewModifyDBInstanceProjectResponse() (response *ModifyDBInstanceProjectResponse) { + response = &ModifyDBInstanceProjectResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDBInstanceProject)用于修改数据库实例所属项目。 +func (c *Client) ModifyDBInstanceProject(request *ModifyDBInstanceProjectRequest) (response *ModifyDBInstanceProjectResponse, err error) { + if request == nil { + request = NewModifyDBInstanceProjectRequest() + } + response = NewModifyDBInstanceProjectResponse() + err = c.Send(request, response) + return +} + +func NewModifyDBInstanceRenewFlagRequest() (request *ModifyDBInstanceRenewFlagRequest) { + request = &ModifyDBInstanceRenewFlagRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyDBInstanceRenewFlag") + return +} + +func NewModifyDBInstanceRenewFlagResponse() (response *ModifyDBInstanceRenewFlagResponse) { + response = &ModifyDBInstanceRenewFlagResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDBInstanceRenewFlag)用于修改实例续费标记 +func (c *Client) ModifyDBInstanceRenewFlag(request *ModifyDBInstanceRenewFlagRequest) (response *ModifyDBInstanceRenewFlagResponse, err error) { + if request == nil { + request = NewModifyDBInstanceRenewFlagRequest() + } + response = NewModifyDBInstanceRenewFlagResponse() + err = c.Send(request, response) + return +} + +func NewModifyDBNameRequest() (request *ModifyDBNameRequest) { + request = &ModifyDBNameRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyDBName") + return +} + +func NewModifyDBNameResponse() (response *ModifyDBNameResponse) { + response = &ModifyDBNameResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDBName)用于更新数据库名。 +func (c *Client) ModifyDBName(request *ModifyDBNameRequest) (response *ModifyDBNameResponse, err error) { + if request == nil { + request = NewModifyDBNameRequest() + } + response = NewModifyDBNameResponse() + err = c.Send(request, response) + return +} + +func NewModifyDBRemarkRequest() (request *ModifyDBRemarkRequest) { + request = &ModifyDBRemarkRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyDBRemark") + return +} + +func NewModifyDBRemarkResponse() (response *ModifyDBRemarkResponse) { + response = &ModifyDBRemarkResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyDBRemark)用于修改数据库备注。 +func (c *Client) ModifyDBRemark(request *ModifyDBRemarkRequest) (response *ModifyDBRemarkResponse, err error) { + if request == nil { + request = NewModifyDBRemarkRequest() + } + response = NewModifyDBRemarkResponse() + err = c.Send(request, response) + return +} + +func NewModifyMigrationRequest() (request *ModifyMigrationRequest) { + request = &ModifyMigrationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ModifyMigration") + return +} + +func NewModifyMigrationResponse() (response *ModifyMigrationResponse) { + response = &ModifyMigrationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyMigration)可以修改已有的迁移任务信息 +func (c *Client) ModifyMigration(request *ModifyMigrationRequest) (response *ModifyMigrationResponse, err error) { + if request == nil { + request = NewModifyMigrationRequest() + } + response = NewModifyMigrationResponse() + err = c.Send(request, response) + return +} + +func NewRenewDBInstanceRequest() (request *RenewDBInstanceRequest) { + request = &RenewDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "RenewDBInstance") + return +} + +func NewRenewDBInstanceResponse() (response *RenewDBInstanceResponse) { + response = &RenewDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(RenewDBInstance)用于续费实例。 +func (c *Client) RenewDBInstance(request *RenewDBInstanceRequest) (response *RenewDBInstanceResponse, err error) { + if request == nil { + request = NewRenewDBInstanceRequest() + } + response = NewRenewDBInstanceResponse() + err = c.Send(request, response) + return +} + +func NewResetAccountPasswordRequest() (request *ResetAccountPasswordRequest) { + request = &ResetAccountPasswordRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "ResetAccountPassword") + return +} + +func NewResetAccountPasswordResponse() (response *ResetAccountPasswordResponse) { + response = &ResetAccountPasswordResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ResetAccountPassword)用于重置实例的账户密码。 +func (c *Client) ResetAccountPassword(request *ResetAccountPasswordRequest) (response *ResetAccountPasswordResponse, err error) { + if request == nil { + request = NewResetAccountPasswordRequest() + } + response = NewResetAccountPasswordResponse() + err = c.Send(request, response) + return +} + +func NewRestartDBInstanceRequest() (request *RestartDBInstanceRequest) { + request = &RestartDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "RestartDBInstance") + return +} + +func NewRestartDBInstanceResponse() (response *RestartDBInstanceResponse) { + response = &RestartDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(RestartDBInstance)用于重启数据库实例。 +func (c *Client) RestartDBInstance(request *RestartDBInstanceRequest) (response *RestartDBInstanceResponse, err error) { + if request == nil { + request = NewRestartDBInstanceRequest() + } + response = NewRestartDBInstanceResponse() + err = c.Send(request, response) + return +} + +func NewRestoreInstanceRequest() (request *RestoreInstanceRequest) { + request = &RestoreInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "RestoreInstance") + return +} + +func NewRestoreInstanceResponse() (response *RestoreInstanceResponse) { + response = &RestoreInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(RestoreInstance)用于根据备份文件恢复实例。 +func (c *Client) RestoreInstance(request *RestoreInstanceRequest) (response *RestoreInstanceResponse, err error) { + if request == nil { + request = NewRestoreInstanceRequest() + } + response = NewRestoreInstanceResponse() + err = c.Send(request, response) + return +} + +func NewRollbackInstanceRequest() (request *RollbackInstanceRequest) { + request = &RollbackInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "RollbackInstance") + return +} + +func NewRollbackInstanceResponse() (response *RollbackInstanceResponse) { + response = &RollbackInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(RollbackInstance)用于回档实例 +func (c *Client) RollbackInstance(request *RollbackInstanceRequest) (response *RollbackInstanceResponse, err error) { + if request == nil { + request = NewRollbackInstanceRequest() + } + response = NewRollbackInstanceResponse() + err = c.Send(request, response) + return +} + +func NewRunMigrationRequest() (request *RunMigrationRequest) { + request = &RunMigrationRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "RunMigration") + return +} + +func NewRunMigrationResponse() (response *RunMigrationResponse) { + response = &RunMigrationResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(RunMigration)用于启动迁移任务,开始迁移 +func (c *Client) RunMigration(request *RunMigrationRequest) (response *RunMigrationResponse, err error) { + if request == nil { + request = NewRunMigrationRequest() + } + response = NewRunMigrationResponse() + err = c.Send(request, response) + return +} + +func NewTerminateDBInstanceRequest() (request *TerminateDBInstanceRequest) { + request = &TerminateDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "TerminateDBInstance") + return +} + +func NewTerminateDBInstanceResponse() (response *TerminateDBInstanceResponse) { + response = &TerminateDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(TerminateDBInstance)用于主动销毁按量计费实例。 +func (c *Client) TerminateDBInstance(request *TerminateDBInstanceRequest) (response *TerminateDBInstanceResponse, err error) { + if request == nil { + request = NewTerminateDBInstanceRequest() + } + response = NewTerminateDBInstanceResponse() + err = c.Send(request, response) + return +} + +func NewUpgradeDBInstanceRequest() (request *UpgradeDBInstanceRequest) { + request = &UpgradeDBInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("sqlserver", APIVersion, "UpgradeDBInstance") + return +} + +func NewUpgradeDBInstanceResponse() (response *UpgradeDBInstanceResponse) { + response = &UpgradeDBInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(UpgradeDBInstance)用于升级实例 +func (c *Client) UpgradeDBInstance(request *UpgradeDBInstanceRequest) (response *UpgradeDBInstanceResponse, err error) { + if request == nil { + request = NewUpgradeDBInstanceRequest() + } + response = NewUpgradeDBInstanceResponse() + err = c.Send(request, response) + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go new file mode 100644 index 0000000000..b2deecd6d0 --- /dev/null +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go @@ -0,0 +1,2367 @@ +// 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. + +package v20180328 + +import ( + "encoding/json" + + tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http" +) + +type AccountCreateInfo struct { + + // 实例用户名 + UserName *string `json:"UserName,omitempty" name:"UserName"` + + // 实例密码 + Password *string `json:"Password,omitempty" name:"Password"` + + // DB权限列表 + DBPrivileges []*DBPrivilege `json:"DBPrivileges,omitempty" name:"DBPrivileges" list` + + // 账号备注信息 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 是否为管理员账户,默认为否 + IsAdmin *bool `json:"IsAdmin,omitempty" name:"IsAdmin"` +} + +type AccountDetail struct { + + // 账户名 + Name *string `json:"Name,omitempty" name:"Name"` + + // 账户备注 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 账户创建时间 + CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + + // 账户状态,1-创建中,2-正常,3-修改中,4-密码重置中,-1-删除中 + Status *int64 `json:"Status,omitempty" name:"Status"` + + // 账户更新时间 + UpdateTime *string `json:"UpdateTime,omitempty" name:"UpdateTime"` + + // 密码更新时间 + PassTime *string `json:"PassTime,omitempty" name:"PassTime"` + + // 账户内部状态,正常为enable + InternalStatus *string `json:"InternalStatus,omitempty" name:"InternalStatus"` + + // 该账户对相关db的读写权限信息 + Dbs []*DBPrivilege `json:"Dbs,omitempty" name:"Dbs" list` +} + +type AccountPassword struct { + + // 用户名 + UserName *string `json:"UserName,omitempty" name:"UserName"` + + // 密码 + Password *string `json:"Password,omitempty" name:"Password"` +} + +type AccountPrivilege struct { + + // 数据库用户名 + UserName *string `json:"UserName,omitempty" name:"UserName"` + + // 数据库权限。ReadWrite表示可读写,ReadOnly表示只读 + Privilege *string `json:"Privilege,omitempty" name:"Privilege"` +} + +type AccountPrivilegeModifyInfo struct { + + // 数据库用户名 + UserName *string `json:"UserName,omitempty" name:"UserName"` + + // 账号权限变更信息 + DBPrivileges []*DBPrivilegeModifyInfo `json:"DBPrivileges,omitempty" name:"DBPrivileges" list` +} + +type AccountRemark struct { + + // 账户名 + UserName *string `json:"UserName,omitempty" name:"UserName"` + + // 对应账户新的备注信息 + Remark *string `json:"Remark,omitempty" name:"Remark"` +} + +type Backup struct { + + // 文件名 + FileName *string `json:"FileName,omitempty" name:"FileName"` + + // 文件大小,单位 KB + Size *int64 `json:"Size,omitempty" name:"Size"` + + // 备份开始时间 + StartTime *string `json:"StartTime,omitempty" name:"StartTime"` + + // 备份结束时间 + EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + + // 内网下载地址 + InternalAddr *string `json:"InternalAddr,omitempty" name:"InternalAddr"` + + // 外网下载地址 + ExternalAddr *string `json:"ExternalAddr,omitempty" name:"ExternalAddr"` + + // 备份文件唯一标识,RestoreInstance接口会用到该字段 + Id *uint64 `json:"Id,omitempty" name:"Id"` + + // 备份文件状态(0-创建中;1-成功;2-失败) + Status *uint64 `json:"Status,omitempty" name:"Status"` + + // 多库备份时的DB列表 + DBs []*string `json:"DBs,omitempty" name:"DBs" list` + + // 备份策略(0-实例备份;1-多库备份) + Strategy *int64 `json:"Strategy,omitempty" name:"Strategy"` + + // 备份方式,0-定时备份;1-手动临时备份 + BackupWay *int64 `json:"BackupWay,omitempty" name:"BackupWay"` +} + +type CreateAccountRequest struct { + *tchttp.BaseRequest + + // 数据库实例ID,形如mssql-njj2mtpl + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 数据库实例账户信息 + Accounts []*AccountCreateInfo `json:"Accounts,omitempty" name:"Accounts" list` +} + +func (r *CreateAccountRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateAccountRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateAccountResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 任务流ID + FlowId *int64 `json:"FlowId,omitempty" name:"FlowId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateAccountResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateAccountResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateBackupRequest struct { + *tchttp.BaseRequest + + // 备份策略(0-实例备份 1-多库备份) + Strategy *int64 `json:"Strategy,omitempty" name:"Strategy"` + + // 需要备份库名的列表(多库备份才填写) + DBNames []*string `json:"DBNames,omitempty" name:"DBNames" list` + + // 实例ID,形如mssql-i1z41iwd + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` +} + +func (r *CreateBackupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateBackupRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateBackupResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 异步任务ID + FlowId *int64 `json:"FlowId,omitempty" name:"FlowId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateBackupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateBackupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateDBInstancesRequest struct { + *tchttp.BaseRequest + + // 实例可用区,类似ap-guangzhou-1(广州一区);实例可售卖区域可以通过接口DescribeZones获取 + Zone *string `json:"Zone,omitempty" name:"Zone"` + + // 实例内存大小,单位GB + Memory *int64 `json:"Memory,omitempty" name:"Memory"` + + // 实例磁盘大小,单位GB + Storage *int64 `json:"Storage,omitempty" name:"Storage"` + + // 付费模式,取值支持 PREPAID(预付费),POSTPAID(后付费)。 + InstanceChargeType *string `json:"InstanceChargeType,omitempty" name:"InstanceChargeType"` + + // 项目ID + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 本次购买几个实例,默认值为1。取值不超过10 + GoodsNum *int64 `json:"GoodsNum,omitempty" name:"GoodsNum"` + + // VPC子网ID,形如subnet-bdoe83fa;SubnetId和VpcId需同时设置或者同时不设置 + SubnetId *string `json:"SubnetId,omitempty" name:"SubnetId"` + + // VPC网络ID,形如vpc-dsp338hz;SubnetId和VpcId需同时设置或者同时不设置 + VpcId *string `json:"VpcId,omitempty" name:"VpcId"` + + // 购买实例周期,默认取值为1,表示一个月。取值不超过48 + Period *int64 `json:"Period,omitempty" name:"Period"` + + // 是否自动使用代金券;1 - 是,0 - 否,默认不使用 + AutoVoucher *int64 `json:"AutoVoucher,omitempty" name:"AutoVoucher"` + + // 代金券ID数组,目前单个订单只能使用一张 + VoucherIds []*string `json:"VoucherIds,omitempty" name:"VoucherIds" list` + + // sqlserver版本,目前只支持:2008R2(SQL Server 2008 Enterprise),2012SP3(SQL Server 2012 Enterprise),2016SP1(SQL Server 2016 Enterprise),201602(SQL Server 2016 Standard)2017(SQL Server 2017 Enterprise)版本。每个地域支持售卖的版本不同,可通过DescribeProductConfig接口来拉取每个地域可售卖的版本信息。不填,默认为版本2008R2。 + DBVersion *string `json:"DBVersion,omitempty" name:"DBVersion"` + + // 自动续费标志:0-正常续费 1-自动续费,默认为1自动续费。只在购买预付费实例时有效。 + AutoRenewFlag *int64 `json:"AutoRenewFlag,omitempty" name:"AutoRenewFlag"` +} + +func (r *CreateDBInstancesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateDBInstancesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateDBInstancesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 订单名称 + DealName *string `json:"DealName,omitempty" name:"DealName"` + + // 订单名称数组 + DealNames []*string `json:"DealNames,omitempty" name:"DealNames" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateDBInstancesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateDBInstancesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateDBRequest struct { + *tchttp.BaseRequest + + // 实例ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 数据库创建信息 + DBs []*DBCreateInfo `json:"DBs,omitempty" name:"DBs" list` +} + +func (r *CreateDBRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateDBRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateDBResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 任务流ID + FlowId *int64 `json:"FlowId,omitempty" name:"FlowId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateDBResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateDBResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateMigrationRequest struct { + *tchttp.BaseRequest + + // 迁移任务的名称 + MigrateName *string `json:"MigrateName,omitempty" name:"MigrateName"` + + // 迁移类型(1:结构迁移 2:数据迁移 3:增量同步) + MigrateType *uint64 `json:"MigrateType,omitempty" name:"MigrateType"` + + // 迁移源的类型 1:TencentDB for SQLServer 2:云服务器自建SQLServer数据库 4:SQLServer备份还原 5:SQLServer备份还原(COS方式) + SourceType *uint64 `json:"SourceType,omitempty" name:"SourceType"` + + // 迁移源 + Source *MigrateSource `json:"Source,omitempty" name:"Source"` + + // 迁移目标 + Target *MigrateTarget `json:"Target,omitempty" name:"Target"` + + // 迁移DB对象 ,离线迁移不使用(SourceType=4或SourceType=5)。 + MigrateDBSet []*MigrateDB `json:"MigrateDBSet,omitempty" name:"MigrateDBSet" list` +} + +func (r *CreateMigrationRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateMigrationRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type CreateMigrationResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 迁移任务ID + MigrateId *int64 `json:"MigrateId,omitempty" name:"MigrateId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *CreateMigrationResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *CreateMigrationResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DBCreateInfo struct { + + // 数据库名 + DBName *string `json:"DBName,omitempty" name:"DBName"` + + // 字符集。可选值包括:Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, Chinese_PRC_BIN, Chinese_Taiwan_Stroke_CI_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS。不填默认为Chinese_PRC_CI_AS + Charset *string `json:"Charset,omitempty" name:"Charset"` + + // 数据库账号权限信息 + Accounts []*AccountPrivilege `json:"Accounts,omitempty" name:"Accounts" list` + + // 备注 + Remark *string `json:"Remark,omitempty" name:"Remark"` +} + +type DBDetail struct { + + // 数据库名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 字符集 + Charset *string `json:"Charset,omitempty" name:"Charset"` + + // 备注 + Remark *string `json:"Remark,omitempty" name:"Remark"` + + // 数据库创建时间 + CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + + // 数据库状态。1--创建中, 2--运行中, 3--修改中,-1--删除中 + Status *int64 `json:"Status,omitempty" name:"Status"` + + // 数据库账号权限信息 + Accounts []*AccountPrivilege `json:"Accounts,omitempty" name:"Accounts" list` + + // 内部状态。ONLINE表示运行中 + InternalStatus *string `json:"InternalStatus,omitempty" name:"InternalStatus"` +} + +type DBInstance struct { + + // 实例ID + InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + + // 实例名称 + Name *string `json:"Name,omitempty" name:"Name"` + + // 实例所在项目ID + ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` + + // 实例所在地域ID + RegionId *int64 `json:"RegionId,omitempty" name:"RegionId"` + + // 实例所在可用区ID + ZoneId *int64 `json:"ZoneId,omitempty" name:"ZoneId"` + + // 实例所在私有网络ID,基础网络时为 0 + VpcId *int64 `json:"VpcId,omitempty" name:"VpcId"` + + // 实例所在私有网络子网ID,基础网络时为 0 + SubnetId *int64 `json:"SubnetId,omitempty" name:"SubnetId"` + + // 实例状态。取值范围: