Skip to content

Commit a974bb6

Browse files
marcosumalantoli
andauthored
chore: Upgrades private_link_endpoint resource to auto-generated SDK. (#1901)
* chore: Upgrades private_link_endpoint resource to auto-generated SDK. * adds migration test. * Update internal/service/privatelinkendpoint/resource_privatelink_endpoint_migration_test.go Co-authored-by: Leo Antoli <[email protected]> * Update internal/service/privatelinkendpoint/resource_privatelink_endpoint_migration_test.go Co-authored-by: Leo Antoli <[email protected]> * updates method name. * config mig network group * removes old API usage in the test. --------- Co-authored-by: Leo Antoli <[email protected]>
1 parent 5117c14 commit a974bb6

File tree

6 files changed

+177
-82
lines changed

6 files changed

+177
-82
lines changed

.github/workflows/migration-tests.yml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ jobs:
6464
federation: ${{ steps.filter.outputs.federation == 'true' || env.mustTrigger == 'true' }}
6565
search_deployment: ${{ steps.filter.outputs.search_deployment == 'true' || env.mustTrigger == 'true' }}
6666
generic: ${{ steps.filter.outputs.generic == 'true' || env.mustTrigger == 'true' }}
67+
network: ${{ steps.filter.outputs.network == 'true' || env.mustTrigger == 'true' }}
6768
steps:
6869
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
6970
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd
@@ -106,6 +107,13 @@ jobs:
106107
- 'internal/service/backupcompliancepolicy/*.go'
107108
- 'internal/service/auditing/*.go'
108109
- 'internal/service/x509authenticationdatabaseuser/*.go'
110+
network:
111+
- 'internal/service/networkcontainer/*.go'
112+
- 'internal/service/networkpeering/*.go'
113+
- 'internal/service/privateendpointregionalmode/*.go'
114+
- 'internal/service/privatelinkendpoint/*.go'
115+
- 'internal/service/privatelinkendpointservice/*.go'
116+
- 'internal/service/privatelinkendpointservicedatafederationonlinearchive/*.go'
109117
110118
project:
111119
needs: [ change-detection, get-provider-version ]
@@ -329,4 +337,37 @@ jobs:
329337
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
330338
TEST_REGEX: "^TestAccMigrationGeneric"
331339
run: make testacc
332-
340+
341+
network:
342+
needs: [ change-detection, get-provider-version ]
343+
if: ${{ needs.change-detection.outputs.network == 'true' || inputs.test_group == 'network' }}
344+
runs-on: ubuntu-latest
345+
steps:
346+
- name: Checkout
347+
uses: actions/checkout@v4
348+
- name: Set up Go
349+
uses: actions/setup-go@v5
350+
with:
351+
go-version-file: 'go.mod'
352+
- uses: hashicorp/setup-terraform@v3
353+
with:
354+
terraform_version: ${{ env.terraform_version }}
355+
terraform_wrapper: false
356+
- name: Migration Tests
357+
env:
358+
MONGODB_ATLAS_PUBLIC_KEY: ${{ secrets.MONGODB_ATLAS_PUBLIC_KEY_CLOUD_DEV_NETWORK }}
359+
MONGODB_ATLAS_PRIVATE_KEY: ${{ secrets.MONGODB_ATLAS_PRIVATE_KEY_CLOUD_DEV_NETWORK }}
360+
MONGODB_ATLAS_ORG_ID: ${{ vars.MONGODB_ATLAS_ORG_ID_CLOUD_DEV_NETWORK }}
361+
MONGODB_ATLAS_PROJECT_ID: ${{ vars.MONGODB_ATLAS_PROJECT_ID_CLOUD_DEV_NETWORK }}
362+
MONGODB_ATLAS_BASE_URL: ${{ vars.MONGODB_ATLAS_BASE_URL }}
363+
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
364+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
365+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }}
366+
AWS_REGION: ${{ vars.AWS_REGION }}
367+
AWS_SECURITY_GROUP_1: ${{ vars.AWS_SECURITY_GROUP_1 }}
368+
AWS_SECURITY_GROUP_2: ${{ vars.AWS_SECURITY_GROUP_2 }}
369+
AWS_VPC_CIDR_BLOCK: ${{ vars.AWS_VPC_CIDR_BLOCK }}
370+
AWS_VPC_ID: ${{ vars.AWS_VPC_ID }}
371+
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
372+
TEST_REGEX: "^TestAccMigrationNetwork"
373+
run: make testacc

