Skip to content

Commit da751dc

Browse files
coderGo93Edgar López
andauthored
INTMDB-160: Resetting an encryption at rest (#380)
* fix: fixes error when it wans to re apply it re-create(destroy and create) instad of only changes * refactor: added validation for parameters and rever back role id Co-authored-by: Edgar López <[email protected]>
1 parent aebb60c commit da751dc

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

mongodbatlas/resource_mongodbatlas_encryption_at_rest.go

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,33 +39,47 @@ func resourceMongoDBAtlasEncryptionAtRest() *schema.Resource {
3939
Schema: map[string]*schema.Schema{
4040
"enabled": {
4141
Type: schema.TypeBool,
42-
Required: true,
42+
Optional: true,
4343
},
4444
"access_key_id": {
4545
Type: schema.TypeString,
46-
Required: true,
46+
Optional: true,
4747
Sensitive: true,
4848
},
4949
"secret_access_key": {
5050
Type: schema.TypeString,
51-
Required: true,
51+
Optional: true,
5252
Sensitive: true,
5353
},
5454
"customer_master_key_id": {
5555
Type: schema.TypeString,
56-
Required: true,
56+
Optional: true,
5757
Sensitive: true,
5858
},
5959
"region": {
6060
Type: schema.TypeString,
61-
Required: true,
61+
Optional: true,
6262
},
6363
"role_id": {
6464
Type: schema.TypeString,
6565
Optional: true,
6666
},
6767
},
6868
},
69+
ValidateFunc: func(val interface{}, key string) (warns []string, errs []error) {
70+
v := val.(map[string]interface{})
71+
72+
_, akOk := v["access_key_id"]
73+
_, saOk := v["secret_access_key"]
74+
_, rOk := v["role_id"]
75+
76+
if (akOk && saOk && rOk) || (akOk && rOk) || (saOk && rOk) {
77+
errs = append(errs, fmt.Errorf("%q For credentials: `access_key_id` and `secret_access_key` are allowed but not `role_id`."+
78+
" For roles: `access_key_id` and `secret_access_key` are not allowed but `role_id` is allowed", key))
79+
}
80+
81+
return
82+
},
6983
},
7084
"azure_key_vault": {
7185
Type: schema.TypeMap,
@@ -170,10 +184,6 @@ func resourceMongoDBAtlasEncryptionAtRestRead(d *schema.ResourceData, meta inter
170184
return fmt.Errorf(errorReadEncryptionAtRest, err)
171185
}
172186

173-
if err := d.Set("project_id", resp.GroupID); err != nil {
174-
return fmt.Errorf(errorAlertEncryptionAtRestSetting, "project_id", d.Id(), err)
175-
}
176-
177187
if err := d.Set("aws_kms", flattenAWSKMS(&resp.AwsKms)); err != nil {
178188
return fmt.Errorf(errorAlertEncryptionAtRestSetting, "aws_kms", d.Id(), err)
179189
}
@@ -271,7 +281,6 @@ func flattenAWSKMS(m *matlas.AwsKms) map[string]interface{} {
271281
return map[string]interface{}{
272282
"enabled": cast.ToString(m.Enabled),
273283
"access_key_id": m.AccessKeyID,
274-
"secret_access_key": m.SecretAccessKey,
275284
"customer_master_key_id": m.CustomerMasterKeyID,
276285
"region": m.Region,
277286
"role_id": m.RoleID,

0 commit comments

Comments
 (0)