blob: 9c6ba31955a96035a1a49617679148c7199a0830 [file] [log] [blame] [edit]
---
# ----------------------------------------------------------------------------
#
# *** AUTO GENERATED CODE *** Type: MMv1 ***
#
# ----------------------------------------------------------------------------
#
# 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.
#
# ----------------------------------------------------------------------------
subcategory: "Network Connectivity"
description: |-
Manage Service Connection Policies.
---
# google\_network\_connectivity\_service\_connection\_policy
Manage Service Connection Policies.
To get more information about ServiceConnectionPolicy, see:
* [API documentation](https://cloud.google.com/secure-web-proxy/docs/reference/networkconnectivity/rest/v1/projects.locations.networkConnectionPolicies)
* How-to Guides
* [About Service Connection Policies](https://cloud.google.com/vpc/docs/about-service-connection-policies#service-policies)
<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=network_connectivity_policy_basic&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%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 - Network Connectivity Policy Basic
```hcl
resource "google_compute_network" "producer_net" {
name = "producer-net"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "producer_subnet" {
name = "producer-subnet"
ip_cidr_range = "10.0.0.0/16"
region = "us-central1"
network = google_compute_network.producer_net.id
}
resource "google_network_connectivity_service_connection_policy" "default" {
name = "my-network-connectivity-policy"
location = "us-central1"
service_class = "my-basic-service-class"
description = "my basic service connection policy"
network = google_compute_network.producer_net.id
psc_config {
subnetworks = [google_compute_subnetwork.producer_subnet.id]
limit = 2
}
}
```
## Argument Reference
The following arguments are supported:
* `service_class` -
(Required)
The service class identifier for which this ServiceConnectionPolicy is for. The service class identifier is a unique, symbolic representation of a ServiceClass.
It is provided by the Service Producer. Google services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx.
* `network` -
(Required)
The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.
* `name` -
(Required)
The name of a ServiceConnectionPolicy. Format: projects/{project}/locations/{location}/serviceConnectionPolicies/{service_connection_policy} See: https://google.aip.dev/122#fields-representing-resource-names
* `location` -
(Required)
The location of the ServiceConnectionPolicy.
- - -
* `description` -
(Optional)
Free-text description of the resource.
* `psc_config` -
(Optional)
Configuration used for Private Service Connect connections. Used when Infrastructure is PSC.
Structure is [documented below](#nested_psc_config).
* `labels` -
(Optional)
User-defined labels.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field `effective_labels` for all of the labels present on the resource.
* `project` - (Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
<a name="nested_psc_config"></a>The `psc_config` block supports:
* `subnetworks` -
(Required)
IDs of the subnetworks or fully qualified identifiers for the subnetworks
* `limit` -
(Optional)
Max number of PSC connections for this policy.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
* `id` - an identifier for the resource with format `projects/{{project}}/locations/{{location}}/serviceConnectionPolicies/{{name}}`
* `create_time` -
The timestamp when the resource was created.
* `update_time` -
The timestamp when the resource was updated.
* `etag` -
The etag is computed by the server, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
* `psc_connections` -
Information about each Private Service Connect connection.
Structure is [documented below](#nested_psc_connections).
* `infrastructure` -
The type of underlying resources used to create the connection.
* `terraform_labels` -
The combination of labels configured directly on the resource
and default labels configured on the provider.
* `effective_labels` -
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
<a name="nested_psc_connections"></a>The `psc_connections` block contains:
* `state` -
(Optional)
The state of the PSC connection.
Possible values are: `STATE_UNSPECIFIED`, `ACTIVE`, `CREATING`, `DELETING`, `FAILED`.
* `consumer_forwarding_rule` -
(Optional)
The resource reference of the PSC Forwarding Rule within the consumer VPC.
* `consumer_address` -
(Optional)
The resource reference of the consumer address.
* `error_type` -
(Optional)
The error type indicates whether the error is consumer facing, producer
facing or system internal.
Possible values are: `CONNECTION_ERROR_TYPE_UNSPECIFIED`, `ERROR_INTERNAL`, `ERROR_CONSUMER_SIDE`, `ERROR_PRODUCER_SIDE`.
* `error` -
(Optional)
The most recent error during operating this connection.
Structure is [documented below](#nested_error).
* `gce_operation` -
(Optional)
The last Compute Engine operation to setup PSC connection.
* `consumer_target_project` -
(Optional)
The project where the PSC connection is created.
* `psc_connection_id` -
(Optional)
The PSC connection id of the PSC forwarding rule.
* `error_info` -
(Optional)
The error info for the latest error during operating this connection.
Structure is [documented below](#nested_error_info).
<a name="nested_error"></a>The `error` block supports:
* `message` -
(Optional)
A developer-facing error message.
* `code` -
(Optional)
The status code, which should be an enum value of [google.rpc.Code][].
* `details` -
(Output)
A list of messages that carry the error details.
<a name="nested_error_info"></a>The `error_info` block supports:
* `reason` -
(Optional)
The reason of the error.
* `domain` -
(Optional)
The logical grouping to which the "reason" belongs.
* `metadata` -
(Optional)
Additional structured details about this error.
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 30 minutes.
- `update` - Default is 30 minutes.
- `delete` - Default is 30 minutes.
## Import
ServiceConnectionPolicy can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{location}}/serviceConnectionPolicies/{{name}}`
* `{{project}}/{{location}}/{{name}}`
* `{{location}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import ServiceConnectionPolicy using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{location}}/serviceConnectionPolicies/{{name}}"
to = google_network_connectivity_service_connection_policy.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), ServiceConnectionPolicy can be imported using one of the formats above. For example:
```
$ terraform import google_network_connectivity_service_connection_policy.default projects/{{project}}/locations/{{location}}/serviceConnectionPolicies/{{name}}
$ terraform import google_network_connectivity_service_connection_policy.default {{project}}/{{location}}/{{name}}
$ terraform import google_network_connectivity_service_connection_policy.default {{location}}/{{name}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).