@@ -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