@@ -242,6 +242,13 @@ func ResourceTencentCloudElasticsearchInstance() *schema.Resource {
242242 ValidateFunc : tccommon .ValidateAllowedStringValue (ES_KIBANA_PUBLIC_ACCESS ),
243243 Description : "Kibana public network access status. Valid values are `OPEN` and `CLOSE`." ,
244244 },
245+ "kibana_private_access" : {
246+ Type : schema .TypeString ,
247+ Optional : true ,
248+ Computed : true ,
249+ ValidateFunc : tccommon .ValidateAllowedStringValue (ES_PRIVATE_ACCESS ),
250+ Description : "Kibana private network access status. Valid values are `OPEN` and `CLOSE`." ,
251+ },
245252 "cos_backup" : {
246253 Type : schema .TypeList ,
247254 Optional : true ,
@@ -456,6 +463,7 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
456463
457464 //internal version: replace setTag begin, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation.
458465 //internal version: replace setTag end, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation.
466+ var actualKibanaPrivateAccess string
459467 instanceEmptyRetries := 5
460468 err = resource .Retry (15 * tccommon .ReadRetryTimeout , func () * resource.RetryError {
461469 instance , errRet := elasticsearchService .DescribeInstanceById (ctx , instanceId )
@@ -472,13 +480,15 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
472480 if * instance .Status != ES_INSTANCE_STATUS_NORMAL {
473481 return resource .RetryableError (fmt .Errorf ("elasticsearch instance status is %v, retrying" , * instance .Status ))
474482 }
483+ if instance .KibanaPrivateAccess != nil {
484+ actualKibanaPrivateAccess = * instance .KibanaPrivateAccess
485+ }
475486 return nil
476487 })
477488 if err != nil {
478489 return err
479490 }
480491
481- var isUpdate bool
482492 // es acl
483493 esAcl := es.EsAcl {}
484494 if aclMap , ok := helper .InterfacesHeadMap (d , "es_acl" ); ok {
@@ -494,9 +504,24 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
494504 esAcl .WhiteIpList = append (esAcl .WhiteIpList , helper .String (d .(string )))
495505 }
496506 }
497- isUpdate = true
507+ err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
508+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nil , nil , & esAcl , nil , nil )
509+ if errRet != nil {
510+ return tccommon .RetryError (errRet )
511+ }
512+ return nil
513+ })
514+ if err != nil {
515+ return err
516+ }
517+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
518+ if err != nil {
519+ return err
520+ }
498521 }
499522
523+ var isUpdate bool
524+
500525 // KibanaPublicAccess
501526 var kibanaPublicAccess string
502527 if v , ok := d .GetOk ("kibana_public_access" ); ok {
@@ -508,9 +533,18 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
508533 }
509534 }
510535
536+ var kibanaPrivateAccess string
537+ if v , ok := d .GetOk ("kibana_private_access" ); ok {
538+ if actualKibanaPrivateAccess != "" && actualKibanaPrivateAccess != v .(string ) {
539+ kibanaPrivateAccess = v .(string )
540+ isUpdate = true
541+ }
542+
543+ }
544+
511545 if isUpdate {
512546 err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
513- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , kibanaPublicAccess , "" , 0 , nil , nil , & esAcl , nil , nil )
547+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , kibanaPublicAccess , kibanaPrivateAccess , "" , 0 , nil , nil , nil , nil , nil )
514548 if errRet != nil {
515549 return tccommon .RetryError (errRet )
516550 }
@@ -556,7 +590,7 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
556590
557591 if isUpdate {
558592 err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
559- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , publicAccess , 0 , nil , nil , nil , nil , & esPublicAcl )
593+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , publicAccess , 0 , nil , nil , nil , nil , & esPublicAcl )
560594 if errRet != nil {
561595 return tccommon .RetryError (errRet )
562596 }
@@ -586,7 +620,7 @@ func resourceTencentCloudElasticsearchInstanceCreate(d *schema.ResourceData, met
586620 }
587621
588622 err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
589- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , 0 , nil , nil , nil , & cosBackup , nil )
623+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nil , nil , nil , & cosBackup , nil )
590624 if errRet != nil {
591625 return tccommon .RetryError (errRet )
592626 }
@@ -666,6 +700,7 @@ func resourceTencentCloudElasticsearchInstanceRead(d *schema.ResourceData, meta
666700 _ = d .Set ("kibana_url" , instance .KibanaUrl )
667701 _ = d .Set ("create_time" , instance .CreateTime )
668702 _ = d .Set ("kibana_public_access" , instance .KibanaPublicAccess )
703+ _ = d .Set ("kibana_private_access" , instance .KibanaPrivateAccess )
669704
670705 multiZoneInfos := make ([]map [string ]interface {}, 0 , len (instance .MultiZoneInfo ))
671706 for _ , item := range instance .MultiZoneInfo {
@@ -770,7 +805,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
770805 instanceName := d .Get ("instance_name" ).(string )
771806 // Update operation support at most one item at the same time
772807 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
773- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , instanceName , "" , "" , "" , 0 , nil , nil , nil , nil , nil )
808+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , instanceName , "" , "" , "" , "" , 0 , nil , nil , nil , nil , nil )
774809 if errRet != nil {
775810 return tccommon .RetryError (errRet )
776811 }
@@ -787,7 +822,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
787822 if d .HasChange ("password" ) {
788823 password := d .Get ("password" ).(string )
789824 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
790- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , password , "" , "" , 0 , nil , nil , nil , nil , nil )
825+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , password , "" , "" , "" , 0 , nil , nil , nil , nil , nil )
791826 if errRet != nil {
792827 return tccommon .RetryError (errRet )
793828 }
@@ -806,7 +841,27 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
806841 if d .HasChange ("kibana_public_access" ) {
807842 if v , ok := d .GetOk ("kibana_public_access" ); ok {
808843 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
809- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , v .(string ), "" , 0 , nil , nil , nil , nil , nil )
844+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , v .(string ), "" , "" , 0 , nil , nil , nil , nil , nil )
845+ if errRet != nil {
846+ return tccommon .RetryError (errRet )
847+ }
848+ return nil
849+ })
850+ if err != nil {
851+ return err
852+ }
853+ err = tencentCloudElasticsearchInstanceUpgradeWaiting (ctx , & elasticsearchService , instanceId )
854+ if err != nil {
855+ return err
856+ }
857+ }
858+
859+ }
860+ // KibanaPrivateAccess
861+ if d .HasChange ("kibana_private_access" ) {
862+ if v , ok := d .GetOk ("kibana_private_access" ); ok {
863+ err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
864+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , v .(string ), "" , 0 , nil , nil , nil , nil , nil )
810865 if errRet != nil {
811866 return tccommon .RetryError (errRet )
812867 }
@@ -865,7 +920,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
865920 licenseType := d .Get ("license_type" ).(string )
866921 licenseTypeUpgrading := licenseType != "oss"
867922 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
868- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , int64 (basicSecurityType ), nil , nil , nil , nil , nil )
923+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , int64 (basicSecurityType ), nil , nil , nil , nil , nil )
869924 if errRet != nil {
870925 err := errRet .(* sdkErrors.TencentCloudSDKError )
871926 if err .Code == es .INVALIDPARAMETER && licenseTypeUpgrading {
@@ -896,7 +951,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
896951 NodeType : helper .String (value ["node_type" ].(string )),
897952 }
898953 err = resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
899- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , 0 , nil , info , nil , nil , nil )
954+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nil , info , nil , nil , nil )
900955 if errRet != nil {
901956 return tccommon .RetryError (errRet )
902957 }
@@ -935,7 +990,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
935990 nodeInfoList = append (nodeInfoList , & dataDisk )
936991 }
937992 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
938- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , 0 , nodeInfoList , nil , nil , nil , nil )
993+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nodeInfoList , nil , nil , nil , nil )
939994 if errRet != nil {
940995 return tccommon .RetryError (errRet )
941996 }
@@ -972,7 +1027,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
9721027 }
9731028 }
9741029 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
975- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , publicAccess , 0 , nil , nil , nil , nil , & esPublicAcl )
1030+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , publicAccess , 0 , nil , nil , nil , nil , & esPublicAcl )
9761031 if errRet != nil {
9771032 return tccommon .RetryError (errRet )
9781033 }
@@ -1023,7 +1078,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
10231078 }
10241079
10251080 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
1026- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , 0 , nil , nil , & esAcl , nil , nil )
1081+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nil , nil , & esAcl , nil , nil )
10271082 if errRet != nil {
10281083 return tccommon .RetryError (errRet )
10291084 }
@@ -1053,7 +1108,7 @@ func resourceTencentCloudElasticsearchInstanceUpdate(d *schema.ResourceData, met
10531108 }
10541109
10551110 err := resource .Retry (tccommon .WriteRetryTimeout * 2 , func () * resource.RetryError {
1056- errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , 0 , nil , nil , nil , & cosBackup , nil )
1111+ errRet := elasticsearchService .UpdateInstance (ctx , instanceId , "" , "" , "" , "" , "" , 0 , nil , nil , nil , & cosBackup , nil )
10571112 if errRet != nil {
10581113 return tccommon .RetryError (errRet )
10591114 }
0 commit comments