--- # ---------------------------------------------------------------------------- # # *** 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_compute_target_instance" sidebar_current: "docs-google-compute-target-instance" description: |- Represents a TargetInstance resource which defines an endpoint instance that terminates traffic of certain protocols. --- # google\_compute\_target\_instance Represents a TargetInstance resource which defines an endpoint instance that terminates traffic of certain protocols. In particular, they are used in Protocol Forwarding, where forwarding rules can send packets to a non-NAT’ed target instance. Each target instance contains a single virtual machine instance that receives and handles traffic from the corresponding forwarding rules. To get more information about TargetInstance, see: * [API documentation](https://cloud.google.com/compute/docs/reference/v1/targetInstances) * How-to Guides * [Using Protocol Forwarding](https://cloud.google.com/compute/docs/protocol-forwarding)
Open in Cloud Shell
## Example Usage - Target Instance Basic ```hcl resource "google_compute_target_instance" "default" { name = "target" instance = "${google_compute_instance.target-vm.self_link}" } data "google_compute_image" "vmimage" { family = "debian-9" project = "debian-cloud" } resource "google_compute_instance" "target-vm" { name = "target-vm" machine_type = "n1-standard-1" zone = "us-central1-a" boot_disk { initialize_params{ image = "${data.google_compute_image.vmimage.self_link}" } } network_interface { network = "default" } } ``` ## Argument Reference The following arguments are supported: * `name` - (Required) Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. * `instance` - (Required) The Compute instance VM handling traffic for this target instance. Accepts the instance self-link, relative path (e.g. `projects/project/zones/zone/instances/instance`) or name. If name is given, the zone will default to the given zone or the provider-default zone and the project will default to the provider-level project. - - - * `description` - (Optional) An optional description of this resource. * `nat_policy` - (Optional) NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported. * `zone` - (Optional) URL of the zone where the target instance resides. * `project` - (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used. ## Attributes Reference In addition to the arguments listed above, the following computed attributes are exported: * `creation_timestamp` - Creation timestamp in RFC3339 text format. * `self_link` - The URI of the created resource. ## Timeouts This resource provides the following [Timeouts](/docs/configuration/resources.html#timeouts) configuration options: - `create` - Default is 4 minutes. - `delete` - Default is 4 minutes. ## Import TargetInstance can be imported using any of these accepted formats: ``` $ terraform import google_compute_target_instance.default projects/{{project}}/zones/{{zone}}/targetInstances/{{name}} $ terraform import google_compute_target_instance.default {{project}}/{{zone}}/{{name}} $ terraform import google_compute_target_instance.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.