internal/service/privatelinkendpoint/data_source_privatelink_endpoint.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212

1313
func DataSource() *schema.Resource {
1414
return &schema.Resource{
15-
ReadContext: dataSourceMongoDBAtlasPrivateLinkEndpointRead,
15+
ReadContext: dataSourceRead,
1616
Schema: map[string]*schema.Schema{
1717
"project_id": {
1818
Type: schema.TypeString,
@@ -85,65 +85,65 @@ func DataSource() *schema.Resource {
8585
}
8686
}
8787

88-
func dataSourceMongoDBAtlasPrivateLinkEndpointRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
88+
func dataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
8989
// Get client connection.
90-
conn := meta.(*config.MongoDBClient).Atlas
90+
connV2 := meta.(*config.MongoDBClient).AtlasV2
9191

9292
projectID := d.Get("project_id").(string)
9393
privateLinkID := conversion.GetEncodedID(d.Get("private_link_id").(string), "private_link_id")
9494
providerName := d.Get("provider_name").(string)
9595

96-
privateEndpoint, _, err := conn.PrivateEndpoints.Get(ctx, projectID, providerName, privateLinkID)
96+
privateEndpoint, _, err := connV2.PrivateEndpointServicesApi.GetPrivateEndpointService(ctx, projectID, providerName, privateLinkID).Execute()
9797
if err != nil {
9898
return diag.FromErr(fmt.Errorf(errorPrivateLinkEndpointsRead, privateLinkID, err))
9999
}
100100

101-
if err := d.Set("private_link_id", privateEndpoint.ID); err != nil {
101+
if err := d.Set("private_link_id", privateEndpoint.GetId()); err != nil {
102102
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "private_link_id", privateLinkID, err))
103103
}
104104

105-
if err := d.Set("endpoint_service_name", privateEndpoint.EndpointServiceName); err != nil {
105+
if err := d.Set("endpoint_service_name", privateEndpoint.GetEndpointServiceName()); err != nil {
106106
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "endpoint_service_name", privateLinkID, err))
107107
}
108108

109-
if err := d.Set("error_message", privateEndpoint.ErrorMessage); err != nil {
109+
if err := d.Set("error_message", privateEndpoint.GetErrorMessage()); err != nil {
110110
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "error_message", privateLinkID, err))
111111
}
112112

113-
if err := d.Set("interface_endpoints", privateEndpoint.InterfaceEndpoints); err != nil {
113+
if err := d.Set("interface_endpoints", privateEndpoint.GetInterfaceEndpoints()); err != nil {
114114
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "interface_endpoints", privateLinkID, err))
115115
}
116116

117-
if err := d.Set("private_endpoints", privateEndpoint.PrivateEndpoints); err != nil {
117+
if err := d.Set("private_endpoints", privateEndpoint.GetPrivateEndpoints()); err != nil {
118118
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "private_endpoints", privateLinkID, err))
119119
}
120120

121-
if err := d.Set("private_link_service_name", privateEndpoint.PrivateLinkServiceName); err != nil {
121+
if err := d.Set("private_link_service_name", privateEndpoint.GetPrivateLinkServiceName()); err != nil {
122122
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "private_link_service_name", privateLinkID, err))
123123
}
124124

125-
if err := d.Set("private_link_service_resource_id", privateEndpoint.PrivateLinkServiceResourceID); err != nil {
125+
if err := d.Set("private_link_service_resource_id", privateEndpoint.GetPrivateLinkServiceResourceId()); err != nil {
126126
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "private_link_service_resource_id", privateLinkID, err))
127127
}
128128

129-
if err := d.Set("status", privateEndpoint.Status); err != nil {
129+
if err := d.Set("status", privateEndpoint.GetStatus()); err != nil {
130130
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "status", privateLinkID, err))
131131
}
132132

133-
if err := d.Set("endpoint_group_names", privateEndpoint.EndpointGroupNames); err != nil {
133+
if err := d.Set("endpoint_group_names", privateEndpoint.GetEndpointGroupNames()); err != nil {
134134
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "endpoint_group_names", privateLinkID, err))
135135
}
136136

137-
if err := d.Set("region_name", privateEndpoint.RegionName); err != nil {
137+
if err := d.Set("region_name", privateEndpoint.GetRegionName()); err != nil {
138138
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "region_name", privateLinkID, err))
139139
}
140140

141-
if err := d.Set("service_attachment_names", privateEndpoint.ServiceAttachmentNames); err != nil {
141+
if err := d.Set("service_attachment_names", privateEndpoint.GetServiceAttachmentNames()); err != nil {
142142
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "service_attachment_names", privateLinkID, err))
143143
}
144144

