terraform-provider-google/website/docs/r/dns_managed_zone.html.markdown
The Magician bafc5b5a9c Terraform: Cloud DNS Peering (#3353)
<!-- This change is generated by MagicModules. -->
/cc @drebes
2019-04-03 15:09:36 -07:00

283 lines
8.4 KiB
Markdown

---
# ----------------------------------------------------------------------------
#
# *** 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/)
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=dns_managed_zone_basic&cloudshell_image=gcr.io%2Fgraphite-cloud-shell-images%2Fterraform%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## 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
}
```
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=dns_managed_zone_private&cloudshell_image=gcr.io%2Fgraphite-cloud-shell-images%2Fterraform%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## 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
}
```
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=dns_managed_zone_private_peering&cloudshell_image=gcr.io%2Fgraphite-cloud-shell-images%2Fterraform%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## 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.