This issue was originally opened by @hgontijo as hashicorp/terraform#11278. It was migrated here as part of the provider split. The original body of the issue is below.
AWS RDS does not allow setting the DBName when restoring from a MySQL, PostgreSQL, or MariaDB snapshot, however it allows when restoring for Oracle and SQL Server -- vide cli documentation. A recent change on Terraform sets the DB Name on a restore operation for all databases. The current Terraform behavior is to show an AWS RDS exception (see below) whenever DB Name is set in a restore operation.
For this use case, is expected from Terraform to behave exact like AWS API or to execute a proactive validation before submission? Is expected Terraform to execute any validation during plan operation?
Actual Terraform Behavior
DB name is set on a restore from snapshot and Terraform issues this error:
* aws_db_instance.db_master: Error creating DB Instance: InvalidParameterValue: DBName must be null when Restoring for this Engine.
status code: 400, request id: 48a17d5b-dc0c-11e6-8a5c-39e234c22f55
Actual AWS CLI Behavior
$ aws rds restore-db-instance-from-db-snapshot \
--db-subnet-group-name default-vpc \
--db-instance-identifier foo \
--db-snapshot-identifier db-snapshot
--db-name name
An error occurred (InvalidParameterValue) when calling the RestoreDBInstanceFromDBSnapshot operation: DBName name cannot be used. It is a reserved word for this engine
Terraform Version
0.8.4
Affected Resource(s)
Steps to Reproduce
resource "aws_db_instance" "db_master" {
...
name = "name"
snapshot_identifier = "db-snapshot"
}
terraform apply
References
This issue was originally opened by @hgontijo as hashicorp/terraform#11278. It was migrated here as part of the provider split. The original body of the issue is below.
AWS RDS does not allow setting the DBName when restoring from a MySQL, PostgreSQL, or MariaDB snapshot, however it allows when restoring for Oracle and SQL Server -- vide cli documentation. A recent change on Terraform sets the DB Name on a restore operation for all databases. The current Terraform behavior is to show an AWS RDS exception (see below) whenever DB Name is set in a restore operation.
For this use case, is expected from Terraform to behave exact like AWS API or to execute a proactive validation before submission? Is expected Terraform to execute any validation during plan operation?
Actual Terraform Behavior
DB name is set on a restore from snapshot and Terraform issues this error:
Actual AWS CLI Behavior
Terraform Version
0.8.4
Affected Resource(s)
Steps to Reproduce
terraform applyReferences