diff --git a/products/sql/api.yaml b/products/sql/api.yaml index bdf7599c7395..53a2e1164e4b 100644 --- a/products/sql/api.yaml +++ b/products/sql/api.yaml @@ -416,10 +416,20 @@ objects: properties: - !ruby/object:Api::Type::String name: 'charset' - description: 'The MySQL charset value.' + description: | + The charset value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) + for more details and supported values. Postgres databases only support + a value of `UTF8` at creation time. - !ruby/object:Api::Type::String name: 'collation' - description: 'The MySQL collation value.' + description: | + The collation value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) + for more details and supported values. Postgres databases only support + a value of `en_US.UTF8` at creation time. - !ruby/object:Api::Type::String name: 'name' required: true diff --git a/products/sql/terraform.yaml b/products/sql/terraform.yaml index 807b23c38601..0488eec48868 100644 --- a/products/sql/terraform.yaml +++ b/products/sql/terraform.yaml @@ -20,8 +20,17 @@ overrides: !ruby/object:Overrides::ResourceOverrides import_format: ["projects/{{project}}/instances/{{instance}}/databases/{{name}}", "{{project}}/{{instance}}/{{name}}", "instances/{{instance}}/databases/{{name}}", + # support for a legacy import format + "{{instance}}:{{name}}", "{{instance}}/{{name}}", "{{name}}"] + examples: + - !ruby/object:Provider::Terraform::Examples + name: "sql_database_basic" + primary_resource_id: "database" + vars: + database_name: "my-database" + database_instance_name: "my-database-instance" timeouts: !ruby/object:Api::Timeouts insert_minutes: 15 update_minutes: 10 diff --git a/provider/terraform/import.rb b/provider/terraform/import.rb index 9e43d588a321..e6b06aa2344e 100644 --- a/provider/terraform/import.rb +++ b/provider/terraform/import.rb @@ -65,8 +65,10 @@ def import_id_formats(resource) short_id_default_format = field_markers.join('/') # Regexes should be unique and ordered from most specific to least specific + # We sort by number of `/` characters (the standard block separator) + # followed by number of variables (`{{`) to make `{{name}}` appear last. (id_formats + [short_id_format, short_id_default_project_format, short_id_default_format]) - .uniq.reject(&:empty?).sort_by { |i| i.count('/') }.reverse + .uniq.reject(&:empty?).sort_by { |i| [i.count('/'), i.count('{{')] }.reverse end end end diff --git a/templates/terraform/examples/sql_database_basic.tf.erb b/templates/terraform/examples/sql_database_basic.tf.erb new file mode 100644 index 000000000000..fad36f7266a1 --- /dev/null +++ b/templates/terraform/examples/sql_database_basic.tf.erb @@ -0,0 +1,12 @@ +resource "google_sql_database" "<%= ctx[:primary_resource_id] %>" { + name = "<%= ctx[:vars]['database_name'] %>" + instance = "${google_sql_database_instance.instance.name}" +} + +resource "google_sql_database_instance" "instance" { + name = "<%= ctx[:vars]['database_instance_name'] %>" + region = "us-central" + settings { + tier = "D0" + } +} diff --git a/third_party/terraform/website/docs/r/sql_database.html.markdown b/third_party/terraform/website/docs/r/sql_database.html.markdown deleted file mode 100644 index 8395517fb67d..000000000000 --- a/third_party/terraform/website/docs/r/sql_database.html.markdown +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: "google" -page_title: "Google: google_sql_database" -sidebar_current: "docs-google-sql-database-x" -description: |- - Creates a new SQL database in Google Cloud SQL. ---- - -# google\_sql\_database - -Creates a new Google SQL Database on a Google SQL Database Instance. For more information, see -the [official documentation](https://cloud.google.com/sql/), -or the [JSON API](https://cloud.google.com/sql/docs/admin-api/v1beta4/databases). - -## Example Usage - -Example creating a SQL Database. - -```hcl -resource "random_id" "db_name_suffix" { - byte_length = 4 -} - -resource "google_sql_database_instance" "master" { - name = "master-instance-${random_id.db_name_suffix.hex}" - - settings { - tier = "D0" - } -} - -resource "google_sql_database" "users" { - name = "users-db" - instance = "${google_sql_database_instance.master.name}" - charset = "latin1" - collation = "latin1_swedish_ci" -} -``` - -## Argument Reference - -The following arguments are supported: - -* `name` - (Required) The name of the database. - -* `instance` - (Required) The name of containing instance. - -- - - - -* `project` - (Optional) The ID of the project in which the resource belongs. If it - is not provided, the provider project is used. - -* `charset` - (Optional) The charset value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) - for more details and supported values. Postgres databases are in beta - and have limited `charset` support; they only support a value of `UTF8` at creation time. - -* `collation` - (Optional) The collation value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) - for more details and supported values. Postgres databases are in beta - and have limited `collation` support; they only support a value of `en_US.UTF8` at creation time. - -## Attributes Reference - -In addition to the arguments listed above, the following computed attributes are -exported: - -* `self_link` - The URI of the created resource. - -## Import - -SQL databases can be imported using one of any of these accepted formats: - -``` -$ terraform import google_sql_database.database projects/{{project}}/instances/{{instance}}/databases/{{name}} -$ terraform import google_sql_database.database {{project}}/{{instance}}/{{name}} -$ terraform import google_sql_database.database instances/{{name}}/databases/{{name}} -$ terraform import google_sql_database.database {{instance}}/{{name}} -$ terraform import google_sql_database.database {{name}} - -```