blob: fcb6c18aa5b090b728cfe4cf7a0d118dead99ff4 [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: "Application Integration"
description: |-
Application Integration Client.
---
# google_integrations_client
Application Integration Client.
To get more information about Client, see:
* [API documentation](https://cloud.google.com/application-integration/docs/reference/rest/v1/projects.locations.clients)
* How-to Guides
* [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
* [Set up Application Integration](https://cloud.google.com/application-integration/docs/setup-application-integration)
<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_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md&cloudshell_working_dir=integrations_client_basic&open_in_editor=main.tf" 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 - Integrations Client Basic
```hcl
resource "google_integrations_client" "example" {
location = "us-central1"
}
```
<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_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md&cloudshell_working_dir=integrations_client_full&open_in_editor=main.tf" 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 - Integrations Client Full
```hcl
data "google_project" "test_project" {
}
resource "google_kms_key_ring" "keyring" {
name = "my-keyring"
location = "us-east1"
}
resource "google_kms_crypto_key" "cryptokey" {
name = "crypto-key-example"
key_ring = google_kms_key_ring.keyring.id
rotation_period = "7776000s"
}
resource "google_kms_crypto_key_version" "test_key" {
crypto_key = google_kms_crypto_key.cryptokey.id
}
resource "google_service_account" "service_account" {
account_id = "service-acc"
display_name = "Service Account"
}
resource "google_integrations_client" "example" {
location = "us-east1"
create_sample_integrations = true
run_as_service_account = google_service_account.service_account.email
cloud_kms_config {
kms_location = "us-east1"
kms_ring = google_kms_key_ring.keyring.id
key = google_kms_crypto_key.cryptokey.id
key_version = google_kms_crypto_key_version.test_key.id
kms_project_id = data.google_project.test_project.project_id
}
}
```
## Argument Reference
The following arguments are supported:
* `location` -
(Required)
Location in which client needs to be provisioned.
- - -
* `cloud_kms_config` -
(Optional)
Cloud KMS config for AuthModule to encrypt/decrypt credentials.
Structure is [documented below](#nested_cloud_kms_config).
* `create_sample_integrations` -
(Optional)
Indicates if sample integrations should be created along with provisioning.
* `run_as_service_account` -
(Optional)
User input run-as service account, if empty, will bring up a new default service account.
* `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_cloud_kms_config"></a>The `cloud_kms_config` block supports:
* `kms_location` -
(Required)
Location name of the key ring, e.g. "us-west1".
* `kms_ring` -
(Required)
A key ring organizes keys in a specific Google Cloud location and allows you to
manage access control on groups of keys. A key ring's name does not need to be
unique across a Google Cloud project, but must be unique within a given location.
* `key` -
(Required)
A Cloud KMS key is a named object containing one or more key versions, along
with metadata for the key. A key exists on exactly one key ring tied to a
specific location.
* `key_version` -
(Optional)
Each version of a key contains key material used for encryption or signing.
A key's version is represented by an integer, starting at 1. To decrypt data
or verify a signature, you must use the same key version that was used to
encrypt or sign the data.
* `kms_project_id` -
(Optional)
The Google Cloud project id of the project where the kms key stored. If empty,
the kms key is stored at the same project as customer's project and ecrypted
with CMEK, otherwise, the kms key is stored in the tenant project and
encrypted with GMEK.
## 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}}/clients`
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 20 minutes.
- `delete` - Default is 20 minutes.
## Import
Client can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{location}}/clients`
* `{{project}}/{{location}}`
* `{{location}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Client using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{location}}/clients"
to = google_integrations_client.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Client can be imported using one of the formats above. For example:
```
$ terraform import google_integrations_client.default projects/{{project}}/locations/{{location}}/clients
$ terraform import google_integrations_client.default {{project}}/{{location}}
$ terraform import google_integrations_client.default {{location}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).