@@ -39,33 +39,47 @@ func resourceMongoDBAtlasEncryptionAtRest() *schema.Resource {
39
39
Schema : map [string ]* schema.Schema {
40
40
"enabled" : {
41
41
Type : schema .TypeBool ,
42
- Required : true ,
42
+ Optional : true ,
43
43
},
44
44
"access_key_id" : {
45
45
Type : schema .TypeString ,
46
- Required : true ,
46
+ Optional : true ,
47
47
Sensitive : true ,
48
48
},
49
49
"secret_access_key" : {
50
50
Type : schema .TypeString ,
51
- Required : true ,
51
+ Optional : true ,
52
52
Sensitive : true ,
53
53
},
54
54
"customer_master_key_id" : {
55
55
Type : schema .TypeString ,
56
- Required : true ,
56
+ Optional : true ,
57
57
Sensitive : true ,
58
58
},
59
59
"region" : {
60
60
Type : schema .TypeString ,
61
- Required : true ,
61
+ Optional : true ,
62
62
},
63
63
"role_id" : {
64
64
Type : schema .TypeString ,
65
65
Optional : true ,
66
66
},
67
67
},
68
68
},
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
+ },
69
83
},
70
84
"azure_key_vault" : {
71
85
Type : schema .TypeMap ,
@@ -170,10 +184,6 @@ func resourceMongoDBAtlasEncryptionAtRestRead(d *schema.ResourceData, meta inter
170
184
return fmt .Errorf (errorReadEncryptionAtRest , err )
171
185
}
172
186
173
- if err := d .Set ("project_id" , resp .GroupID ); err != nil {
174
- return fmt .Errorf (errorAlertEncryptionAtRestSetting , "project_id" , d .Id (), err )
175
- }
176
-
177
187
if err := d .Set ("aws_kms" , flattenAWSKMS (& resp .AwsKms )); err != nil {
178
188
return fmt .Errorf (errorAlertEncryptionAtRestSetting , "aws_kms" , d .Id (), err )
179
189
}
@@ -271,7 +281,6 @@ func flattenAWSKMS(m *matlas.AwsKms) map[string]interface{} {
271
281
return map [string ]interface {}{
272
282
"enabled" : cast .ToString (m .Enabled ),
273
283
"access_key_id" : m .AccessKeyID ,
274
- "secret_access_key" : m .SecretAccessKey ,
275
284
"customer_master_key_id" : m .CustomerMasterKeyID ,
276
285
"region" : m .Region ,
277
286
"role_id" : m .RoleID ,
0 commit comments