@@ -126,6 +126,7 @@ func ResourceTencentCloudElasticsearchInstance() *schema.Resource {
126126 "web_node_type_info" : {
127127 Type : schema .TypeList ,
128128 Optional : true ,
129+ Computed : true ,
129130 Description : "Visual node configuration." ,
130131 Elem : & schema.Resource {
131132 Schema : map [string ]* schema.Schema {
@@ -234,7 +235,13 @@ func ResourceTencentCloudElasticsearchInstance() *schema.Resource {
234235 Optional : true ,
235236 Description : "A mapping of tags to assign to the instance. For tag limits, please refer to [Use Limits](https://intl.cloud.tencent.com/document/product/651/13354)." ,
236237 },
237-
238+ "kibana_public_access" : {
239+ Type : schema .TypeString ,
240+ Optional : true ,
241+ Computed : true ,
242+ ValidateFunc : tccommon .ValidateAllowedStringValue (ES_KIBANA_PUBLIC_ACCESS ),
243+ Description : "Kibana public network access status. Valid values are `OPEN` and `CLOSE`." ,
244+ },
238245 // computed
239246 "elasticsearch_domain" : {
240247 Type : schema .TypeString ,
@@ -412,6 +419,7 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
412419 return err
413420 }
414421
422+ var isUpdate bool
415423 // es acl
416424 esAcl := es.EsAcl {}
417425 if aclMap , ok := helper .InterfacesHeadMap (d , "es_acl" ); ok {
@@ -427,17 +435,31 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
427435 esAcl .WhiteIpList = append (esAcl .WhiteIpList , helper .String (d .(string )))
428436 }
429437 }
438+ isUpdate = true
430439 }
431440
432- err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
433- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , 0 , nil , nil , & esAcl )
434- if errRet != nil {
435- return tccommon .RetryError (errRet )
441+ // KibanaPublicAccess
442+ var kibanaPublicAccess string
443+ if v , ok := d .GetOk ("kibana_public_access" ); ok {
444+ kibanaPublicAccess = v .(string )
445+ isUpdate = true
446+ }
447+ if isUpdate {
448+ err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
449+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , kibanaPublicAccess , 0 , nil , nil , & esAcl )
450+ if errRet != nil {
451+ return tccommon .RetryError (errRet )
452+ }
453+ return nil
454+ })
455+ if err != nil {
456+ return err
457+ }
458+
459+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
460+ if err != nil {
461+ return err
436462 }
437- return nil
438- })
439- if err != nil {
440- return err
441463 }
442464
443465 // tags
@@ -501,6 +523,7 @@ func resourceTencentCloudElasticsearchInstanceRead(d *schema.ResourceData, meta
501523 _ = d .Set ("elasticsearch_port" , instance .EsPort )
502524 _ = d .Set ("kibana_url" , instance .KibanaUrl )
503525 _ = d .Set ("create_time" , instance .CreateTime )
526+ _ = d .Set ("kibana_public_access" , instance .KibanaPublicAccess )
504527
505528 multiZoneInfos := make ([]map [string ]interface {}, 0 , len (instance .MultiZoneInfo ))
506529 for _ , item := range instance .MultiZoneInfo {
@@ -572,7 +595,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
572595 instanceName := d .Get ("instance_name" ).(string )
573596 // Update operation support at most one item at the same time
574597 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
575- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , instanceName , "" , 0 , nil , nil , nil )
598+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , instanceName , "" , "" , 0 , nil , nil , nil )
576599 if errRet != nil {
577600 return tccommon .RetryError (errRet )
578601 }
@@ -581,11 +604,15 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
581604 if err != nil {
582605 return err
583606 }
607+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
608+ if err != nil {
609+ return err
610+ }
584611 }
585612 if d .HasChange ("password" ) {
586613 password := d .Get ("password" ).(string )
587614 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
588- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , password , 0 , nil , nil , nil )
615+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , password , "" , 0 , nil , nil , nil )
589616 if errRet != nil {
590617 return tccommon .RetryError (errRet )
591618 }
@@ -594,8 +621,32 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
594621 if err != nil {
595622 return err
596623 }
624+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
625+ if err != nil {
626+ return err
627+ }
597628 }
598629
630+ // KibanaPublicAccess
631+ if d .HasChange ("kibana_public_access" ) {
632+ if v , ok := d .GetOk ("kibana_public_access" ); ok {
633+ err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
634+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , v .(string ), 0 , nil , nil , nil )
635+ if errRet != nil {
636+ return tccommon .RetryError (errRet )
637+ }
638+ return nil
639+ })
640+ if err != nil {
641+ return err
642+ }
643+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
644+ if err != nil {
645+ return err
646+ }
647+ }
648+
649+ }
599650 if d .HasChange ("version" ) {
600651 version := d .Get ("version" ).(string )
601652 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
@@ -639,7 +690,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
639690 licenseType := d .Get ("license_type" ).(string )
640691 licenseTypeUpgrading := licenseType != "oss"
641692 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
642- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , int64 (basicSecurityType ), nil , nil , nil )
693+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , int64 (basicSecurityType ), nil , nil , nil )
643694 if errRet != nil {
644695 err := errRet .(* sdkErrors.TencentCloudSDKError )
645696 if err .Code == es .INVALIDPARAMETER && licenseTypeUpgrading {
@@ -670,7 +721,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
670721 NodeType : helper .String (value ["node_type" ].(string )),
671722 }
672723 err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
673- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , 0 , nil , info , nil )
724+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , 0 , nil , info , nil )
674725 if errRet != nil {
675726 return tccommon .RetryError (errRet )
676727 }
@@ -709,7 +760,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
709760 nodeInfoList = append (nodeInfoList , & dataDisk )
710761 }
711762 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
712- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , 0 , nodeInfoList , nil , nil )
763+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , 0 , nodeInfoList , nil , nil )
713764 if errRet != nil {
714765 return tccommon .RetryError (errRet )
715766 }
@@ -760,7 +811,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
760811 }
761812
762813 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
763- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , 0 , nil , nil , & esAcl )
814+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , 0 , nil , nil , & esAcl )
764815 if errRet != nil {
765816 return tccommon .RetryError (errRet )
766817 }
@@ -769,6 +820,10 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
769820 if err != nil {
770821 return err
771822 }
823+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
824+ if err != nil {
825+ return err
826+ }
772827 }
773828
774829 d .Partial (false )
0 commit comments