From 66cd0cc61f19e9ad0f323359177305cb11e7b3b3 Mon Sep 17 00:00:00 2001 From: Modular Magician Date: Tue, 7 Nov 2023 20:18:06 +0000 Subject: [PATCH] Add connection resource of Integration Connectors. (#9328) [upstream:f6c39cae2b893c674e4c2873c788cd331021d969] Signed-off-by: Modular Magician --- .../backing_file.tf | 15 ++ .../main.tf | 232 ++++++++++++++++++ .../motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ .../main.tf | 17 ++ integration_connectors_connection_basic/motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ .../main.tf | 57 +++++ integration_connectors_connection_oauth/motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ .../main.tf | 87 +++++++ .../motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ .../main.tf | 55 +++++ .../motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ .../main.tf | 56 +++++ .../motd | 7 + .../tutorial.md | 79 ++++++ .../backing_file.tf | 15 ++ integration_connectors_connection_sa/main.tf | 230 +++++++++++++++++ integration_connectors_connection_sa/motd | 7 + .../tutorial.md | 79 ++++++ 28 files changed, 1441 insertions(+) create mode 100644 integration_connectors_connection_advanced/backing_file.tf create mode 100644 integration_connectors_connection_advanced/main.tf create mode 100644 integration_connectors_connection_advanced/motd create mode 100644 integration_connectors_connection_advanced/tutorial.md create mode 100644 integration_connectors_connection_basic/backing_file.tf create mode 100644 integration_connectors_connection_basic/main.tf create mode 100644 integration_connectors_connection_basic/motd create mode 100644 integration_connectors_connection_basic/tutorial.md create mode 100644 integration_connectors_connection_oauth/backing_file.tf create mode 100644 integration_connectors_connection_oauth/main.tf create mode 100644 integration_connectors_connection_oauth/motd create mode 100644 integration_connectors_connection_oauth/tutorial.md create mode 100644 integration_connectors_connection_oauth_cc/backing_file.tf create mode 100644 integration_connectors_connection_oauth_cc/main.tf create mode 100644 integration_connectors_connection_oauth_cc/motd create mode 100644 integration_connectors_connection_oauth_cc/tutorial.md create mode 100644 integration_connectors_connection_oauth_jwt/backing_file.tf create mode 100644 integration_connectors_connection_oauth_jwt/main.tf create mode 100644 integration_connectors_connection_oauth_jwt/motd create mode 100644 integration_connectors_connection_oauth_jwt/tutorial.md create mode 100644 integration_connectors_connection_oauth_ssh/backing_file.tf create mode 100644 integration_connectors_connection_oauth_ssh/main.tf create mode 100644 integration_connectors_connection_oauth_ssh/motd create mode 100644 integration_connectors_connection_oauth_ssh/tutorial.md create mode 100644 integration_connectors_connection_sa/backing_file.tf create mode 100644 integration_connectors_connection_sa/main.tf create mode 100644 integration_connectors_connection_sa/motd create mode 100644 integration_connectors_connection_sa/tutorial.md diff --git a/integration_connectors_connection_advanced/backing_file.tf b/integration_connectors_connection_advanced/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_advanced/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_advanced/main.tf b/integration_connectors_connection_advanced/main.tf new file mode 100644 index 00000000..f677e9ed --- /dev/null +++ b/integration_connectors_connection_advanced/main.tf @@ -0,0 +1,232 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "zendeskconnection" { + name = "test-zendesk-${local.name_suffix}" + description = "tf updated description" + location = "us-central1" + service_account = "${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/zendesk/connectors/zendesk/versions/1" + config_variable { + key = "proxy_enabled" + boolean_value = false + } + config_variable { + key = "sample_integer_value" + integer_value = 1 + } + + config_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + + config_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + + suspended = false + auth_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + auth_type = "USER_PASSWORD" + auth_key = "sampleAuthKey" + user_password { + username = "user@xyz.com" + password { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + } + + destination_config { + key = "url" + destination { + host = "https://test.zendesk.com" + port = 80 + } + } + lock_config { + locked = false + reason = "Its not locked" + } + log_config { + enabled = true + } + node_config { + min_node_count = 2 + max_node_count = 50 + } + labels = { + foo = "bar" + } + ssl_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + client_cert_type = "PEM" + client_certificate { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + client_private_key { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + client_private_key_pass { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + private_server_certificate { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + server_cert_type = "PEM" + trust_model = "PRIVATE" + type = "TLS" + use_ssl = true + } + + eventing_enablement_type = "EVENTING_AND_CONNECTION" + eventing_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + registration_destination_config { + key = "registration_destination_config" + destination { + host = "https://test.zendesk.com" + port = 80 + } + } + auth_config { + auth_type = "USER_PASSWORD" + auth_key = "sampleAuthKey" + user_password { + username = "user@xyz.com" + password { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + } + enrichment_enabled = true + } +} diff --git a/integration_connectors_connection_advanced/motd b/integration_connectors_connection_advanced/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_advanced/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_advanced/tutorial.md b/integration_connectors_connection_advanced/tutorial.md new file mode 100644 index 00000000..ac604fe7 --- /dev/null +++ b/integration_connectors_connection_advanced/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Advanced - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_basic/backing_file.tf b/integration_connectors_connection_basic/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_basic/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_basic/main.tf b/integration_connectors_connection_basic/main.tf new file mode 100644 index 00000000..623d8ccd --- /dev/null +++ b/integration_connectors_connection_basic/main.tf @@ -0,0 +1,17 @@ +data "google_project" "test_project" { +} + +resource "google_integration_connectors_connection" "pubsubconnection" { + name = "test-pubsub-${local.name_suffix}" + location = "us-central1" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/gcp/connectors/pubsub/versions/1" + description = "tf created description" + config_variable { + key = "project_id" + string_value = "connectors-example" + } + config_variable { + key = "topic_id" + string_value = "test" + } +} diff --git a/integration_connectors_connection_basic/motd b/integration_connectors_connection_basic/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_basic/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_basic/tutorial.md b/integration_connectors_connection_basic/tutorial.md new file mode 100644 index 00000000..21c1d326 --- /dev/null +++ b/integration_connectors_connection_basic/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Basic - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_oauth/backing_file.tf b/integration_connectors_connection_oauth/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_oauth/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_oauth/main.tf b/integration_connectors_connection_oauth/main.tf new file mode 100644 index 00000000..d2c8b881 --- /dev/null +++ b/integration_connectors_connection_oauth/main.tf @@ -0,0 +1,57 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "boxconnection" { + name = "test-box-${local.name_suffix}" + location = "us-central1" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/box/connectors/box/versions/1" + description = "tf created description" + config_variable { + key = "impersonate_user_mode" + string_value = "User" + } + config_variable { + key = "proxy_enabled" + boolean_value = false + } + auth_config{ + auth_type = "OAUTH2_AUTH_CODE_FLOW" + oauth2_auth_code_flow { + auth_uri = "sampleauthuri" + client_id = "sampleclientid" + client_secret { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + enable_pkce = true + scopes = [ + "sample_scope_1", + "sample_scope_2" + ] + } + } + +} diff --git a/integration_connectors_connection_oauth/motd b/integration_connectors_connection_oauth/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_oauth/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_oauth/tutorial.md b/integration_connectors_connection_oauth/tutorial.md new file mode 100644 index 00000000..cb30960b --- /dev/null +++ b/integration_connectors_connection_oauth/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Oauth - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_oauth_cc/backing_file.tf b/integration_connectors_connection_oauth_cc/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_oauth_cc/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_oauth_cc/main.tf b/integration_connectors_connection_oauth_cc/main.tf new file mode 100644 index 00000000..7e98ca90 --- /dev/null +++ b/integration_connectors_connection_oauth_cc/main.tf @@ -0,0 +1,87 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "boxconnection" { + name = "test-box-${local.name_suffix}" + location = "us-central1" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/box/connectors/box/versions/1" + service_account = "${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + description = "tf created description" + config_variable { + key = "impersonate_user_mode" + string_value = "User" + } + config_variable { + key = "proxy_enabled" + boolean_value = false + } + auth_config { + auth_type = "OAUTH2_CLIENT_CREDENTIALS" + oauth2_client_credentials { + client_id = "testclientid" + client_secret { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "oauth_jwt_cert" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "oauth_jwt_cert_password" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "oauth_jwt_subject_type" + string_value = "sample" + } + additional_variable { + key = "oauth_jwt_subject" + string_value = "sample" + } + additional_variable { + key = "oauth_jwt_public_key_id" + string_value = "sample" + } + additional_variable { + key = "auth_scheme" + string_value = "sample" + } + additional_variable { + key = "initiate_oauth" + string_value = "sample" + } + additional_variable { + key = "oauth_jwt_cert_type" + string_value = "PEMKEY_BLOB" + } + } +} diff --git a/integration_connectors_connection_oauth_cc/motd b/integration_connectors_connection_oauth_cc/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_oauth_cc/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_oauth_cc/tutorial.md b/integration_connectors_connection_oauth_cc/tutorial.md new file mode 100644 index 00000000..3dae2fad --- /dev/null +++ b/integration_connectors_connection_oauth_cc/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Oauth Cc - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_oauth_jwt/backing_file.tf b/integration_connectors_connection_oauth_jwt/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_oauth_jwt/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_oauth_jwt/main.tf b/integration_connectors_connection_oauth_jwt/main.tf new file mode 100644 index 00000000..8fe18852 --- /dev/null +++ b/integration_connectors_connection_oauth_jwt/main.tf @@ -0,0 +1,55 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "boxconnection" { + name = "test-box-${local.name_suffix}" + location = "us-central1" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/box/connectors/box/versions/1" + service_account = "${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + description = "tf created description" + config_variable { + key = "impersonate_user_mode" + string_value = "User" + } + config_variable { + key = "proxy_enabled" + boolean_value = false + } + auth_config { + auth_type = "OAUTH2_JWT_BEARER" + oauth2_jwt_bearer { + client_key { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + jwt_claims { + issuer = "test" + subject = "johndoe@example.org" + audience = "test" + } + } + } +} diff --git a/integration_connectors_connection_oauth_jwt/motd b/integration_connectors_connection_oauth_jwt/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_oauth_jwt/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_oauth_jwt/tutorial.md b/integration_connectors_connection_oauth_jwt/tutorial.md new file mode 100644 index 00000000..3bdcd8ee --- /dev/null +++ b/integration_connectors_connection_oauth_jwt/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Oauth Jwt - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_oauth_ssh/backing_file.tf b/integration_connectors_connection_oauth_ssh/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_oauth_ssh/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_oauth_ssh/main.tf b/integration_connectors_connection_oauth_ssh/main.tf new file mode 100644 index 00000000..f24a7c15 --- /dev/null +++ b/integration_connectors_connection_oauth_ssh/main.tf @@ -0,0 +1,56 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "boxconnection" { + name = "test-box-${local.name_suffix}" + location = "us-central1" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/box/connectors/box/versions/1" + service_account = "${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + description = "tf created description" + config_variable { + key = "impersonate_user_mode" + string_value = "User" + } + config_variable { + key = "proxy_enabled" + boolean_value = false + } + auth_config{ + auth_type = "SSH_PUBLIC_KEY" + ssh_public_key { + cert_type = "PEMKEY_BLOB" + ssh_client_cert { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + ssh_client_cert_pass { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + username = "abc" + } + } + +} diff --git a/integration_connectors_connection_oauth_ssh/motd b/integration_connectors_connection_oauth_ssh/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_oauth_ssh/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_oauth_ssh/tutorial.md b/integration_connectors_connection_oauth_ssh/tutorial.md new file mode 100644 index 00000000..ce53ed3d --- /dev/null +++ b/integration_connectors_connection_oauth_ssh/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Oauth Ssh - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +``` diff --git a/integration_connectors_connection_sa/backing_file.tf b/integration_connectors_connection_sa/backing_file.tf new file mode 100644 index 00000000..c60b1199 --- /dev/null +++ b/integration_connectors_connection_sa/backing_file.tf @@ -0,0 +1,15 @@ +# This file has some scaffolding to make sure that names are unique and that +# a region and zone are selected when you try to create your Terraform resources. + +locals { + name_suffix = "${random_pet.suffix.id}" +} + +resource "random_pet" "suffix" { + length = 2 +} + +provider "google" { + region = "us-central1" + zone = "us-central1-c" +} diff --git a/integration_connectors_connection_sa/main.tf b/integration_connectors_connection_sa/main.tf new file mode 100644 index 00000000..6ccfb15a --- /dev/null +++ b/integration_connectors_connection_sa/main.tf @@ -0,0 +1,230 @@ +data "google_project" "test_project" { +} + +resource "google_secret_manager_secret" "secret-basic" { + secret_id = "test-secret-${local.name_suffix}" + replication { + user_managed { + replicas { + location = "us-central1" + } + } + } +} + + +resource "google_secret_manager_secret_version" "secret-version-basic" { + secret = google_secret_manager_secret.secret-basic.id + secret_data = "dummypassword" +} + +resource "google_secret_manager_secret_iam_member" "secret_iam" { + secret_id = google_secret_manager_secret.secret-basic.id + role = "roles/secretmanager.admin" + member = "serviceAccount:${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + depends_on = [google_secret_manager_secret_version.secret-version-basic] +} + +resource "google_integration_connectors_connection" "zendeskconnection" { + name = "test-zendesk-${local.name_suffix}" + description = "tf updated description" + location = "us-central1" + service_account = "${data.google_project.test_project.number}-compute@developer.gserviceaccount.com" + connector_version = "projects/${data.google_project.test_project.project_id}/locations/global/providers/zendesk/connectors/zendesk/versions/1" + config_variable { + key = "proxy_enabled" + boolean_value = false + } + config_variable { + key = "sample_integer_value" + integer_value = 1 + } + + config_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + + config_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + + suspended = false + auth_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + auth_type = "USER_PASSWORD" + auth_key = "sampleAuthKey" + user_password { + username = "user@xyz.com" + password { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + } + + destination_config { + key = "url" + destination { + service_attachment = "projects/connectors-example/regions/us-central1/serviceAttachments/test" + } + } + lock_config { + locked = false + reason = "Its not locked" + } + log_config { + enabled = true + } + node_config { + min_node_count = 2 + max_node_count = 50 + } + labels = { + foo = "bar" + } + ssl_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + client_cert_type = "PEM" + client_certificate { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + client_private_key { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + client_private_key_pass { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + private_server_certificate { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + server_cert_type = "PEM" + trust_model = "PRIVATE" + type = "TLS" + use_ssl = true + } + + eventing_enablement_type = "EVENTING_AND_CONNECTION" + eventing_config { + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + registration_destination_config { + key = "registration_destination_config" + destination { + service_attachment = "projects/connectors-example/regions/us-central1/serviceAttachments/test" + } + } + auth_config { + auth_type = "USER_PASSWORD" + auth_key = "sampleAuthKey" + user_password { + username = "user@xyz.com" + password { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_string" + string_value = "sampleString" + } + additional_variable { + key = "sample_boolean" + boolean_value = false + } + additional_variable { + key = "sample_integer" + integer_value = 1 + } + additional_variable { + key = "sample_secret_value" + secret_value { + secret_version = google_secret_manager_secret_version.secret-version-basic.name + } + } + additional_variable { + key = "sample_encryption_key_value" + encryption_key_value { + type = "GOOGLE_MANAGED" + kms_key_name = "sampleKMSKkey" + } + } + } + enrichment_enabled = true + } +} diff --git a/integration_connectors_connection_sa/motd b/integration_connectors_connection_sa/motd new file mode 100644 index 00000000..45a906e8 --- /dev/null +++ b/integration_connectors_connection_sa/motd @@ -0,0 +1,7 @@ +=== + +These examples use real resources that will be billed to the +Google Cloud Platform project you use - so make sure that you +run "terraform destroy" before quitting! + +=== diff --git a/integration_connectors_connection_sa/tutorial.md b/integration_connectors_connection_sa/tutorial.md new file mode 100644 index 00000000..2265ebd4 --- /dev/null +++ b/integration_connectors_connection_sa/tutorial.md @@ -0,0 +1,79 @@ +# Integration Connectors Connection Sa - Terraform + +## Setup + + + +Welcome to Terraform in Google Cloud Shell! We need you to let us know what project you'd like to use with Terraform. + + + +Terraform provisions real GCP resources, so anything you create in this session will be billed against this project. + +## Terraforming! + +Let's use {{project-id}} with Terraform! Click the Cloud Shell icon below to copy the command +to your shell, and then run it from the shell by pressing Enter/Return. Terraform will pick up +the project name from the environment variable. + +```bash +export GOOGLE_CLOUD_PROJECT={{project-id}} +``` + +After that, let's get Terraform started. Run the following to pull in the providers. + +```bash +terraform init +``` + +With the providers downloaded and a project set, you're ready to use Terraform. Go ahead! + +```bash +terraform apply +``` + +Terraform will show you what it plans to do, and prompt you to accept. Type "yes" to accept the plan. + +```bash +yes +``` + + +## Post-Apply + +### Editing your config + +Now you've provisioned your resources in GCP! If you run a "plan", you should see no changes needed. + +```bash +terraform plan +``` + +So let's make a change! Try editing a number, or appending a value to the name in the editor. Then, +run a 'plan' again. + +```bash +terraform plan +``` + +Afterwards you can run an apply, which implicitly does a plan and shows you the intended changes +at the 'yes' prompt. + +```bash +terraform apply +``` + +```bash +yes +``` + +## Cleanup + +Run the following to remove the resources Terraform provisioned: + +```bash +terraform destroy +``` +```bash +yes +```