@@ -20,7 +20,7 @@ import (
20
20
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
21
21
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/validate"
22
22
"github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
23
- matlas "go.mongodb.org/atlas/mongodbatlas "
23
+ "go.mongodb.org/atlas-sdk/v20231115002/admin "
24
24
)
25
25
26
26
const (
@@ -143,13 +143,13 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
143
143
return
144
144
}
145
145
146
- conn := r .Client .Atlas
146
+ connV2 := r .Client .AtlasV2
147
147
projectID := projectIPAccessListModel .ProjectID .ValueString ()
148
148
stateConf := & retry.StateChangeConf {
149
149
Pending : []string {"pending" },
150
150
Target : []string {"created" , "failed" },
151
151
Refresh : func () (any , string , error ) {
152
- _ , _ , err := conn . ProjectIPAccessList . Create (ctx , projectID , newMongoDBProjectIPAccessList (projectIPAccessListModel ))
152
+ _ , _ , err := connV2 . ProjectIPAccessListApi . CreateProjectIpAccessList (ctx , projectID , newMongoDBProjectIPAccessList (projectIPAccessListModel )). Execute ( )
153
153
if err != nil {
154
154
if strings .Contains (err .Error (), "Unexpected error" ) ||
155
155
strings .Contains (err .Error (), "UNEXPECTED_ERROR" ) ||
@@ -166,7 +166,7 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
166
166
accessListEntry = projectIPAccessListModel .AWSSecurityGroup .ValueString ()
167
167
}
168
168
169
- entry , exists , err := isEntryInProjectAccessList (ctx , conn , projectID , accessListEntry )
169
+ entry , exists , err := isEntryInProjectAccessList (ctx , connV2 , projectID , accessListEntry )
170
170
if err != nil {
171
171
if strings .Contains (err .Error (), "500" ) {
172
172
return nil , "pending" , nil
@@ -194,7 +194,7 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
194
194
return
195
195
}
196
196
197
- entry , ok := accessList .(* matlas. ProjectIPAccessList )
197
+ entry , ok := accessList .(* admin. NetworkPermissionEntry )
198
198
if ! ok {
199
199
resp .Diagnostics .AddError ("error" , errorAccessListCreate )
200
200
return
@@ -207,37 +207,37 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
207
207
}
208
208
}
209
209
210
- func newTFProjectIPAccessListModel (projectIPAccessListModel * tfProjectIPAccessListModel , projectIPAccessList * matlas. ProjectIPAccessList ) * tfProjectIPAccessListModel {
211
- entry := projectIPAccessList .IPAddress
212
- if projectIPAccessList .CIDRBlock != "" {
213
- entry = projectIPAccessList .CIDRBlock
214
- } else if projectIPAccessList .AwsSecurityGroup != "" {
215
- entry = projectIPAccessList .AwsSecurityGroup
210
+ func newTFProjectIPAccessListModel (projectIPAccessListModel * tfProjectIPAccessListModel , projectIPAccessList * admin. NetworkPermissionEntry ) * tfProjectIPAccessListModel {
211
+ entry := projectIPAccessList .GetIpAddress ()
212
+ if projectIPAccessList .GetCidrBlock () != "" {
213
+ entry = projectIPAccessList .GetCidrBlock ()
214
+ } else if projectIPAccessList .GetAwsSecurityGroup () != "" {
215
+ entry = projectIPAccessList .GetAwsSecurityGroup ()
216
216
}
217
217
218
218
id := conversion .EncodeStateID (map [string ]string {
219
219
"entry" : entry ,
220
- "project_id" : projectIPAccessList .GroupID ,
220
+ "project_id" : projectIPAccessList .GetGroupId () ,
221
221
})
222
222
223
223
return & tfProjectIPAccessListModel {
224
224
ID : types .StringValue (id ),
225
- ProjectID : types .StringValue (projectIPAccessList .GroupID ),
226
- CIDRBlock : types .StringValue (projectIPAccessList .CIDRBlock ),
227
- IPAddress : types .StringValue (projectIPAccessList .IPAddress ),
228
- AWSSecurityGroup : types .StringValue (projectIPAccessList .AwsSecurityGroup ),
229
- Comment : types .StringValue (projectIPAccessList .Comment ),
225
+ ProjectID : types .StringValue (projectIPAccessList .GetGroupId () ),
226
+ CIDRBlock : types .StringValue (projectIPAccessList .GetCidrBlock () ),
227
+ IPAddress : types .StringValue (projectIPAccessList .GetIpAddress () ),
228
+ AWSSecurityGroup : types .StringValue (projectIPAccessList .GetAwsSecurityGroup () ),
229
+ Comment : types .StringValue (projectIPAccessList .GetComment () ),
230
230
Timeouts : projectIPAccessListModel .Timeouts ,
231
231
}
232
232
}
233
233
234
- func newMongoDBProjectIPAccessList (projectIPAccessListModel * tfProjectIPAccessListModel ) [] * matlas. ProjectIPAccessList {
235
- return [] * matlas. ProjectIPAccessList {
234
+ func newMongoDBProjectIPAccessList (projectIPAccessListModel * tfProjectIPAccessListModel ) * []admin. NetworkPermissionEntry {
235
+ return & []admin. NetworkPermissionEntry {
236
236
{
237
- AwsSecurityGroup : projectIPAccessListModel .AWSSecurityGroup .ValueString (),
238
- CIDRBlock : projectIPAccessListModel .CIDRBlock .ValueString (),
239
- IPAddress : projectIPAccessListModel .IPAddress .ValueString (),
240
- Comment : projectIPAccessListModel .Comment .ValueString (),
237
+ AwsSecurityGroup : conversion . StringPtr ( projectIPAccessListModel .AWSSecurityGroup .ValueString () ),
238
+ CidrBlock : conversion . StringPtr ( projectIPAccessListModel .CIDRBlock .ValueString () ),
239
+ IpAddress : conversion . StringPtr ( projectIPAccessListModel .IPAddress .ValueString () ),
240
+ Comment : conversion . StringPtr ( projectIPAccessListModel .Comment .ValueString () ),
241
241
},
242
242
}
243
243
}
@@ -261,9 +261,9 @@ func (r *projectIPAccessListRS) Read(ctx context.Context, req resource.ReadReque
261
261
return
262
262
}
263
263
264
- conn := r .Client .Atlas
264
+ connV2 := r .Client .AtlasV2
265
265
err := retry .RetryContext (ctx , timeout , func () * retry.RetryError {
266
- accessList , httpResponse , err := conn . ProjectIPAccessList . Get (ctx , decodedIDMap ["project_id" ], decodedIDMap ["entry" ])
266
+ accessList , httpResponse , err := connV2 . ProjectIPAccessListApi . GetProjectIpList (ctx , decodedIDMap ["project_id" ], decodedIDMap ["entry" ]). Execute ( )
267
267
if err != nil {
268
268
// case 404
269
269
// deleted in the backend case
@@ -306,7 +306,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
306
306
entry = projectIPAccessListModelState .AWSSecurityGroup .ValueString ()
307
307
}
308
308
309
- conn := r .Client .Atlas
309
+ connV2 := r .Client .AtlasV2
310
310
projectID := projectIPAccessListModelState .ProjectID .ValueString ()
311
311
312
312
timeout , diags := projectIPAccessListModelState .Timeouts .Delete (ctx , projectIPAccessListTimeout )
@@ -316,7 +316,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
316
316
}
317
317
318
318
err := retry .RetryContext (ctx , timeout , func () * retry.RetryError {
319
- httpResponse , err := conn . ProjectIPAccessList . Delete (ctx , projectID , entry )
319
+ _ , httpResponse , err := connV2 . ProjectIPAccessListApi . DeleteProjectIpAccessList (ctx , projectID , entry ). Execute ( )
320
320
if err != nil {
321
321
if httpResponse != nil && httpResponse .StatusCode == http .StatusInternalServerError {
322
322
return retry .RetryableError (err )
@@ -330,7 +330,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
330
330
return retry .NonRetryableError (fmt .Errorf (errorAccessListDelete , err ))
331
331
}
332
332
333
- entry , httpResponse , err := conn . ProjectIPAccessList . Get (ctx , projectID , entry )
333
+ entry , httpResponse , err := connV2 . ProjectIPAccessListApi . GetProjectIpList (ctx , projectID , entry ). Execute ( )
334
334
if err != nil {
335
335
if httpResponse != nil && httpResponse .StatusCode == http .StatusNotFound {
336
336
return nil
@@ -368,10 +368,10 @@ func (r *projectIPAccessListRS) ImportState(ctx context.Context, req resource.Im
368
368
}))... )
369
369
}
370
370
371
- func isEntryInProjectAccessList (ctx context.Context , conn * matlas. Client , projectID , entry string ) (* matlas. ProjectIPAccessList , bool , error ) {
372
- var out matlas. ProjectIPAccessList
371
+ func isEntryInProjectAccessList (ctx context.Context , connV2 * admin. APIClient , projectID , entry string ) (* admin. NetworkPermissionEntry , bool , error ) {
372
+ var out admin. NetworkPermissionEntry
373
373
err := retry .RetryContext (ctx , projectIPAccessListRetry , func () * retry.RetryError {
374
- accessList , httpResponse , err := conn . ProjectIPAccessList . Get (ctx , projectID , entry )
374
+ accessList , httpResponse , err := connV2 . ProjectIPAccessListApi . GetProjectIpList (ctx , projectID , entry ). Execute ( )
375
375
if err != nil {
376
376
switch {
377
377
case httpResponse != nil && httpResponse .StatusCode == http .StatusInternalServerError :
0 commit comments