Skip to content

Commit 3de3793

Browse files
authored
chore: Migrates mongodbatlas_project_api_key to new auto-generated SDK (#2437)
* resource create * migrate update read and delete of resource * data sources migrated to new sdk * remove apiUserId from create and update in payload(is read only) * PR comments
1 parent 27ce0b1 commit 3de3793

File tree

4 files changed

+120
-131
lines changed

4 files changed

+120
-131
lines changed

internal/service/projectapikey/data_source_project_api_key.go

Lines changed: 10 additions & 11 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: dataSourceMongoDBAtlasProjectAPIKeyRead,
15+
ReadContext: dataSourceRead,
1616
Schema: map[string]*schema.Schema{
1717
"project_id": {
1818
Type: schema.TypeString,
@@ -57,35 +57,34 @@ func DataSource() *schema.Resource {
5757
}
5858
}
5959

60-
func dataSourceMongoDBAtlasProjectAPIKeyRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
61-
// Get client connection.
62-
conn := meta.(*config.MongoDBClient).Atlas
60+
func dataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
61+
connV2 := meta.(*config.MongoDBClient).AtlasV2
6362

6463
projectID := d.Get("project_id").(string)
6564
apiKeyID := d.Get("api_key_id").(string)
66-
projectAPIKeys, _, err := conn.ProjectAPIKeys.List(ctx, projectID, nil)
65+
projectAPIKeys, _, err := connV2.ProgrammaticAPIKeysApi.ListProjectApiKeys(ctx, projectID).Execute()
6766
if err != nil {
6867
return diag.FromErr(fmt.Errorf("error getting api key information: %s", err))
6968
}
7069

71-
for _, val := range projectAPIKeys {
72-
if val.ID != apiKeyID {
70+
for _, val := range projectAPIKeys.GetResults() {
71+
if val.GetId() != apiKeyID {
7372
continue
7473
}
7574

76-
if err := d.Set("description", val.Desc); err != nil {
75+
if err := d.Set("description", val.GetDesc()); err != nil {
7776
return diag.FromErr(fmt.Errorf("error setting `description`: %s", err))
7877
}
7978

80-
if err := d.Set("public_key", val.PublicKey); err != nil {
79+
if err := d.Set("public_key", val.GetPublicKey()); err != nil {
8180
return diag.FromErr(fmt.Errorf("error setting `public_key`: %s", err))
8281
}
8382

84-
if err := d.Set("private_key", val.PrivateKey); err != nil {
83+
if err := d.Set("private_key", val.GetPrivateKey()); err != nil {
8584
return diag.FromErr(fmt.Errorf("error setting `private_key`: %s", err))
8685
}
8786

88-
if projectAssignments, err := newProjectAssignment(ctx, conn, apiKeyID); err == nil {
87+
if projectAssignments, err := newProjectAssignment(ctx, connV2, apiKeyID); err == nil {
8988
if err := d.Set("project_assignment", projectAssignments); err != nil {
9089
return diag.Errorf(ErrorProjectSetting, `project_assignment`, projectID, err)
9190
}

internal/service/projectapikey/data_source_project_api_keys.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ import (
88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/id"
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1010
"github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
11-
12-
matlas "go.mongodb.org/atlas/mongodbatlas"
11+
"go.mongodb.org/atlas-sdk/v20240530002/admin"
1312
)
1413

1514
func PluralDataSource() *schema.Resource {
1615
return &schema.Resource{
17-
ReadContext: dataSourceMongoDBAtlasProjectAPIKeysRead,
16+
ReadContext: pluralDataSourceRead,
1817
Schema: map[string]*schema.Schema{
1918
"project_id": {
2019
Type: schema.TypeString,
@@ -75,22 +74,19 @@ func PluralDataSource() *schema.Resource {
7574
}
7675
}
7776

78-
func dataSourceMongoDBAtlasProjectAPIKeysRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
79-
// Get client connection.
80-
conn := meta.(*config.MongoDBClient).Atlas
81-
options := &matlas.ListOptions{
82-
PageNum: d.Get("page_num").(int),
83-
ItemsPerPage: d.Get("items_per_page").(int),
84-
}
77+
func pluralDataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
78+
connV2 := meta.(*config.MongoDBClient).AtlasV2
79+
pageNum := d.Get("page_num").(int)
80+
itemsPerPage := d.Get("items_per_page").(int)
8581

8682
projectID := d.Get("project_id").(string)
8783

88-
apiKeys, _, err := conn.ProjectAPIKeys.List(ctx, projectID, options)
84+
apiKeys, _, err := connV2.ProgrammaticAPIKeysApi.ListProjectApiKeys(ctx, projectID).PageNum(pageNum).ItemsPerPage(itemsPerPage).Execute()
8985
if err != nil {
9086
return diag.FromErr(fmt.Errorf("error getting api keys information: %s", err))
9187
}
9288

93-
results, err := flattenProjectAPIKeys(ctx, conn, projectID, apiKeys)
89+
results, err := flattenProjectAPIKeys(ctx, connV2, apiKeys.GetResults())
9490
if err != nil {
9591
diag.FromErr(fmt.Errorf("error setting `results`: %s", err))
9692
}
@@ -104,7 +100,7 @@ func dataSourceMongoDBAtlasProjectAPIKeysRead(ctx context.Context, d *schema.Res
104100
return nil
105101
}
106102

107-
func flattenProjectAPIKeys(ctx context.Context, conn *matlas.Client, projectID string, apiKeys []matlas.APIKey) ([]map[string]any, error) {
103+
func flattenProjectAPIKeys(ctx context.Context, connV2 *admin.APIClient, apiKeys []admin.ApiKeyUserDetails) ([]map[string]any, error) {
108104
var results []map[string]any
109105

110106
if len(apiKeys) == 0 {
@@ -114,13 +110,13 @@ func flattenProjectAPIKeys(ctx context.Context, conn *matlas.Client, projectID s
114110
results = make([]map[string]any, len(apiKeys))
115111
for k, apiKey := range apiKeys {
116112
results[k] = map[string]any{
117-
"api_key_id": apiKey.ID,
118-
"description": apiKey.Desc,
119-
"public_key": apiKey.PublicKey,
120-
"private_key": apiKey.PrivateKey,
113+
"api_key_id": apiKey.GetId(),
114+
"description": apiKey.GetDesc(),
115+
"public_key": apiKey.GetPublicKey(),
116+
"private_key": apiKey.GetPrivateKey(),
121117
}
122118

123-
projectAssignment, err := newProjectAssignment(ctx, conn, apiKey.ID)
119+
projectAssignment, err := newProjectAssignment(ctx, connV2, apiKey.GetId())
124120
if err != nil {
125121
return nil, err
126122
}

0 commit comments

Comments
 (0)