in alibabacloudstack/resource_apsarastack_dmsenterprise_instance.go [262:362]
func resourceAlibabacloudStackDmsEnterpriseInstanceUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(*connectivity.AlibabacloudStackClient)
parts, err := ParseResourceId(d.Id(), 2)
if err != nil {
return errmsgs.WrapError(err)
}
update := false
request := map[string]interface{}{
"Host": parts[0],
"Port": parts[1],
}
if !d.IsNewResource() && d.HasChange("database_password") {
update = true
}
request["DatabasePassword"] = d.Get("database_password")
if !d.IsNewResource() && d.HasChange("database_user") {
update = true
}
request["DatabaseUser"] = d.Get("database_user")
if d.HasChange("dba_id") {
update = true
}
request["DbaId"] = d.Get("dba_id")
if !d.IsNewResource() && d.HasChange("env_type") {
update = true
}
request["EnvType"] = d.Get("env_type")
if !d.IsNewResource() && d.HasChange("export_timeout") {
update = true
}
request["ExportTimeout"] = d.Get("export_timeout")
if d.HasChange("instance_id") {
update = true
}
request["InstanceId"] = d.Get("instance_id")
if !d.IsNewResource() && d.HasChanges("instance_name", "instance_alias") {
update = true
request["InstanceAlias"] = connectivity.GetResourceData(d, "instance_name", "instance_alias").(string)
if err := errmsgs.CheckEmpty(request["InstanceAlias"], schema.TypeString, "instance_name", "instance_alias"); err != nil {
return errmsgs.WrapError(err)
}
}
if !d.IsNewResource() && d.HasChange("instance_source") {
update = true
}
request["InstanceSource"] = d.Get("instance_source")
if !d.IsNewResource() && d.HasChange("instance_type") {
update = true
}
request["InstanceType"] = d.Get("instance_type")
if !d.IsNewResource() && d.HasChange("query_timeout") {
update = true
}
request["QueryTimeout"] = d.Get("query_timeout")
if d.HasChange("safe_rule_id") {
update = true
}
request["SafeRuleId"] = d.Get("safe_rule_id")
if !d.IsNewResource() && d.HasChange("data_link_name") {
update = true
request["DataLinkName"] = d.Get("data_link_name")
}
if !d.IsNewResource() && d.HasChange("ddl_online") {
update = true
request["DdlOnline"] = d.Get("ddl_online")
}
if !d.IsNewResource() && d.HasChange("ecs_instance_id") {
update = true
request["EcsInstanceId"] = d.Get("ecs_instance_id")
}
if !d.IsNewResource() && d.HasChange("ecs_region") {
update = true
request["EcsRegion"] = d.Get("ecs_region")
}
if !d.IsNewResource() && d.HasChange("sid") {
update = true
request["Sid"] = d.Get("sid")
}
if !d.IsNewResource() && d.HasChange("use_dsql") {
update = true
request["UseDsql"] = d.Get("use_dsql")
}
if !d.IsNewResource() && d.HasChange("vpc_id") {
update = true
request["VpcId"] = d.Get("vpc_id")
}
if update {
if _, ok := d.GetOkExists("skip_test"); ok {
request["SkipTest"] = d.Get("skip_test")
}
if _, ok := d.GetOk("tid"); ok {
request["Tid"] = d.Get("tid")
}
action := "UpdateInstance"
_, err = client.DoTeaRequest("POST", "dms-enterprise", "2018-11-01", action, "", nil, nil, request)
if err != nil {
return err
}
}
return nil
}