@@ -20,7 +20,7 @@ import (
2020 "github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
2121 "github.com/mongodb/terraform-provider-mongodbatlas/internal/common/validate"
2222 "github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
23- matlas "go.mongodb.org/atlas/mongodbatlas "
23+ "go.mongodb.org/atlas-sdk/v20231115002/admin "
2424)
2525
2626const (
@@ -143,13 +143,13 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
143143 return
144144 }
145145
146- conn := r .Client .Atlas
146+ connV2 := r .Client .AtlasV2
147147 projectID := projectIPAccessListModel .ProjectID .ValueString ()
148148 stateConf := & retry.StateChangeConf {
149149 Pending : []string {"pending" },
150150 Target : []string {"created" , "failed" },
151151 Refresh : func () (any , string , error ) {
152- _ , _ , err := conn . ProjectIPAccessList . Create (ctx , projectID , newMongoDBProjectIPAccessList (projectIPAccessListModel ))
152+ _ , _ , err := connV2 . ProjectIPAccessListApi . CreateProjectIpAccessList (ctx , projectID , newMongoDBProjectIPAccessList (projectIPAccessListModel )). Execute ( )
153153 if err != nil {
154154 if strings .Contains (err .Error (), "Unexpected error" ) ||
155155 strings .Contains (err .Error (), "UNEXPECTED_ERROR" ) ||
@@ -166,7 +166,7 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
166166 accessListEntry = projectIPAccessListModel .AWSSecurityGroup .ValueString ()
167167 }
168168
169- entry , exists , err := isEntryInProjectAccessList (ctx , conn , projectID , accessListEntry )
169+ entry , exists , err := isEntryInProjectAccessList (ctx , connV2 , projectID , accessListEntry )
170170 if err != nil {
171171 if strings .Contains (err .Error (), "500" ) {
172172 return nil , "pending" , nil
@@ -194,7 +194,7 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
194194 return
195195 }
196196
197- entry , ok := accessList .(* matlas. ProjectIPAccessList )
197+ entry , ok := accessList .(* admin. NetworkPermissionEntry )
198198 if ! ok {
199199 resp .Diagnostics .AddError ("error" , errorAccessListCreate )
200200 return
@@ -207,37 +207,37 @@ func (r *projectIPAccessListRS) Create(ctx context.Context, req resource.CreateR
207207 }
208208}
209209
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 ()
216216 }
217217
218218 id := conversion .EncodeStateID (map [string ]string {
219219 "entry" : entry ,
220- "project_id" : projectIPAccessList .GroupID ,
220+ "project_id" : projectIPAccessList .GetGroupId () ,
221221 })
222222
223223 return & tfProjectIPAccessListModel {
224224 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 () ),
230230 Timeouts : projectIPAccessListModel .Timeouts ,
231231 }
232232}
233233
234- func newMongoDBProjectIPAccessList (projectIPAccessListModel * tfProjectIPAccessListModel ) [] * matlas. ProjectIPAccessList {
235- return [] * matlas. ProjectIPAccessList {
234+ func newMongoDBProjectIPAccessList (projectIPAccessListModel * tfProjectIPAccessListModel ) * []admin. NetworkPermissionEntry {
235+ return & []admin. NetworkPermissionEntry {
236236 {
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 () ),
241241 },
242242 }
243243}
@@ -261,9 +261,9 @@ func (r *projectIPAccessListRS) Read(ctx context.Context, req resource.ReadReque
261261 return
262262 }
263263
264- conn := r .Client .Atlas
264+ connV2 := r .Client .AtlasV2
265265 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 ( )
267267 if err != nil {
268268 // case 404
269269 // deleted in the backend case
@@ -306,7 +306,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
306306 entry = projectIPAccessListModelState .AWSSecurityGroup .ValueString ()
307307 }
308308
309- conn := r .Client .Atlas
309+ connV2 := r .Client .AtlasV2
310310 projectID := projectIPAccessListModelState .ProjectID .ValueString ()
311311
312312 timeout , diags := projectIPAccessListModelState .Timeouts .Delete (ctx , projectIPAccessListTimeout )
@@ -316,7 +316,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
316316 }
317317
318318 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 ( )
320320 if err != nil {
321321 if httpResponse != nil && httpResponse .StatusCode == http .StatusInternalServerError {
322322 return retry .RetryableError (err )
@@ -330,7 +330,7 @@ func (r *projectIPAccessListRS) Delete(ctx context.Context, req resource.DeleteR
330330 return retry .NonRetryableError (fmt .Errorf (errorAccessListDelete , err ))
331331 }
332332
333- entry , httpResponse , err := conn . ProjectIPAccessList . Get (ctx , projectID , entry )
333+ entry , httpResponse , err := connV2 . ProjectIPAccessListApi . GetProjectIpList (ctx , projectID , entry ). Execute ( )
334334 if err != nil {
335335 if httpResponse != nil && httpResponse .StatusCode == http .StatusNotFound {
336336 return nil
@@ -368,10 +368,10 @@ func (r *projectIPAccessListRS) ImportState(ctx context.Context, req resource.Im
368368 }))... )
369369}
370370
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
373373 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 ( )
375375 if err != nil {
376376 switch {
377377 case httpResponse != nil && httpResponse .StatusCode == http .StatusInternalServerError :
0 commit comments