--- # ---------------------------------------------------------------------------- # # *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** # # ---------------------------------------------------------------------------- # # This file is automatically generated by Magic Modules and manual # changes will be clobbered when the file is regenerated. # # Please read more about how to change this file in # .github/CONTRIBUTING.md. # # ---------------------------------------------------------------------------- layout: "google" page_title: "Google: google_dns_managed_zone" sidebar_current: "docs-google-dns-managed-zone" description: |- A zone is a subtree of the DNS namespace under one administrative responsibility. --- # google\_dns\_managed\_zone A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service. To get more information about ManagedZone, see: * [API documentation](https://cloud.google.com/dns/api/v1/managedZones) * How-to Guides * [Managing Zones](https://cloud.google.com/dns/zones/)
Open in Cloud Shell
## Example Usage - Dns Managed Zone Basic ```hcl resource "google_dns_managed_zone" "example-zone" { name = "example-zone" dns_name = "example-${random_id.rnd.hex}.com." description = "Example DNS zone" labels = { foo = "bar" } } resource "random_id" "rnd" { byte_length = 4 } ```
Open in Cloud Shell
## Example Usage - Dns Managed Zone Private ```hcl resource "google_dns_managed_zone" "private-zone" { name = "private-zone" dns_name = "private.example.com." description = "Example private DNS zone" labels = { foo = "bar" } visibility = "private" private_visibility_config { networks { network_url = "${google_compute_network.network-1.self_link}" } networks { network_url = "${google_compute_network.network-2.self_link}" } } } resource "google_compute_network" "network-1" { name = "network-1" auto_create_subnetworks = false } resource "google_compute_network" "network-2" { name = "network-2" auto_create_subnetworks = false } ``` ## Example Usage - Dns Managed Zone Private Forwarding ```hcl resource "google_dns_managed_zone" "private-zone" { provider = "google-beta" name = "private-zone" dns_name = "private.example.com." description = "Example private DNS zone" labels = { foo = "bar" } visibility = "private" private_visibility_config { networks { network_url = "${google_compute_network.network-1.self_link}" } networks { network_url = "${google_compute_network.network-2.self_link}" } } forwarding_config { target_name_servers { ipv4_address = "172.16.1.10" } target_name_servers { ipv4_address = "172.16.1.20" } } } resource "google_compute_network" "network-1" { name = "network-1" auto_create_subnetworks = false } resource "google_compute_network" "network-2" { name = "network-2" auto_create_subnetworks = false } ```
Open in Cloud Shell
## Example Usage - Dns Managed Zone Private Peering ```hcl resource "google_dns_managed_zone" "peering-zone" { provider = "google-beta" name = "peering-zone" dns_name = "peering.example.com." description = "Example private DNS peering zone" visibility = "private" private_visibility_config { networks { network_url = "${google_compute_network.network-source.self_link}" } } peering_config { target_network { network_url = "${google_compute_network.network-target.self_link}" } } } resource "google_compute_network" "network-source" { provider = "google-beta" name = "network-source" auto_create_subnetworks = false } resource "google_compute_network" "network-target" { provider = "google-beta" name = "network-target" auto_create_subnetworks = false } provider "google-beta" { region = "us-central1" zone = "us-central1-a" } ``` ## Argument Reference The following arguments are supported: * `dns_name` - (Required) The DNS name of this managed zone, for instance "example.com.". * `name` - (Required) User assigned name for this resource. Must be unique within the project. - - - * `description` - (Optional) A textual description field. Defaults to 'Managed by Terraform'. * `labels` - (Optional) A set of key/value label pairs to assign to this ManagedZone. * `visibility` - (Optional) The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources. Must be one of: `public`, `private`. * `private_visibility_config` - (Optional) For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from. Structure is documented below. * `project` - (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used. The `private_visibility_config` block supports: * `networks` - (Optional) The list of VPC networks that can see this zone. Until the provider updates to use the Terraform 0.12 SDK in a future release, you may experience issues with this resource while updating. If you've defined a `networks` block and add another `networks` block while keeping the old block, Terraform will see an incorrect diff and apply an incorrect update to the resource. If you encounter this issue, remove all `networks` blocks in an update and then apply another update adding all of them back simultaneously. Structure is documented below. The `networks` block supports: * `network_url` - (Optional) The fully qualified URL of the VPC network to bind to. This should be formatted like `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}` ## Attributes Reference In addition to the arguments listed above, the following computed attributes are exported: * `name_servers` - Delegate your managed_zone to these virtual name servers; defined by the server ## Timeouts This resource provides the following [Timeouts](/docs/configuration/resources.html#timeouts) configuration options: - `create` - Default is 4 minutes. - `update` - Default is 4 minutes. - `delete` - Default is 4 minutes. ## Import ManagedZone can be imported using any of these accepted formats: ``` $ terraform import google_dns_managed_zone.default projects/{{project}}/managedZones/{{name}} $ terraform import google_dns_managed_zone.default {{project}}/{{name}} $ terraform import google_dns_managed_zone.default {{name}} ``` -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource.