...
1/**
2 * Copyright 2022 Google LLC
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17```hcl
18resource "google_project" "project" {
19 project_id = "tf-test-%{random_suffix}"
20 name = "tf-test-%{random_suffix}"
21 org_id = "123456789"
22 billing_account = "000000-0000000-0000000-000000"
23}
24
25resource "google_project_service" "apigee" {
26 project = google_project.project.project_id
27 service = "apigee.googleapis.com"
28}
29
30resource "google_project_service" "compute" {
31 project = google_project.project.project_id
32 service = "compute.googleapis.com"
33 depends_on = [ google_project_service.servicenetworking ]
34}
35
36resource "google_project_service" "servicenetworking" {
37 project = google_project.project.project_id
38 service = "servicenetworking.googleapis.com"
39 depends_on = [ google_project_service.apigee ]
40}
41
42resource "google_compute_network" "apigee_network" {
43 name = "apigee-network"
44 project = google_project.project.project_id
45 depends_on = [ google_project_service.compute ]
46}
47
48resource "google_compute_global_address" "apigee_range" {
49 name = "apigee-range"
50 purpose = "VPC_PEERING"
51 address_type = "INTERNAL"
52 prefix_length = 16
53 network = google_compute_network.apigee_network.id
54 project = google_project.project.project_id
55}
56
57resource "google_service_networking_connection" "apigee_vpc_connection" {
58 network = google_compute_network.apigee_network.id
59 service = "servicenetworking.googleapis.com"
60 reserved_peering_ranges = [google_compute_global_address.apigee_range.name]
61}
62
63resource "google_apigee_organization" "org" {
64 analytics_region = "us-central1"
65 project_id = google_project.project.project_id
66 authorized_network = google_compute_network.apigee_network.id
67 billing_type = "EVALUATION"
68 depends_on = [
69 google_service_networking_connection.apigee_vpc_connection,
70 google_project_service.apigee
71 ]
72}
73
74resource "google_apigee_addons_config" "apigee_org_addons" {
75 org = google_apigee_organization.org.name
76
77 addons_config {
78 integration_config {
79 enabled = true
80 }
81 api_security_config {
82 enabled = true
83 }
84 connectors_platform_config {
85 enabled = true
86 }
87 monetization_config {
88 enabled = true
89 }
90 advanced_api_ops_config {
91 enabled = true
92 }
93 }
94}
95```
View as plain text