145145
d.SetId(conversion.EncodeStateID(map[string]string{
146-
"private_link_id": privateEndpoint.ID,
146+
"private_link_id": privateEndpoint.GetId(),
147147
"project_id": projectID,
148148
"provider_name": providerName,
149149
}))

internal/service/privatelinkendpoint/data_source_privatelink_endpoint_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ func TestAccNetworkDSPrivateLinkEndpoint_basic(t *testing.T) {
2121
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
2222
Steps: []resource.TestStep{
2323
{
24-
Config: testAccMongoDBAtlasPrivateLinkEndpointDataSourceConfig(projectID, providerName, region),
24+
Config: configDS(projectID, providerName, region),
2525
Check: resource.ComposeTestCheckFunc(
26-
testAccCheckMongoDBAtlasPrivateLinkEndpointExists(resourceName),
26+
checkExists(resourceName),
2727
resource.TestCheckResourceAttrSet(resourceName, "project_id"),
2828
resource.TestCheckResourceAttrSet(resourceName, "private_link_id"),
2929
),
@@ -32,7 +32,7 @@ func TestAccNetworkDSPrivateLinkEndpoint_basic(t *testing.T) {
3232
})
3333
}
3434

35-
func testAccMongoDBAtlasPrivateLinkEndpointDataSourceConfig(projectID, providerName, region string) string {
35+
func configDS(projectID, providerName, region string) string {
3636
return fmt.Sprintf(`
3737
resource "mongodbatlas_privatelink_endpoint" "test" {
3838
project_id = "%s"

internal/service/privatelinkendpoint/resource_privatelink_endpoint.go

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1616
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
1717
"github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
18-
matlas "go.mongodb.org/atlas/mongodbatlas"
18+
"go.mongodb.org/atlas-sdk/v20231115005/admin"
1919
)
2020

2121
const (
@@ -27,11 +27,11 @@ const (
2727

2828
func Resource() *schema.Resource {
2929
return &schema.Resource{
30-
CreateContext: resourceMongoDBAtlasPrivateLinkEndpointCreate,
31-
ReadContext: resourceMongoDBAtlasPrivateLinkEndpointRead,
32-
DeleteContext: resourceMongoDBAtlasPrivateLinkEndpointDelete,
30+
CreateContext: resourceCreate,
31+
ReadContext: resourceRead,
32+
DeleteContext: resourceDelete,
3333
Importer: &schema.ResourceImporter{
34-
StateContext: resourceMongoDBAtlasPrivateLinkEndpointImportState,
34+
StateContext: resourceImport,
3535
},
3636
Schema: map[string]*schema.Schema{
3737
"project_id": {
@@ -114,26 +114,26 @@ func Resource() *schema.Resource {
114114
}
115115
}
116116

117-
func resourceMongoDBAtlasPrivateLinkEndpointCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
118-
conn := meta.(*config.MongoDBClient).Atlas
117+
func resourceCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
118+
connV2 := meta.(*config.MongoDBClient).AtlasV2
119119
projectID := d.Get("project_id").(string)
120120
providerName := d.Get("provider_name").(string)
121121
region := d.Get("region").(string)
122122

123-
request := &matlas.PrivateEndpointConnection{
123+
request := &admin.CloudProviderEndpointServiceRequest{
124124
ProviderName: providerName,
125125
Region: region,
126126
}
127127

128-
privateEndpointConn, _, err := conn.PrivateEndpoints.Create(ctx, projectID, request)
128+
privateEndpoint, _, err := connV2.PrivateEndpointServicesApi.CreatePrivateEndpointService(ctx, projectID, request).Execute()
129129
if err != nil {
130130
return diag.FromErr(fmt.Errorf(errorPrivateLinkEndpointsCreate, err))
131131
}
132132

133133
stateConf := &retry.StateChangeConf{
134134
Pending: []string{"INITIATING", "DELETING"},
135135
Target: []string{"WAITING_FOR_USER", "FAILED", "DELETED", "AVAILABLE"},
136-
Refresh: resourcePrivateLinkEndpointRefreshFunc(ctx, conn, projectID, providerName, privateEndpointConn.ID),
136+
Refresh: refreshFunc(ctx, connV2, projectID, providerName, privateEndpoint.GetId()),
137137
Timeout: d.Timeout(schema.TimeoutCreate),
138138
MinTimeout: 5 * time.Second,
139139
Delay: 3 * time.Second,
@@ -146,25 +146,25 @@ func resourceMongoDBAtlasPrivateLinkEndpointCreate(ctx context.Context, d *schem
146146
}
147147

148148
d.SetId(conversion.EncodeStateID(map[string]string{
149-
"private_link_id": privateEndpointConn.ID,
149+
"private_link_id": privateEndpoint.GetId(),
150150
"project_id": projectID,
151151
"provider_name": providerName,
152152
"region": region,
153153
}))
154154

155-
return resourceMongoDBAtlasPrivateLinkEndpointRead(ctx, d, meta)
155+
return resourceRead(ctx, d, meta)
156156
}
157157

158-
func resourceMongoDBAtlasPrivateLinkEndpointRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
159-
conn := meta.(*config.MongoDBClient).Atlas
158+
func resourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
159+
connV2 := meta.(*config.MongoDBClient).AtlasV2
160160

161161
ids := conversion.DecodeStateID(d.Id())
162162
projectID := ids["project_id"]
163163
privateLinkID := ids["private_link_id"]
164164
providerName := ids["provider_name"]
165165
region := ids["region"]
166166

167-
privateEndpoint, resp, err := conn.PrivateEndpoints.Get(context.Background(), projectID, providerName, privateLinkID)
167+
privateEndpoint, resp, err := connV2.PrivateEndpointServicesApi.GetPrivateEndpointService(context.Background(), projectID, providerName, privateLinkID).Execute()
168168
if err != nil {
169169
if resp != nil && resp.StatusCode == http.StatusNotFound {
170170
d.SetId("")
@@ -174,35 +174,35 @@ func resourceMongoDBAtlasPrivateLinkEndpointRead(ctx context.Context, d *schema.
174174
return diag.FromErr(fmt.Errorf(errorPrivateLinkEndpointsRead, privateLinkID, err))
175175
}
176176

177-
if err := d.Set("private_link_id", privateEndpoint.ID); err != nil {
177+
if err := d.Set("private_link_id", privateEndpoint.GetId()); err != nil {
178178
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "private_link_id", privateLinkID, err))
179179
}
180180

181-
if err := d.Set("endpoint_service_name", privateEndpoint.EndpointServiceName); err != nil {
181+
if err := d.Set("endpoint_service_name", privateEndpoint.GetEndpointServiceName()); err != nil {
182182
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "endpoint_service_name", privateLinkID, err))
183183
}
184184

185-
if err := d.Set("error_message", privateEndpoint.ErrorMessage); err != nil {
185+
if err := d.Set("error_message", privateEndpoint.GetErrorMessage()); err != nil {
186186
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "error_message", privateLinkID, err))
187187
}
188188

189-
if err := d.Set("interface_endpoints", privateEndpoint.InterfaceEndpoints); err != nil {
189+
if err := d.Set("interface_endpoints", privateEndpoint.GetInterfaceEndpoints()); err != nil {
190190
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "interface_endpoints", privateLinkID, err))
191191
}
192192

193-
if err := d.Set("private_endpoints", privateEndpoint.PrivateEndpoints); err != nil {
193+
if err := d.Set("private_endpoints", privateEndpoint.GetPrivateEndpoints()); err != nil {
194194
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "interface_endpoints", privateLinkID, err))
195195
}
196196

197-
if err := d.Set("private_link_service_name", privateEndpoint.PrivateLinkServiceName); err != nil {
197+
if err := d.Set("private_link_service_name", privateEndpoint.GetPrivateLinkServiceName()); err != nil {
198198
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "interface_endpoints", privateLinkID, err))
199199
}
200200

201-
if err := d.Set("private_link_service_resource_id", privateEndpoint.PrivateLinkServiceResourceID); err != nil {
201+
if err := d.Set("private_link_service_resource_id", privateEndpoint.GetPrivateLinkServiceResourceId()); err != nil {
202202
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "interface_endpoints", privateLinkID, err))
203203
}
204204

205-
if err := d.Set("status", privateEndpoint.Status); err != nil {
205+
if err := d.Set("status", privateEndpoint.GetStatus()); err != nil {
206206
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "status", privateLinkID, err))
207207
}
208208

@@ -214,32 +214,32 @@ func resourceMongoDBAtlasPrivateLinkEndpointRead(ctx context.Context, d *schema.
214214
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "region", privateLinkID, err))
215215
}
216216

217-
if err := d.Set("endpoint_group_names", privateEndpoint.EndpointGroupNames); err != nil {
217+
if err := d.Set("endpoint_group_names", privateEndpoint.GetEndpointGroupNames()); err != nil {
218218
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "endpoint_group_names", privateLinkID, err))
219219
}
220220

221-
if err := d.Set("region_name", privateEndpoint.RegionName); err != nil {
221+
if err := d.Set("region_name", privateEndpoint.GetRegionName()); err != nil {
222222
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "region_name", privateLinkID, err))
223223
}
224224

225-
if err := d.Set("service_attachment_names", privateEndpoint.ServiceAttachmentNames); err != nil {
225+
if err := d.Set("service_attachment_names", privateEndpoint.GetServiceAttachmentNames()); err != nil {
226226
return diag.FromErr(fmt.Errorf(ErrorPrivateLinkEndpointsSetting, "service_attachment_names", privateLinkID, err))
227227
}
228228

229229
return nil
230230
}
231231

232-
func resourceMongoDBAtlasPrivateLinkEndpointDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
233-
conn := meta.(*config.MongoDBClient).Atlas
232+
func resourceDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
233+
connV2 := meta.(*config.MongoDBClient).AtlasV2
234234

235235
ids := conversion.DecodeStateID(d.Id())
236236
privateLinkID := ids["private_link_id"]
237237
projectID := ids["project_id"]
238238
providerName := ids["provider_name"]
239239

240-
resp, err := conn.PrivateEndpoints.Delete(ctx, projectID, providerName, privateLinkID)
240+
_, resp, err := connV2.PrivateEndpointServicesApi.DeletePrivateEndpointService(ctx, projectID, providerName, privateLinkID).Execute()
241241
if err != nil {
242-
if resp.Response.StatusCode == 404 {
242+
if resp.StatusCode == 404 {
243243
return nil
244244
}
245245

@@ -251,7 +251,7 @@ func resourceMongoDBAtlasPrivateLinkEndpointDelete(ctx context.Context, d *schem
251251
stateConf := &retry.StateChangeConf{
252252
Pending: []string{"DELETING"},
253253
Target: []string{"DELETED", "FAILED"},
254-
Refresh: resourcePrivateLinkEndpointRefreshFunc(ctx, conn, projectID, providerName, privateLinkID),
254+
Refresh: refreshFunc(ctx, connV2, projectID, providerName, privateLinkID),
255255
Timeout: d.Timeout(schema.TimeoutDelete),
256256
MinTimeout: 5 * time.Second,
257257
Delay: 3 * time.Second,
@@ -265,7 +265,7 @@ func resourceMongoDBAtlasPrivateLinkEndpointDelete(ctx context.Context, d *schem
265265
return nil
266266
}
267267

268-
func resourceMongoDBAtlasPrivateLinkEndpointImportState(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
268+
func resourceImport(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
269269
conn := meta.(*config.MongoDBClient).Atlas
270270

271271
parts := strings.Split(d.Id(), "-")
@@ -304,21 +304,26 @@ func resourceMongoDBAtlasPrivateLinkEndpointImportState(ctx context.Context, d *
304304
return []*schema.ResourceData{d}, nil
305305
}
306306

307-
func resourcePrivateLinkEndpointRefreshFunc(ctx context.Context, client *matlas.Client, projectID, providerName, privateLinkID string) retry.StateRefreshFunc {
307+
func refreshFunc(ctx context.Context, client *admin.APIClient, projectID, providerName, privateLinkID string) retry.StateRefreshFunc {
308308
return func() (any, string, error) {
309-
p, resp, err := client.PrivateEndpoints.Get(ctx, projectID, providerName, privateLinkID)
309+
p, resp, err := client.PrivateEndpointServicesApi.GetPrivateEndpointService(ctx, projectID, providerName, privateLinkID).Execute()
310310
if err != nil {
311-
if resp.Response.StatusCode == 404 {
311+
if resp.StatusCode == 404 {
312312
return "", "DELETED", nil
313313
}
314314

315315
return nil, "REJECTED", err
316316
}
317317

318-
if p.Status != "WAITING_FOR_USER" {
319-
return "", p.Status, nil
318+
status := ""
319+
if _, ok := p.GetStatusOk(); ok {
320+
status = p.GetStatus()
321+
}
322+
323+
if status != "WAITING_FOR_USER" {
324+
return "", status, nil
320325
}
321326

322-
return p, p.Status, nil
327+
return p, status, nil
323328
}
324329
}

0 commit comments

Comments
 (0)